- def __init__(self, *args, **kwds):
- Method.__init__(self, *args, **kwds)
- # Update documentation with list of default fields returned
- self.__doc__ += os.linesep.join(Event.fields.keys())
-
- def call(self, auth, event_id_list = None, person_id_list = None, event_type_list = None, object_type_list = None, object_id_list = None, fault_code_list = None):
-
- # Authenticated function
- assert self.caller is not None
-
- # filter out invalid event types
- if event_type_list:
- event_type_list = [event_type.title() for event_type in event_type_list]
- valid_event_types = ['Add', 'Get', 'Update', 'Delete', 'Unknown']
- if filter(lambda field: field not in valid_event_types, event_type_list):
- raise PLCInvalidArgument, "Invalid event type. Must be in %s" % \
- valid_event_types
-
- # filter out invalid object types
- if object_type_list:
- object_type_list = [object_type.title() for object_type in object_type_list]
- valid_object_types = ['Person', 'Site', 'Node', 'Slice', 'Address', \
- 'Attribute', 'Key', 'Nodegroup', 'Unknown']
- if filter(lambda field: field not in valid_object_types, object_type_list):
- raise PLCInvalidArgument, "Invalid object type. Must be in %s" % \
- valid_object_types
-
- # if object ids are specified only 1 object type can be specified
- if object_id_list:
- if not object_type_list:
- raise PLCInvalidArgument, "Object type must be specified"
- elif len(object_type_list) > 1:
- raise PLCInvalidArgument, "Cannot specify multiple object types when object_ids are specified"
-
-
- # Get node information
- events = Events(self.api, event_id_list, person_id_list, event_type_list, \
- object_type_list, object_id_list).values()