Bug 1281570

Summary: [RFE][nova]: Versioned notification api
Product: Red Hat OpenStack Reporter: Stephen Gordon <sgordon>
Component: openstack-novaAssignee: Eoghan Glynn <eglynn>
Status: CLOSED ERRATA QA Contact: Prasanth Anbalagan <panbalag>
Severity: medium Docs Contact:
Priority: low    
Version: 7.0 (Kilo)CC: berrange, dasmith, eglynn, jdonohue, jjoyce, kchamart, nlevinki, panbalag, sbauza, sferdjao, sgordon, srevivo, vromanso
Target Milestone: gaKeywords: FutureFeature, TestOnly, Triaged, ZStream
Target Release: 9.0 (Mitaka)   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/nova/+spec/versioned-notification-api
Whiteboard: upstream_milestone_mitaka-3 upstream_definition_approved upstream_status_implemented
Fixed In Version: openstack-nova-13.0.0-1.el7ost Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-24 12:52:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1281573, 1335634    

Description Stephen Gordon 2015-11-12 20:04:23 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/versioned-notification-api.

Description:

Versioned notification API

Notification interface of nova is not well defined and the current
notifications define a very inconsistent interface. There is no easy
way to see from the notification consumer point of view what is the format
and the content of the notification nova sends.

Nova developers can add new notifications to the system without specifying
the format and the content of the notification.

Moreover developers can change existing notifications without considering
backward compatibility towards the notification consumers.

Due to this situation maintaining a consumer for nova notifications is really
hard.

Specification URL (additional information):

http://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/versioned-notification-api.html

Comment 2 Mike McCune 2016-03-28 22:33:16 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

Comment 3 Stephen Gordon 2016-06-14 19:20:26 UTC
*** Bug 1281569 has been marked as a duplicate of this bug. ***

Comment 6 Stephen Gordon 2016-07-05 20:46:47 UTC
QE will need to verify that on an OSP-d deployment the notification_format is "both", per upstream.

Comment 9 Prasanth Anbalagan 2016-08-19 02:39:30 UTC
Verified as follows -

[root@serverA]# yum list installed | grep openstack-nova
openstack-nova-api.noarch            1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-cert.noarch           1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-common.noarch         1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-compute.noarch        1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-conductor.noarch      1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-console.noarch        1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-novncproxy.noarch     1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
openstack-nova-scheduler.noarch      1:13.1.1-2.el7ost       @rhelosp-9.0-puddle
[root@serverA]# 

Subscriber
============

 from kombu import Connection, Exchange, Queue
from pprint import pprint

nova_x = Exchange('nova', type='topic', durable=False)
info_q = Queue('notifications.info', exchange=nova_x, durable=False,
               routing_key='notifications.info')

def process_msg(body, message):
    print '='*80
    pprint(body)
    message.ack()

with Connection('amqp://guest:guest@localhost:5672//') as conn:
    with conn.Consumer(info_q, callbacks=[process_msg]):
        while True:
            try:
                conn.drain_events()
            except KeyboardInterrupt:
                break

Event
======

[root@serverA]# nova keypair-add key1
-----BEGIN RSA PRIVATE KEY-----
..
...
.....
-----END RSA PRIVATE KEY----


================================================================================
{u'oslo.message': u'{"_context_domain": null, "_context_roles": ["admin"], "_context_quota_class": null, "event_type": "keypair.create.start", "_context_request_id": "req-cd6298a5-7f91-4d69-8c25-c65ae2b0b2c7", "_context_service_catalog": [{"endpoints": [{"adminURL": "http://10.8.0.50:8776/v2/b03dfd4f822c466c8d965958ea6577d2", "region": "RegionOne", "internalURL": "http://10.8.0.50:8776/v2/b03dfd4f822c466c8d965958ea6577d2", "publicURL": "http://10.8.0.50:8776/v2/b03dfd4f822c466c8d965958ea6577d2"}], "type": "volumev2", "name": "cinderv2"}, {"endpoints": [{"adminURL": "http://10.8.0.50:8776/v1/b03dfd4f822c466c8d965958ea6577d2", "region": "RegionOne", "internalURL": "http://10.8.0.50:8776/v1/b03dfd4f822c466c8d965958ea6577d2", "publicURL": "http://10.8.0.50:8776/v1/b03dfd4f822c466c8d965958ea6577d2"}], "type": "volume", "name": "cinder"}], "timestamp": "2016-08-19 02:31:20.956322", "_context_user": "fa7a009ef1ec4b208f2cf1e85f0aaa91", "_unique_id": "489759494a8d4f21b2705b52ad0fd5a5", "_context_resource_uuid": null, "_context_instance_lock_checked": false, "_context_user_id": "fa7a009ef1ec4b208f2cf1e85f0aaa91", "payload": {"tenant_id": "b03dfd4f822c466c8d965958ea6577d2", "user_id": "fa7a009ef1ec4b208f2cf1e85f0aaa91", "key_name": "key1"}, "_context_project_name": "admin", "_context_read_deleted": "no", "_context_user_identity": "fa7a009ef1ec4b208f2cf1e85f0aaa91 b03dfd4f822c466c8d965958ea6577d2 - - -", "_context_auth_token": "f4c6783ff01e4c618de2180ffcbe0a61", "_context_show_deleted": false, "_context_tenant": "b03dfd4f822c466c8d965958ea6577d2", "priority": "INFO", "_context_read_only": false, "_context_is_admin": true, "_context_project_id": "b03dfd4f822c466c8d965958ea6577d2", "_context_project_domain": null, "_context_timestamp": "2016-08-19T02:31:20.814801", "_context_user_domain": null, "_context_user_name": "admin", "publisher_id": "api.rhos-compute-node-02.lab.eng.rdu2.redhat.com", "message_id": "40918c6d-7edb-433b-935a-bb3b8bc7ecc2", "_context_remote_address": "10.8.0.50"}',
 u'oslo.version': u'2.0'}
================================================================================

Comment 11 errata-xmlrpc 2016-08-24 12:52:14 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-1761.html