Exemple #1
0
def publish_exist_events(transformer, admin_context):
    notifications = transformer()
    # clear out admin_context.auth_token so it does not get logged
    admin_context.auth_token = None
    for notification in notifications:
        notifier.notify(admin_context, CONF.host, "trove.instance.exists",
                        'INFO', notification)
Exemple #2
0
def publish_exist_events(transformer, admin_context):
    notifications = transformer()
    for notification in notifications:
        notifier.notify(admin_context,
                        CONF.host,
                        "trove.instance.exists",
                        'INFO',
                        notification)
Exemple #3
0
def publish_exist_events(transformer, admin_context):
    notifications = transformer()
    # clear out admin_context.auth_token so it does not get logged
    admin_context.auth_token = None
    for notification in notifications:
        notifier.notify(admin_context,
                        CONF.host,
                        "trove.instance.exists",
                        'INFO',
                        notification)
Exemple #4
0
    def send_usage_event(self, event_type, **kwargs):
        event_type = 'trove.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,
            '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.trove_volume_support:
            payload.update({
                'volume_size': self.volume_size,
                'nova_volume_id': self.volume_id
            })

        payload['service_id'] = self._get_service_id(
            self.datastore.manager, CONF.notification_service_id)

        # Update payload with all other kwargs
        payload.update(kwargs)
        LOG.debug(
            _('Sending event: %(event_type)s, %(payload)s') % {
                'event_type': event_type,
                'payload': payload
            })
        notifier.notify(self.context, publisher_id, event_type, 'INFO',
                        payload)
    def send_usage_event(self, event_type, **kwargs):
        event_type = 'trove.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,
            '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.trove_volume_support:
            payload.update({
                'volume_size': self.volume_size,
                'nova_volume_id': self.volume_id
            })

        if CONF.notification_service_id:
            payload.update({
                'service_id': CONF.notification_service_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)
Exemple #6
0
    def send_usage_event(self, event_type, **kwargs):
        event_type = "trove.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,
            "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.trove_volume_support:
            payload.update({"volume_size": self.volume_size, "nova_volume_id": self.volume_id})

        if CONF.notification_service_id:
            payload.update({"service_id": CONF.notification_service_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)