)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"64d9ad8116f7d0eeea3dae3be4054222928e6cd7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"ephemeral, rxtx). Privately accessible flavors also have a set of"},{"line_number":14,"context_line":"tenants allowed to use them. Finally, they also have additional information"},{"line_number":15,"context_line":"(accessed through get_keys() from the API but also referred to as extra_specs)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"It would be useful to receive create, update and delete notifications on"},{"line_number":18,"context_line":"any of this information changing, and the payload should contain the"},{"line_number":19,"context_line":"same information for create and update as accessible from the API."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3aaa91ec_d17d7e1d","line":16,"updated":"2016-06-29 14:14:27.000000000","message":"super-nit (only if you have to push a new patch set): commit messages are supposed to be wrapped at 72 chars","commit_id":"163f6eb81c8984d95392ddd4fb8d74cffaf98290"}],"specs/newton/approved/flavor-notifications.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":19,"context_line":"(accessed through get_keys() from the API but also referred to as extra_specs)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"It would be useful to receive create, update and delete notifications on"},{"line_number":22,"context_line":"any of this information changing, and the payload should contain the same"},{"line_number":23,"context_line":"information for create and update as accessible from the API."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Problem description"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_e1e54209","line":23,"range":{"start_line":22,"start_character":50,"end_line":23,"end_character":61},"updated":"2016-05-26 08:30:07.000000000","message":"the current proposal does not align with this statement, see at below.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* Flavor.create"},{"line_number":43,"context_line":"* Flavor.save_projects"},{"line_number":44,"context_line":"* Flavor.save_extra_specs"},{"line_number":45,"context_line":"* Flavor.save"},{"line_number":46,"context_line":"* Flavor.destroy"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_ec0a5925","line":45,"updated":"2016-05-26 08:30:07.000000000","message":"I guess in case of save we send notification if any of the fields are changed. In this case I don\u0027t see too frequent notification sending so it is OK","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f5b1861754a62ebab3b805e35ac17fd22fa6e13b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* Flavor.create"},{"line_number":43,"context_line":"* Flavor.save_projects"},{"line_number":44,"context_line":"* Flavor.save_extra_specs"},{"line_number":45,"context_line":"* Flavor.save"},{"line_number":46,"context_line":"* Flavor.destroy"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_f9861264","line":45,"in_reply_to":"bab6814e_ec0a5925","updated":"2016-06-06 06:15:47.000000000","message":"Flavor doesn\u0027t have a update method actually, and `save` only is used for updating extra_specs and projects, so i think Flavor.save doesn\u0027t need notification, i\u0027ll remove it.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            \u0027is_public\u0027: (\u0027flavor\u0027, \u0027is_public\u0027),"},{"line_number":86,"context_line":"            \u0027extra_specs\u0027: (\u0027flavor\u0027, \u0027extra_specs\u0027),"},{"line_number":87,"context_line":"            \u0027projects\u0027: (\u0027flavor\u0027, \u0027projects\u0027),"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"        VERSION \u003d \u00271.0\u0027"},{"line_number":90,"context_line":"        fields \u003d {"},{"line_number":91,"context_line":"            \u0027id\u0027: fields.IntegerField(),"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_ec94198c","line":88,"updated":"2016-05-26 08:30:07.000000000","message":"Based on \nhttps://github.com/openstack/nova/blob/master/doc/api_samples/flavors/flavors-detail-resp.json it seems that if we want to have the same info that what is in the API response then\n* id shall contain the flavorid from the object, see https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/views/flavors.py#L37\n* vcpu_weight is not in the API response (honestly I don\u0027t even know what it is)","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":103,"context_line":"            \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":104,"context_line":"            \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":105,"context_line":"        }"},{"line_number":106,"context_line":"        def __init__(self, flavor):"},{"line_number":107,"context_line":"            super(FlavorPayload, self).__init__()"},{"line_number":108,"context_line":"            self.populate_schema(flavor\u003dflavor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_8c38eda1","line":105,"updated":"2016-05-26 08:30:07.000000000","message":"There is different naming on the REST API. \nmemory_mb is called ram, root_gb is called disk etc. If you want to align with the REST API then you should consider aligning on the naming as well.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"13482707b60981fd41f948323455a3017ba23692","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":103,"context_line":"            \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":104,"context_line":"            \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":105,"context_line":"        }"},{"line_number":106,"context_line":"        def __init__(self, flavor):"},{"line_number":107,"context_line":"            super(FlavorPayload, self).__init__()"},{"line_number":108,"context_line":"            self.populate_schema(flavor\u003dflavor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_8398256c","line":105,"in_reply_to":"9abb7d3a_7bc97d5a","updated":"2016-06-02 20:17:28.000000000","message":"Being consistent with the API will lead to less confusion. When we fix the names in the future, we can fix them in both places at the same time (API and Notification). Admittedly this will cause a dependency on the name fix as we will need to make the change in all listeners of the notifications so they do not break.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f5b1861754a62ebab3b805e35ac17fd22fa6e13b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":103,"context_line":"            \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":104,"context_line":"            \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":105,"context_line":"        }"},{"line_number":106,"context_line":"        def __init__(self, flavor):"},{"line_number":107,"context_line":"            super(FlavorPayload, self).__init__()"},{"line_number":108,"context_line":"            self.populate_schema(flavor\u003dflavor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_d7583d59","line":105,"in_reply_to":"9abb7d3a_8398256c","updated":"2016-06-06 06:15:47.000000000","message":"Okay, i\u0027ll align this with the API for now.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"df7c3e6a67978b697fca5ab7a9f97743aff9c72d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":103,"context_line":"            \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":104,"context_line":"            \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":105,"context_line":"        }"},{"line_number":106,"context_line":"        def __init__(self, flavor):"},{"line_number":107,"context_line":"            super(FlavorPayload, self).__init__()"},{"line_number":108,"context_line":"            self.populate_schema(flavor\u003dflavor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_7bc97d5a","line":105,"in_reply_to":"9abb7d3a_abf1fb96","updated":"2016-06-02 13:58:21.000000000","message":"the API fields are really terrible ATM. I can see not wanting to propagate them, as the intent is we fix them later in the API.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"80aa4158965daa5f942e4695f57bcb047a6a7efe","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            \u0027is_public\u0027: fields.BooleanField(),"},{"line_number":103,"context_line":"            \u0027extra_specs\u0027: fields.DictOfStringsField(),"},{"line_number":104,"context_line":"            \u0027projects\u0027: fields.ListOfStringsField(),"},{"line_number":105,"context_line":"        }"},{"line_number":106,"context_line":"        def __init__(self, flavor):"},{"line_number":107,"context_line":"            super(FlavorPayload, self).__init__()"},{"line_number":108,"context_line":"            self.populate_schema(flavor\u003dflavor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_abf1fb96","line":105,"in_reply_to":"bab6814e_8c38eda1","updated":"2016-06-01 23:52:04.000000000","message":"Ensuring we get all the data via notification is very important to us. If the field names are different, they could be re-mapped on client side if needed. That said, I can\u0027t think of a reason why we should not go ahead and match the API. It seems like it would make all the consumer\u0027s lives easier.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    class FlavorDestroyPayload(notification.NotificationPayloadBase):"},{"line_number":124,"context_line":"        # Version 1.0: Initial version"},{"line_number":125,"context_line":"        SCHEMA \u003d {"},{"line_number":126,"context_line":"            \u0027id\u0027: (\u0027flavor\u0027, \u0027id\u0027),"},{"line_number":127,"context_line":"        }"},{"line_number":128,"context_line":"        VERSION \u003d \u00271.0\u0027"},{"line_number":129,"context_line":"        fields \u003d {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_ec49b932","line":126,"updated":"2016-05-26 08:30:07.000000000","message":"is it really the id or it is the flavorid from the flavor object?","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f5b1861754a62ebab3b805e35ac17fd22fa6e13b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    class FlavorDestroyPayload(notification.NotificationPayloadBase):"},{"line_number":124,"context_line":"        # Version 1.0: Initial version"},{"line_number":125,"context_line":"        SCHEMA \u003d {"},{"line_number":126,"context_line":"            \u0027id\u0027: (\u0027flavor\u0027, \u0027id\u0027),"},{"line_number":127,"context_line":"        }"},{"line_number":128,"context_line":"        VERSION \u003d \u00271.0\u0027"},{"line_number":129,"context_line":"        fields \u003d {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_52573b02","line":126,"in_reply_to":"bab6814e_ec49b932","updated":"2016-06-06 06:15:47.000000000","message":"It\u0027s should be flavorid, Done.","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1142add88f569246ec78abb3d29c2f5154f40b79","unresolved":false,"context_lines":[{"line_number":188,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Besides unit test new functional test cases will be added to cover the"},{"line_number":191,"context_line":"new notifications."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Documentation Impact"},{"line_number":194,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_0c74fd65","line":191,"updated":"2016-05-26 08:30:07.000000000","message":"Please not forget to add notification sample","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f5b1861754a62ebab3b805e35ac17fd22fa6e13b","unresolved":false,"context_lines":[{"line_number":188,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Besides unit test new functional test cases will be added to cover the"},{"line_number":191,"context_line":"new notifications."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Documentation Impact"},{"line_number":194,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_52f3bb0a","line":191,"in_reply_to":"bab6814e_0c74fd65","updated":"2016-06-06 06:15:47.000000000","message":"DOne","commit_id":"f3923fb1f470263c2474d8d4967ab2426c73e8a5"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"c8d83432695327ee31e440e496c249b7b054a354","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"The maintainer wants to get the notifications when there are flavors added"},{"line_number":35,"context_line":"updated or destroyed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_1e348ef9","line":32,"updated":"2016-06-15 22:43:48.000000000","message":"If needed, it should be noted that this allows powerful querying as well unified search across openstack resources (flavor being one of them)","commit_id":"5393a3e4b2a0dc138f5bef2a1e196aa031f63b1e"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ec4eeb282738e175c901924363623e74d869a269","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"The maintainer wants to get the notifications when there are flavors added"},{"line_number":35,"context_line":"updated or destroyed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3aaa91ec_e57c5522","line":32,"in_reply_to":"7aa08908_1e348ef9","updated":"2016-06-29 02:56:29.000000000","message":"Done","commit_id":"5393a3e4b2a0dc138f5bef2a1e196aa031f63b1e"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"3ac488f2a9fe520117e19961148516b80089806a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027vcpus\u0027: fields.IntegerField(),"},{"line_number":95,"context_line":"            \u0027disk\u0027: fields.IntegerField(),"},{"line_number":96,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: fields.IntegerField(),"},{"line_number":97,"context_line":"            \u0027swap\u0027: fields.IntegerField(),"},{"line_number":98,"context_line":"            \u0027rxtx_factor\u0027: fields.FloatField(nullable\u003dTrue),"},{"line_number":99,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: fields.BooleanField(),"},{"line_number":100,"context_line":"            \u0027os-flavor-access:is_public\u0027: fields.BooleanField(),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_553d3eba","line":97,"range":{"start_line":97,"start_character":27,"end_line":97,"end_character":39},"updated":"2016-06-06 17:57:52.000000000","message":"Based on the example JSON https://github.com/openstack/nova/blob/master/doc/api_samples/flavors/flavors-detail-resp.json this field has a default value of a NULL string. Will this be a problem for the integer field? Should this be declared as:\n\n    \u0027swap\u0027 : fields.IntegerField(nullable\u003dTrue)\n\nThe Nova code does seem to be treating it as an integer.","commit_id":"5393a3e4b2a0dc138f5bef2a1e196aa031f63b1e"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"07507b85782d82cc0244f32c2f320d1c338d9d9f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027vcpus\u0027: fields.IntegerField(),"},{"line_number":95,"context_line":"            \u0027disk\u0027: fields.IntegerField(),"},{"line_number":96,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: fields.IntegerField(),"},{"line_number":97,"context_line":"            \u0027swap\u0027: fields.IntegerField(),"},{"line_number":98,"context_line":"            \u0027rxtx_factor\u0027: fields.FloatField(nullable\u003dTrue),"},{"line_number":99,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: fields.BooleanField(),"},{"line_number":100,"context_line":"            \u0027os-flavor-access:is_public\u0027: fields.BooleanField(),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_eab9ce7a","line":97,"range":{"start_line":97,"start_character":27,"end_line":97,"end_character":39},"in_reply_to":"7aa08908_553d3eba","updated":"2016-06-07 06:16:15.000000000","message":"When creating flavor, the default value is 0 [1], the default value is changed to \"\" when listing/getting flavor [2]. So i think there is no issue here and for consistent with the Flavor object[3], i\u0027d prefer remaining it for now.\n\n[1], https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/flavor_manage.py#L71\n[2], https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/views/flavors.py#L88\n[3], https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L217","commit_id":"5393a3e4b2a0dc138f5bef2a1e196aa031f63b1e"},{"author":{"_account_id":14680,"name":"Rick Aulino","email":"rick.aulino@hpe.com","username":"ricka"},"change_message_id":"c00f237cb315aa72cca65a6d992d6e4ec6476483","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027vcpus\u0027: fields.IntegerField(),"},{"line_number":95,"context_line":"            \u0027disk\u0027: fields.IntegerField(),"},{"line_number":96,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: fields.IntegerField(),"},{"line_number":97,"context_line":"            \u0027swap\u0027: fields.IntegerField(),"},{"line_number":98,"context_line":"            \u0027rxtx_factor\u0027: fields.FloatField(nullable\u003dTrue),"},{"line_number":99,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: fields.BooleanField(),"},{"line_number":100,"context_line":"            \u0027os-flavor-access:is_public\u0027: fields.BooleanField(),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aa08908_6485ee05","line":97,"range":{"start_line":97,"start_character":27,"end_line":97,"end_character":39},"in_reply_to":"7aa08908_eab9ce7a","updated":"2016-06-07 15:22:49.000000000","message":"Yeah I saw that in the code, but I wasn\u0027t sure where the JSON came from and why they diverged. I agree with leaving it as is.","commit_id":"5393a3e4b2a0dc138f5bef2a1e196aa031f63b1e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"64d9ad8116f7d0eeea3dae3be4054222928e6cd7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient. This"},{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_e3c5518e","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":3},"updated":"2016-06-29 14:14:27.000000000","message":"nit: s/The/An/","commit_id":"163f6eb81c8984d95392ddd4fb8d74cffaf98290"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"886abea4216433855aac248aad4c367c73c1aa86","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient. This"},{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_40249e0b","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":3},"in_reply_to":"3aaa91ec_e3c5518e","updated":"2016-07-22 00:59:55.000000000","message":"Done","commit_id":"163f6eb81c8984d95392ddd4fb8d74cffaf98290"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"64d9ad8116f7d0eeea3dae3be4054222928e6cd7","unresolved":false,"context_lines":[{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"[1]: Searchlight: http://docs.openstack.org/developer/searchlight/index.html"},{"line_number":204,"context_line":"[2]: Versioned notification: http://docs.openstack.org/developer/nova/notifications.html#versioned-notifications"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"History"},{"line_number":207,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_83f56dee","line":204,"updated":"2016-06-29 14:14:27.000000000","message":"nit: need a blank line between these refs or they run together as a single paragraph when the RST is rendered","commit_id":"163f6eb81c8984d95392ddd4fb8d74cffaf98290"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"886abea4216433855aac248aad4c367c73c1aa86","unresolved":false,"context_lines":[{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"[1]: Searchlight: http://docs.openstack.org/developer/searchlight/index.html"},{"line_number":204,"context_line":"[2]: Versioned notification: http://docs.openstack.org/developer/nova/notifications.html#versioned-notifications"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"History"},{"line_number":207,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dada55a8_406bfe1d","line":204,"in_reply_to":"3aaa91ec_83f56dee","updated":"2016-07-22 00:59:55.000000000","message":"Done","commit_id":"163f6eb81c8984d95392ddd4fb8d74cffaf98290"}],"specs/ocata/approved/flavor-notifications.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4895b09125db89f075d64f52d7e592e89b99057d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"An external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient. This"},{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_21fdbb3a","line":32,"range":{"start_line":32,"start_character":44,"end_line":32,"end_character":53},"updated":"2016-10-11 22:42:21.000000000","message":"s/more fast/faster/","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ceb4fd408f2bb0fe539dd8a600521e2cb5f7a1ae","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"An external system like Searchlight[1] wants to index the flavors which"},{"line_number":32,"context_line":"makes the query for large number of flavors more fast and efficient. This"},{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_9ae7d0e3","line":32,"range":{"start_line":32,"start_character":44,"end_line":32,"end_character":53},"in_reply_to":"fa6399be_21fdbb3a","updated":"2016-10-12 00:43:24.000000000","message":"Done","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4895b09125db89f075d64f52d7e592e89b99057d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The maintainer wants to get the notifications when there are flavors added"},{"line_number":37,"context_line":"updated or destroyed."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_0100b733","line":36,"range":{"start_line":36,"start_character":69,"end_line":36,"end_character":74},"updated":"2016-10-11 22:42:21.000000000","message":"s/added/added,/","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ceb4fd408f2bb0fe539dd8a600521e2cb5f7a1ae","unresolved":false,"context_lines":[{"line_number":33,"context_line":"will allow powerful querying as well unified search across openstack"},{"line_number":34,"context_line":"resources (flavor being one of them)."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The maintainer wants to get the notifications when there are flavors added"},{"line_number":37,"context_line":"updated or destroyed."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_baec94c8","line":36,"range":{"start_line":36,"start_character":69,"end_line":36,"end_character":74},"in_reply_to":"fa6399be_0100b733","updated":"2016-10-12 00:43:24.000000000","message":"Done","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4895b09125db89f075d64f52d7e592e89b99057d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"No database schema change is needed."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The following new object will be added to flavor for create, save_projects,"},{"line_number":64,"context_line":"save_extra_specs, and save."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. code-block:: python"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_043fe5b4","line":64,"range":{"start_line":64,"start_character":22,"end_line":64,"end_character":26},"updated":"2016-10-11 22:42:21.000000000","message":"Flavor.save is just a convenience method for save_projects and save_extra_specs, the other attributes on a flavor are read-only, so I\u0027m not sure why this is called out here.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ceb4fd408f2bb0fe539dd8a600521e2cb5f7a1ae","unresolved":false,"context_lines":[{"line_number":61,"context_line":"No database schema change is needed."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The following new object will be added to flavor for create, save_projects,"},{"line_number":64,"context_line":"save_extra_specs, and save."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. code-block:: python"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_9afef069","line":64,"range":{"start_line":64,"start_character":22,"end_line":64,"end_character":26},"in_reply_to":"fa6399be_043fe5b4","updated":"2016-10-12 00:43:24.000000000","message":"Yeah, not needed here, removed.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4895b09125db89f075d64f52d7e592e89b99057d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    @base.NovaObjectRegistry.register"},{"line_number":77,"context_line":"    class FlavorPayload(notification.NotificationPayloadBase):"},{"line_number":78,"context_line":"        # Version 1.0: Initial version"},{"line_number":79,"context_line":"        SCHEMA \u003d {"},{"line_number":80,"context_line":"            \u0027id\u0027: (\u0027flavor\u0027, \u0027flavorid\u0027),"},{"line_number":81,"context_line":"            \u0027name\u0027: (\u0027flavor\u0027, \u0027name\u0027),"},{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_e10ca344","line":79,"updated":"2016-10-11 22:42:21.000000000","message":"What about vcpu_weight?\n\nhttps://github.com/openstack/nova/blob/b78f5498d23becdc26db3b1c6c4638da2ce25e01/nova/objects/flavor.py#L219\n\nApparently that\u0027s only used by the xenapi virt driver.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ceb4fd408f2bb0fe539dd8a600521e2cb5f7a1ae","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    @base.NovaObjectRegistry.register"},{"line_number":77,"context_line":"    class FlavorPayload(notification.NotificationPayloadBase):"},{"line_number":78,"context_line":"        # Version 1.0: Initial version"},{"line_number":79,"context_line":"        SCHEMA \u003d {"},{"line_number":80,"context_line":"            \u0027id\u0027: (\u0027flavor\u0027, \u0027flavorid\u0027),"},{"line_number":81,"context_line":"            \u0027name\u0027: (\u0027flavor\u0027, \u0027name\u0027),"},{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_da26a815","line":79,"in_reply_to":"fa6399be_e10ca344","updated":"2016-10-12 00:43:24.000000000","message":"Added","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b4d5fecafce79a77ec805ed7784b88c7bf31b426","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"},{"line_number":83,"context_line":"            \u0027vcpus\u0027: (\u0027flavor\u0027, \u0027vcpus\u0027),"},{"line_number":84,"context_line":"            \u0027disk\u0027: (\u0027flavor\u0027, \u0027root_gb\u0027),"},{"line_number":85,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: (\u0027flavor\u0027, \u0027ephemeral_gb\u0027),"},{"line_number":86,"context_line":"            \u0027swap\u0027: (\u0027flavor\u0027, \u0027swap\u0027),"},{"line_number":87,"context_line":"            \u0027rxtx_factor\u0027: (\u0027flavor\u0027, \u0027rxtx_factor\u0027),"},{"line_number":88,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: (\u0027flavor\u0027, \u0027disabled\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dada55a8_b81e925c","line":85,"range":{"start_line":85,"start_character":13,"end_line":85,"end_character":28},"updated":"2016-07-27 13:18:32.000000000","message":"I guess these prefixes are coming from the API. Does searchlight need exactly the same naming as on the API to ease avoid extra mapping?","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4895b09125db89f075d64f52d7e592e89b99057d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"},{"line_number":83,"context_line":"            \u0027vcpus\u0027: (\u0027flavor\u0027, \u0027vcpus\u0027),"},{"line_number":84,"context_line":"            \u0027disk\u0027: (\u0027flavor\u0027, \u0027root_gb\u0027),"},{"line_number":85,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: (\u0027flavor\u0027, \u0027ephemeral_gb\u0027),"},{"line_number":86,"context_line":"            \u0027swap\u0027: (\u0027flavor\u0027, \u0027swap\u0027),"},{"line_number":87,"context_line":"            \u0027rxtx_factor\u0027: (\u0027flavor\u0027, \u0027rxtx_factor\u0027),"},{"line_number":88,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: (\u0027flavor\u0027, \u0027disabled\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_e4af51e1","line":85,"range":{"start_line":85,"start_character":13,"end_line":85,"end_character":28},"in_reply_to":"bacf61ea_b01dc3bf","updated":"2016-10-11 22:42:21.000000000","message":"sdague said in an earlier patch set:\n\n\"the API fields are really terrible ATM. I can see not wanting to propagate them, as the intent is we fix them later in the API.\"\n\nWe\u0027d change the field names in the REST API later via microversions. There was a reply that we could just make the same changes in the versioned notification later too, which is true, so I\u0027m not sure if we should go that route or remove the extension prefix stuff now. I\u0027d like sdague to weigh back in on this.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"11cf4d3645d596832ad27f3815e5a0429cacfc22","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"},{"line_number":83,"context_line":"            \u0027vcpus\u0027: (\u0027flavor\u0027, \u0027vcpus\u0027),"},{"line_number":84,"context_line":"            \u0027disk\u0027: (\u0027flavor\u0027, \u0027root_gb\u0027),"},{"line_number":85,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: (\u0027flavor\u0027, \u0027ephemeral_gb\u0027),"},{"line_number":86,"context_line":"            \u0027swap\u0027: (\u0027flavor\u0027, \u0027swap\u0027),"},{"line_number":87,"context_line":"            \u0027rxtx_factor\u0027: (\u0027flavor\u0027, \u0027rxtx_factor\u0027),"},{"line_number":88,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: (\u0027flavor\u0027, \u0027disabled\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bacf61ea_b01dc3bf","line":85,"range":{"start_line":85,"start_character":13,"end_line":85,"end_character":28},"in_reply_to":"dada55a8_b81e925c","updated":"2016-07-28 00:39:38.000000000","message":"Yes, better be that","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ceb4fd408f2bb0fe539dd8a600521e2cb5f7a1ae","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"},{"line_number":83,"context_line":"            \u0027vcpus\u0027: (\u0027flavor\u0027, \u0027vcpus\u0027),"},{"line_number":84,"context_line":"            \u0027disk\u0027: (\u0027flavor\u0027, \u0027root_gb\u0027),"},{"line_number":85,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: (\u0027flavor\u0027, \u0027ephemeral_gb\u0027),"},{"line_number":86,"context_line":"            \u0027swap\u0027: (\u0027flavor\u0027, \u0027swap\u0027),"},{"line_number":87,"context_line":"            \u0027rxtx_factor\u0027: (\u0027flavor\u0027, \u0027rxtx_factor\u0027),"},{"line_number":88,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: (\u0027flavor\u0027, \u0027disabled\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_fa51ac63","line":85,"range":{"start_line":85,"start_character":13,"end_line":85,"end_character":28},"in_reply_to":"fa6399be_446abd81","updated":"2016-10-12 00:43:24.000000000","message":"Okay, good point, removed the extension prefix.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f825f1300c62b9f7ddc534f67fd691bce277331","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            \u0027ram\u0027: (\u0027flavor\u0027, \u0027memory_mb\u0027),"},{"line_number":83,"context_line":"            \u0027vcpus\u0027: (\u0027flavor\u0027, \u0027vcpus\u0027),"},{"line_number":84,"context_line":"            \u0027disk\u0027: (\u0027flavor\u0027, \u0027root_gb\u0027),"},{"line_number":85,"context_line":"            \u0027OS-FLV-EXT-DATA:ephemeral\u0027: (\u0027flavor\u0027, \u0027ephemeral_gb\u0027),"},{"line_number":86,"context_line":"            \u0027swap\u0027: (\u0027flavor\u0027, \u0027swap\u0027),"},{"line_number":87,"context_line":"            \u0027rxtx_factor\u0027: (\u0027flavor\u0027, \u0027rxtx_factor\u0027),"},{"line_number":88,"context_line":"            \u0027OS-FLV-DISABLED:disabled\u0027: (\u0027flavor\u0027, \u0027disabled\u0027),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_446abd81","line":85,"range":{"start_line":85,"start_character":13,"end_line":85,"end_character":28},"in_reply_to":"fa6399be_e4af51e1","updated":"2016-10-11 22:49:02.000000000","message":"Actually I\u0027m -1 on propagating the extension prefix in these fields. We didn\u0027t do that with the instance object notifications, so there is precedent. For example, there are extended server attributes in the REST API here:\n\nhttps://github.com/openstack/nova/blob/d79d6f665d44c1b0f8dff4d73f9913963e3efd0b/nova/api/openstack/compute/extended_server_attributes.py#L33\n\nLike OS-EXT-SRV-ATTR:hypervisor_hostname and OS-EXT-SRV-ATTR:reservation_id, but when you look at the InstancePayload:\n\nhttps://github.com/openstack/nova/blob/d79d6f665d44c1b0f8dff4d73f9913963e3efd0b/nova/notifications/objects/instance.py#L19\n\nWe just have \u0027node\u0027 and \u0027reservation_id\u0027 like in the Instance object, not matching what\u0027s in the REST API for those extended server attributes.\n\nSo given:\n\n1. The instance notifications are not using that extension prefix and,\n\n2. We don\u0027t want to propagate that cruft anymore, and eventually remove it from the REST API.\n\nI don\u0027t think we should do this here either. So -1 for this.","commit_id":"bb1cf4a43537d4b7d2972aac3bd2cff112af9794"}]}
