def _test_format_event(self, event_id): event = self._dummy_event(event_id) event_keys = set(( rpc_api.EVENT_ID, rpc_api.EVENT_STACK_ID, rpc_api.EVENT_STACK_NAME, rpc_api.EVENT_TIMESTAMP, rpc_api.EVENT_RES_NAME, rpc_api.EVENT_RES_PHYSICAL_ID, rpc_api.EVENT_RES_ACTION, rpc_api.EVENT_RES_STATUS, rpc_api.EVENT_RES_STATUS_DATA, rpc_api.EVENT_RES_TYPE, rpc_api.EVENT_RES_PROPERTIES)) formatted = api.format_event(event) self.assertEqual(event_keys, set(formatted.keys())) event_id_formatted = formatted[rpc_api.EVENT_ID] event_identifier = EventIdentifier(event_id_formatted['tenant'], event_id_formatted['stack_name'], event_id_formatted['stack_id'], event_id_formatted['path']) self.assertEqual(event_id, event_identifier.event_id)
def _test_format_event(self, event_id): event = self._dummy_event(event_id) event_keys = set(( rpc_api.EVENT_ID, rpc_api.EVENT_STACK_ID, rpc_api.EVENT_STACK_NAME, rpc_api.EVENT_TIMESTAMP, rpc_api.EVENT_RES_NAME, rpc_api.EVENT_RES_PHYSICAL_ID, rpc_api.EVENT_RES_ACTION, rpc_api.EVENT_RES_STATUS, rpc_api.EVENT_RES_STATUS_DATA, rpc_api.EVENT_RES_TYPE, rpc_api.EVENT_RES_PROPERTIES)) formatted = api.format_event(event) self.assertEqual(event_keys, set(six.iterkeys(formatted))) event_id_formatted = formatted[rpc_api.EVENT_ID] event_identifier = identifier.EventIdentifier( event_id_formatted['tenant'], event_id_formatted['stack_name'], event_id_formatted['stack_id'], event_id_formatted['path']) self.assertEqual(event_id, event_identifier.event_id)
def list_events(self, cnxt, stack_identity): """ The list_events method lists all events associated with a given stack. arg1 -> RPC context. arg2 -> Name of the stack you want to get events for. """ if stack_identity is not None: st = self._get_stack(cnxt, stack_identity, show_deleted=True) events = db_api.event_get_all_by_stack(cnxt, st.id) else: events = db_api.event_get_all_by_tenant(cnxt) stacks = {} def get_stack(stack_id): if stack_id not in stacks: stacks[stack_id] = parser.Stack.load(cnxt, stack_id) return stacks[stack_id] return [api.format_event(Event.load(cnxt, e.id, e, get_stack(e.stack_id))) for e in events]
def list_events(self, cnxt, stack_identity): """ The list_events method lists all events associated with a given stack. arg1 -> RPC context. arg2 -> Name of the stack you want to get events for. """ if stack_identity is not None: st = self._get_stack(cnxt, stack_identity, show_deleted=True) events = db_api.event_get_all_by_stack(cnxt, st.id) else: events = db_api.event_get_all_by_tenant(cnxt) stacks = {} def get_stack(stack_id): if stack_id not in stacks: stacks[stack_id] = parser.Stack.load(cnxt, stack_id) return stacks[stack_id] return [ api.format_event(Event.load(cnxt, e.id, e, get_stack(e.stack_id))) for e in events ]
def test_format_event_identifier_uuid(self): event = self._dummy_event() event_keys = set(( rpc_api.EVENT_ID, rpc_api.EVENT_STACK_ID, rpc_api.EVENT_STACK_NAME, rpc_api.EVENT_TIMESTAMP, rpc_api.EVENT_RES_NAME, rpc_api.EVENT_RES_PHYSICAL_ID, rpc_api.EVENT_RES_ACTION, rpc_api.EVENT_RES_STATUS, rpc_api.EVENT_RES_STATUS_DATA, rpc_api.EVENT_RES_TYPE, rpc_api.EVENT_RES_PROPERTIES)) formatted = api.format_event(event, self.stack.identifier()) self.assertEqual(event_keys, set(formatted.keys())) event_id_formatted = formatted[rpc_api.EVENT_ID] self.assertEqual({ 'path': '/resources/generic1/events/%s' % event.uuid, 'stack_id': self.stack.id, 'stack_name': 'test_stack', 'tenant': 'test_tenant_id' }, event_id_formatted)
def list_events(self, context, stack_identity): """ The list_events method lists all events associated with a given stack. arg1 -> RPC context. arg2 -> Name of the stack you want to get events for. """ if stack_identity is not None: st = self._get_stack(context, stack_identity) events = db_api.event_get_all_by_stack(context, st.id) else: events = db_api.event_get_all_by_tenant(context) return [api.format_event(Event.load(context, e.id)) for e in events]
def list_events(self, cnxt, stack_identity): """ The list_events method lists all events associated with a given stack. arg1 -> RPC context. arg2 -> Name of the stack you want to get events for. """ if stack_identity is not None: st = self._get_stack(cnxt, stack_identity) events = db_api.event_get_all_by_stack(cnxt, st.id) else: events = db_api.event_get_all_by_tenant(cnxt) return [api.format_event(Event.load(cnxt, e.id)) for e in events]
def list_events(self, cnxt, stack_identity, filters=None, limit=None, marker=None, sort_keys=None, sort_dir=None): """ The list_events method lists all events associated with a given stack. It supports pagination (``limit`` and ``marker``), sorting (``sort_keys`` and ``sort_dir``) and filtering(filters) of the results. :param cnxt: RPC context. :param stack_identity: Name of the stack you want to get events for :param filters: a dict with attribute:value to filter the list :param limit: the number of events to list (integer or string) :param marker: the ID of the last event in the previous page :param sort_keys: an array of fields used to sort the list :param sort_dir: the direction of the sort ('asc' or 'desc'). """ if stack_identity is not None: st = self._get_stack(cnxt, stack_identity, show_deleted=True) events = db_api.event_get_all_by_stack(cnxt, st.id, limit=limit, marker=marker, sort_keys=sort_keys, sort_dir=sort_dir, filters=filters) else: events = db_api.event_get_all_by_tenant(cnxt, limit=limit, marker=marker, sort_keys=sort_keys, sort_dir=sort_dir, filters=filters) stacks = {} def get_stack(stack_id): if stack_id not in stacks: stacks[stack_id] = parser.Stack.load(cnxt, stack_id) return stacks[stack_id] return [api.format_event(Event.load(cnxt, e.id, e, get_stack(e.stack_id))) for e in events]
def list_events(self, context, stack_name, params): """ The list_events method lists all events associated with a given stack. arg1 -> RPC context. arg2 -> Name of the stack you want to get events for. arg3 -> Params passed from API. """ auth.authenticate(context) if stack_name is not None: st = db_api.stack_get_by_name(context, stack_name) if not st: raise AttributeError('Unknown stack name') events = db_api.event_get_all_by_stack(context, st.id) else: events = db_api.event_get_all_by_tenant(context) return {'events': [api.format_event(e) for e in events]}