Пример #1
0
def _send_versioned_instance_update(context, instance, payload, host, service):

    state_update = instance_notification.InstanceStateUpdatePayload(
        old_state=payload.get('old_state'),
        state=payload.get('state'),
        old_task_state=payload.get('old_task_state'),
        new_task_state=payload.get('new_task_state'))

    audit_period = instance_notification.AuditPeriodPayload(
        audit_period_beginning=payload.get('audit_period_beginning'),
        audit_period_ending=payload.get('audit_period_ending'))

    bandwidth = [
        instance_notification.BandwidthPayload(network_name=label,
                                               in_bytes=bw['bw_in'],
                                               out_bytes=bw['bw_out'])
        for label, bw in payload['bandwidth'].items()
    ]

    versioned_payload = instance_notification.InstanceUpdatePayload(
        instance=instance,
        state_update=state_update,
        audit_period=audit_period,
        bandwidth=bandwidth,
        old_display_name=payload.get('old_display_name'))

    notification = instance_notification.InstanceUpdateNotification(
        priority=fields.NotificationPriority.INFO,
        event_type=notification_base.EventType(
            object='instance', action=fields.NotificationAction.UPDATE),
        publisher=notification_base.NotificationPublisher(
            host=host or CONF.host, binary=_map_service_to_binary(service)),
        payload=versioned_payload)
    notification.emit(context)
Пример #2
0
def _send_versioned_instance_update(context, instance, payload, host, service):

    def _map_legacy_service_to_source(legacy_service):
        if not legacy_service.startswith('nova-'):
            return 'nova-' + service
        else:
            return service

    state_update = instance_notification.InstanceStateUpdatePayload(
        old_state=payload.get('old_state'),
        state=payload.get('state'),
        old_task_state=payload.get('old_task_state'),
        new_task_state=payload.get('new_task_state'))

    audit_period = instance_notification.AuditPeriodPayload(
        audit_period_beginning=payload.get('audit_period_beginning'),
        audit_period_ending=payload.get('audit_period_ending'))

    versioned_payload = instance_notification.InstanceUpdatePayload(
        context=context,
        instance=instance,
        state_update=state_update,
        audit_period=audit_period,
        old_display_name=payload.get('old_display_name'))

    notification = instance_notification.InstanceUpdateNotification(
        priority=fields.NotificationPriority.INFO,
        event_type=notification_base.EventType(
            object='instance',
            action=fields.NotificationAction.UPDATE),
        publisher=notification_base.NotificationPublisher(
                host=host or CONF.host,
                source=_map_legacy_service_to_source(service)),
        payload=versioned_payload)
    notification.emit(context)