)]}'
{"nova/notifications/objects/aggregate.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"464bb5a4309523c031c3f78a49e19482ee2882de","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    }"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":28,"context_line":"    fields \u003d {"},{"line_number":29,"context_line":"        \u0027id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":30,"context_line":"        \u0027name\u0027: fields.StringField(),"},{"line_number":31,"context_line":"        \u0027hosts\u0027: fields.ListOfStringsField(nullable\u003dTrue),"},{"line_number":32,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(nullable\u003dTrue),"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, aggregate, **kwargs):"},{"line_number":36,"context_line":"        super(AggregatePayload, self).__init__(**kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_a22f0cf5","line":33,"range":{"start_line":28,"start_character":0,"end_line":33,"end_character":5},"updated":"2016-11-22 07:39:32.000000000","message":"Sorry, just a question.\nAggregate object (in nova/objects/aggregate.py) has the \u0027uuid\u0027 field.\nWhy isn\u0027t there \u0027uuid\u0027 field?","commit_id":"7ef7e4fd517f6a0cb8d16485cbdb7ae700a09764"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c495dbb4df5affff1dd45077f59fcc2c79c0831f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    }"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":28,"context_line":"    fields \u003d {"},{"line_number":29,"context_line":"        \u0027id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":30,"context_line":"        \u0027name\u0027: fields.StringField(),"},{"line_number":31,"context_line":"        \u0027hosts\u0027: fields.ListOfStringsField(nullable\u003dTrue),"},{"line_number":32,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(nullable\u003dTrue),"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, aggregate, **kwargs):"},{"line_number":36,"context_line":"        super(AggregatePayload, self).__init__(**kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a77a97e_cc62653d","line":33,"range":{"start_line":28,"start_character":0,"end_line":33,"end_character":5},"in_reply_to":"7a77a97e_a22f0cf5","updated":"2016-11-22 15:11:19.000000000","message":"We could add but the current aggregate REST API response does not contain uuid of the aggregate but contains the id of it. See http://developer.openstack.org/api-ref/compute/?expanded\u003dshow-aggregate-details-detail","commit_id":"7ef7e4fd517f6a0cb8d16485cbdb7ae700a09764"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"086841745adb2787bcd90a01b412bdce77120131","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    }"},{"line_number":26,"context_line":"    # Version 1.0: Initial version"},{"line_number":27,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":28,"context_line":"    fields \u003d {"},{"line_number":29,"context_line":"        \u0027id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":30,"context_line":"        \u0027name\u0027: fields.StringField(),"},{"line_number":31,"context_line":"        \u0027hosts\u0027: fields.ListOfStringsField(nullable\u003dTrue),"},{"line_number":32,"context_line":"        \u0027metadata\u0027: fields.DictOfStringsField(nullable\u003dTrue),"},{"line_number":33,"context_line":"    }"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, aggregate, **kwargs):"},{"line_number":36,"context_line":"        super(AggregatePayload, self).__init__(**kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_e0601438","line":33,"range":{"start_line":28,"start_character":0,"end_line":33,"end_character":5},"in_reply_to":"7a77a97e_cc62653d","updated":"2016-11-24 02:57:04.000000000","message":"Fair enough.\nThank you for your answer.","commit_id":"7ef7e4fd517f6a0cb8d16485cbdb7ae700a09764"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"87bef738e168f6b8e932cc5414a04ff570deac50","unresolved":false,"context_lines":[{"line_number":18,"context_line":"@nova_base.NovaObjectRegistry.register_notification"},{"line_number":19,"context_line":"class AggregatePayload(base.NotificationPayloadBase):"},{"line_number":20,"context_line":"    SCHEMA \u003d {"},{"line_number":21,"context_line":"        \u0027id\u0027: (\u0027aggregate\u0027, \u0027id\u0027),"},{"line_number":22,"context_line":"        \u0027name\u0027: (\u0027aggregate\u0027, \u0027name\u0027),"},{"line_number":23,"context_line":"        \u0027hosts\u0027: (\u0027aggregate\u0027, \u0027hosts\u0027),"},{"line_number":24,"context_line":"        \u0027metadata\u0027: (\u0027aggregate\u0027, \u0027metadata\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_b98cc336","line":21,"updated":"2016-12-29 07:55:13.000000000","message":"Let\u0027s include the uuid as well","commit_id":"bde2cbdfff24fac16d645de52cec7232ab16ca04"}],"nova/objects/aggregate.py":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"3eddc0de7537e7459d9b5da95a4a66e0f59bf560","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        compute_utils.notify_about_aggregate_update(self._context,"},{"line_number":366,"context_line":"                                                    \"create.start\","},{"line_number":367,"context_line":"                                                    payload)"},{"line_number":368,"context_line":"        compute_utils.notify_about_aggregate_action("},{"line_number":369,"context_line":"            self._context,"},{"line_number":370,"context_line":"            self,"},{"line_number":371,"context_line":"            fields.NotificationAction.CREATE,"},{"line_number":372,"context_line":"            fields.NotificationPhase.START)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        metadata \u003d updates.pop(\u0027metadata\u0027, None)"},{"line_number":375,"context_line":"        db_aggregate \u003d _aggregate_create_in_db(self._context, updates,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_5be30aa4","line":372,"range":{"start_line":368,"start_character":52,"end_line":372,"end_character":42},"updated":"2016-11-10 12:58:41.000000000","message":"As you split the parameters into multiple lines, I think it may be better to name the parameters, the following:\n\n    compute_utils.notify_about_aggregate_action(\n        context\u003dself._context,\n        aggregate\u003dself,\n        action\u003dfields.NotificationAction.CREATE,\n        phase\u003dfields.NotificationPhase.START)\n\nThat also makes the calling of the notify methods consistent.","commit_id":"bbd74da45ce58b1b56cfb62b318ca1b954e7c540"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ab49af64c791b111bd02056bce1acfea73e9ee5","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        compute_utils.notify_about_aggregate_update(self._context,"},{"line_number":366,"context_line":"                                                    \"create.start\","},{"line_number":367,"context_line":"                                                    payload)"},{"line_number":368,"context_line":"        compute_utils.notify_about_aggregate_action("},{"line_number":369,"context_line":"            self._context,"},{"line_number":370,"context_line":"            self,"},{"line_number":371,"context_line":"            fields.NotificationAction.CREATE,"},{"line_number":372,"context_line":"            fields.NotificationPhase.START)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"        metadata \u003d updates.pop(\u0027metadata\u0027, None)"},{"line_number":375,"context_line":"        db_aggregate \u003d _aggregate_create_in_db(self._context, updates,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_511e8bbb","line":372,"range":{"start_line":368,"start_character":52,"end_line":372,"end_character":42},"in_reply_to":"9a629dbe_5be30aa4","updated":"2016-11-10 13:57:59.000000000","message":"Done","commit_id":"bbd74da45ce58b1b56cfb62b318ca1b954e7c540"}],"nova/tests/functional/notification_sample_tests/test_aggregate.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f98709a56f22a83787f705afb6315b69510773b9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                \"name\": \"my-aggregate\","},{"line_number":24,"context_line":"                \"availability_zone\": \"nova\"}}"},{"line_number":25,"context_line":"        aggregate \u003d self.admin_api.post_aggregate(aggregate_req)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        self._verify_notification("},{"line_number":28,"context_line":"            \u0027aggregate-create-start\u0027,"},{"line_number":29,"context_line":"            replacements\u003d{},"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_801b73c9","line":26,"updated":"2016-11-10 12:33:46.000000000","message":"In other test methods in nova/tests/functional/notification_sample_tests/test_instance.py, there is the following assert statement.\nSO it had better to add it.\n\nself.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))","commit_id":"bbd74da45ce58b1b56cfb62b318ca1b954e7c540"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ab49af64c791b111bd02056bce1acfea73e9ee5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                \"name\": \"my-aggregate\","},{"line_number":24,"context_line":"                \"availability_zone\": \"nova\"}}"},{"line_number":25,"context_line":"        aggregate \u003d self.admin_api.post_aggregate(aggregate_req)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        self._verify_notification("},{"line_number":28,"context_line":"            \u0027aggregate-create-start\u0027,"},{"line_number":29,"context_line":"            replacements\u003d{},"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_9161033c","line":26,"in_reply_to":"9a629dbe_801b73c9","updated":"2016-11-10 13:57:59.000000000","message":"Good catch.","commit_id":"bbd74da45ce58b1b56cfb62b318ca1b954e7c540"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9c91740c1c9d2bf4a5a581edbaab7b936a17f601","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        aggregate \u003d self.admin_api.post_aggregate(aggregate_req)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":28,"context_line":"        # The uuid hasn\u0027t been exposed on the REST API yet so we have no way to"},{"line_number":29,"context_line":"        # match it here, now."},{"line_number":30,"context_line":"        self._verify_notification("},{"line_number":31,"context_line":"            \u0027aggregate-create-start\u0027,"},{"line_number":32,"context_line":"            replacements\u003d{"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_6e8996ca","line":29,"range":{"start_line":28,"start_character":8,"end_line":29,"end_character":29},"updated":"2016-12-30 15:47:17.000000000","message":"nit: we could make this a TODO since that change will happen.","commit_id":"c189ade553ba7685eddd3ba60296ae12729765de"}],"nova/tests/functional/notification_sample_tests/test_exception_notification.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9c91740c1c9d2bf4a5a581edbaab7b936a17f601","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.assertRaises(api_client.OpenStackApiException,"},{"line_number":34,"context_line":"                          self.admin_api.api_post, \u0027os-aggregates\u0027, post)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":37,"context_line":"        self._verify_notification("},{"line_number":38,"context_line":"            \u0027compute-exception\u0027,"},{"line_number":39,"context_line":"            actual\u003dfake_notifier.VERSIONED_NOTIFICATIONS[3])"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_8e74facf","line":36,"updated":"2016-12-30 15:47:17.000000000","message":"OK this is 4 because the first POST creates 2 notifications, aggregate.create.start and aggregate.create.end, then the 2nd POST creates another 2 notifications, aggregate.create.start and compute-exception because of the duplicate name.\n\nIf you need to respin, it\u0027d be helpful to add that information as a comment here.","commit_id":"c189ade553ba7685eddd3ba60296ae12729765de"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"577d1a0f6c722ea601543fb5294dac6852bb6f7b","unresolved":false,"context_lines":[{"line_number":10342,"context_line":"        # Ensure metadata can be updated."},{"line_number":10343,"context_line":"        aggr \u003d self.api.create_aggregate(self.context, \u0027fake_aggregate\u0027,"},{"line_number":10344,"context_line":"                                         \u0027fake_zone\u0027)"},{"line_number":10345,"context_line":""},{"line_number":10346,"context_line":"        fake_notifier.NOTIFICATIONS \u003d []"},{"line_number":10347,"context_line":"        self.api.update_aggregate(self.context, aggr.id,"},{"line_number":10348,"context_line":"                                         {\u0027name\u0027: \u0027new_fake_aggregate\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_a20f0de0","line":10345,"updated":"2016-11-08 11:38:10.000000000","message":"It is an unnecessary change.","commit_id":"46b26adc49b45f569c02727e0bfd99e48325498a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"98642145b55ffb7423354f6cd92e338b26ef073c","unresolved":false,"context_lines":[{"line_number":10342,"context_line":"        # Ensure metadata can be updated."},{"line_number":10343,"context_line":"        aggr \u003d self.api.create_aggregate(self.context, \u0027fake_aggregate\u0027,"},{"line_number":10344,"context_line":"                                         \u0027fake_zone\u0027)"},{"line_number":10345,"context_line":""},{"line_number":10346,"context_line":"        fake_notifier.NOTIFICATIONS \u003d []"},{"line_number":10347,"context_line":"        self.api.update_aggregate(self.context, aggr.id,"},{"line_number":10348,"context_line":"                                         {\u0027name\u0027: \u0027new_fake_aggregate\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_131ff65f","line":10345,"in_reply_to":"9a629dbe_a20f0de0","updated":"2016-11-09 10:35:21.000000000","message":"Done","commit_id":"46b26adc49b45f569c02727e0bfd99e48325498a"}]}
