def publish_exist_events(transformer, admin_context): notifications = transformer() for notification in notifications: notifier.notify(admin_context, CONF.host, "reddwarf.instance.exists", 'INFO', notification)
def send_usage_event(self, event_type, **kwargs): event_type = 'reddwarf.instance.%s' % event_type publisher_id = CONF.host # Grab the instance size from the kwargs or from the nova client instance_size = kwargs.pop('instance_size', None) flavor = self.nova_client.flavors.get(self.flavor_id) server = kwargs.pop('server', None) if server is None: server = self.nova_client.servers.get(self.server_id) az = getattr(server, 'OS-EXT-AZ:availability_zone', None) # Default payload created_time = timeutils.isotime(self.db_info.created) payload = { 'availability_zone': az, 'created_at': created_time, 'display_name': self.name, 'instance_id': self.id, 'instance_name': self.name, 'instance_size': instance_size or flavor.ram, 'instance_type': flavor.name, 'instance_type_id': flavor.id, 'launched_at': created_time, 'nova_instance_id': self.server_id, 'region': CONF.region, 'state_description': self.status, 'state': self.status, 'tenant_id': self.tenant_id, 'user_id': self.context.user, } if CONF.reddwarf_volume_support: payload.update({ 'volume_size': self.volume_size, 'nova_volume_id': self.volume_id }) # Update payload with all other kwargs payload.update(kwargs) LOG.debug('Sending event: %s, %s' % (event_type, payload)) notifier.notify(self.context, publisher_id, event_type, 'INFO', payload)