)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"85c90fc71b441f97bbe69503ff7f67fd79863e49","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Caveat: The last backup of an instance should be deleted by user"},{"line_number":16,"context_line":"explicitly."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"APIImpact: For backup instance API, it will return 400 error"},{"line_number":19,"context_line":"if user passes rotation parameter value as 0."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"DocImpact: Minimum value for rotation parameter should be 1."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a71b18c_b9098c97","line":19,"range":{"start_line":18,"start_character":0,"end_line":19,"end_character":45},"updated":"2016-12-12 10:47:02.000000000","message":"please create a release notes \nrefer to this\nhttp://docs.openstack.org/developer/reno/usage.html#creating-new-release-notes","commit_id":"9ed183044824438223f7c064ef9525efe496746a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6b39ac3e0a92fbaad5677b40881a46da59f01e86","unresolved":false,"context_lines":[{"line_number":12,"context_line":"image and snapshot is an unnecessary step."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch changes the \u0027rotation\u0027 parameter min value from 0 to 1."},{"line_number":15,"context_line":"Caveat: The last backup of an instance should be deleted by user"},{"line_number":16,"context_line":"explicitly."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"APIImpact"},{"line_number":19,"context_line":"DocImpact: Minimum value for rotation parameter should be 1."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa31d9ce_cdb2c44b","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":11},"updated":"2017-02-15 13:56:05.000000000","message":"I\u0027m not sure what this means. It\u0027s not explained in the release note. Maybe an example would help.","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3598bcfe04edcd4b72f68b4fd783cab1c4626840","unresolved":false,"context_lines":[{"line_number":12,"context_line":"image and snapshot is an unnecessary step."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch changes the \u0027rotation\u0027 parameter min value from 0 to 1."},{"line_number":15,"context_line":"Caveat: The last backup of an instance should be deleted by user"},{"line_number":16,"context_line":"explicitly."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"APIImpact"},{"line_number":19,"context_line":"DocImpact: Minimum value for rotation parameter should be 1."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba2be162_aa351d47","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":11},"in_reply_to":"fa31d9ce_cdb2c44b","updated":"2017-03-01 13:32:08.000000000","message":"+1 I am lost, what does this mean? Users used to delete all previous backups by passing in 0? If so I guess we should keep this API (maybe just keep it in an old microversion).","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81424065bf7b873e35b6e856190960f5fc92f329","unresolved":false,"context_lines":[{"line_number":16,"context_line":"explicitly."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"APIImpact"},{"line_number":19,"context_line":"DocImpact: Minimum value for rotation parameter should be 1."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1627597"},{"line_number":22,"context_line":"Change-Id: Ie95f5c39c478ae69b697414347ae5272a205fb07"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa31d9ce_1a81748f","line":19,"updated":"2017-02-15 13:52:07.000000000","message":"You can address the doc impact via the api-ref within nova by changing this:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dcreate-server-back-up-createbackup-action-detail#create-server-back-up-createbackup-action","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3598bcfe04edcd4b72f68b4fd783cab1c4626840","unresolved":false,"context_lines":[{"line_number":16,"context_line":"explicitly."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"APIImpact"},{"line_number":19,"context_line":"DocImpact: Minimum value for rotation parameter should be 1."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1627597"},{"line_number":22,"context_line":"Change-Id: Ie95f5c39c478ae69b697414347ae5272a205fb07"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba2be162_aafefd68","line":19,"in_reply_to":"fa31d9ce_1a81748f","updated":"2017-03-01 13:32:08.000000000","message":"+1 for updating the docs here:\nhttps://github.com/openstack/nova/blob/master/api-ref/source/servers-admin-action.inc#L47\n\nhttps://github.com/openstack/nova/blob/4d33ec295439904a1087336dcfb072d2a8a5a318/api-ref/source/parameters.yaml#L1083","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"}],"nova/api/openstack/compute/schemas/create_backup.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81424065bf7b873e35b6e856190960f5fc92f329","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                \u0027backup_type\u0027: {"},{"line_number":28,"context_line":"                    \u0027type\u0027: \u0027string\u0027,"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                \u0027rotation\u0027: parameter_types.positive_integer,"},{"line_number":31,"context_line":"                \u0027metadata\u0027: parameter_types.metadata,"},{"line_number":32,"context_line":"            },"},{"line_number":33,"context_line":"            \u0027required\u0027: [\u0027name\u0027, \u0027backup_type\u0027, \u0027rotation\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_da619c06","line":30,"updated":"2017-02-15 13:52:07.000000000","message":"We might need to consider a microversion for this because requests which would pass before by passing 0 would now fail on this, and it\u0027s not discoverable between clouds.","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"30dc189e3aad004e0753123f59178995638871fd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"                \u0027backup_type\u0027: {"},{"line_number":28,"context_line":"                    \u0027type\u0027: \u0027string\u0027,"},{"line_number":29,"context_line":"                },"},{"line_number":30,"context_line":"                \u0027rotation\u0027: parameter_types.positive_integer,"},{"line_number":31,"context_line":"                \u0027metadata\u0027: parameter_types.metadata,"},{"line_number":32,"context_line":"            },"},{"line_number":33,"context_line":"            \u0027required\u0027: [\u0027name\u0027, \u0027backup_type\u0027, \u0027rotation\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_f0383fd5","line":30,"in_reply_to":"fa31d9ce_da619c06","updated":"2017-02-15 14:17:02.000000000","message":"I feel when rotation\u003d0, the API behaviour is meanless. Anyone in the real world invokes this API like that? I guess not, because the API just did nothing.\n\nIf people still feel the change without microversion is unsafe, we probably can just return 202 directly without doing any snapshot. But it makes the API behaviour is more meanless.\n\n\nAnd whether the create_backup API in the Nova is right place? It looks like just do something client can do.\n\nIf we think this API shouldn\u0027t be in Nova, we can deprecate the API and leave this problem at here...","commit_id":"8cfeec6403ec92ea38bbdf2054279dccb1fd6391"}],"nova/compute/api.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"519423eda3d8dcd67e369b796725fe31cefb5178","unresolved":false,"context_lines":[{"line_number":2794,"context_line":"                                            extra_properties\u003dprops_copy)"},{"line_number":2795,"context_line":""},{"line_number":2796,"context_line":"            # NOTE(comstud): Any changes to this method should also be made"},{"line_number":2797,"context_line":"            # to the backup_instance() method in nova/cells/messaging.py"},{"line_number":2798,"context_line":""},{"line_number":2799,"context_line":"            instance.task_state \u003d task_states.IMAGE_BACKUP"},{"line_number":2800,"context_line":"            instance.save(expected_task_state\u003d[None])"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_2b71250d","line":2797,"range":{"start_line":2797,"start_character":49,"end_line":2797,"end_character":72},"updated":"2017-04-04 14:25:11.000000000","message":"do we need changes in here?","commit_id":"ae9124c079e12cd332e590ea1ada6ec0386d26e6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"519423eda3d8dcd67e369b796725fe31cefb5178","unresolved":false,"context_lines":[{"line_number":2796,"context_line":"            # NOTE(comstud): Any changes to this method should also be made"},{"line_number":2797,"context_line":"            # to the backup_instance() method in nova/cells/messaging.py"},{"line_number":2798,"context_line":""},{"line_number":2799,"context_line":"            instance.task_state \u003d task_states.IMAGE_BACKUP"},{"line_number":2800,"context_line":"            instance.save(expected_task_state\u003d[None])"},{"line_number":2801,"context_line":""},{"line_number":2802,"context_line":"        self.compute_rpcapi.backup_instance(context, instance,"},{"line_number":2803,"context_line":"                                            image_meta.get(\u0027id\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfeb2761_008c0034","line":2800,"range":{"start_line":2799,"start_character":0,"end_line":2800,"end_character":53},"updated":"2017-04-04 14:25:11.000000000","message":"I think you still need to do this state change, otherwise we are breaking our API semantics.\n\nWe can simply move it back to done in the compute manager I guess, but it seems wrong not to still have that transition.","commit_id":"ae9124c079e12cd332e590ea1ada6ec0386d26e6"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"33d7f0fc9c29aff983d5ec7c6c7337ce78df21c3","unresolved":false,"context_lines":[{"line_number":2819,"context_line":"        # If rotation is 0, then there is no need to create an image as"},{"line_number":2820,"context_line":"        # it will be deleted immediately in the backup_instance method."},{"line_number":2821,"context_line":"        if rotation \u003d\u003d 0:"},{"line_number":2822,"context_line":"            LOG.info(_LI(\"Skipping creating image as rotation is 0.\"),"},{"line_number":2823,"context_line":"                     instance\u003dinstance)"},{"line_number":2824,"context_line":"        else:"},{"line_number":2825,"context_line":"            image_meta \u003d self._create_image(context, instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_8b77e6a0","line":2822,"updated":"2017-09-28 09:33:54.000000000","message":"_LI is not required now.","commit_id":"d02ce24ea2131464fe2faf25ea50e2c7a7af6704"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4ceb3e1c16534770a39a89a743c5f36d25b6207d","unresolved":false,"context_lines":[{"line_number":2668,"context_line":"        instance.task_state \u003d task_states.IMAGE_BACKUP"},{"line_number":2669,"context_line":"        instance.save(expected_task_state\u003d[None])"},{"line_number":2670,"context_line":""},{"line_number":2671,"context_line":"        self.compute_rpcapi.backup_instance(context, instance,"},{"line_number":2672,"context_line":"                                            image_meta.get(\u0027id\u0027),"},{"line_number":2673,"context_line":"                                            backup_type,"},{"line_number":2674,"context_line":"                                            rotation)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_130d568f","line":2671,"updated":"2017-09-29 08:21:25.000000000","message":"I think we get an upgrade issue here... If its a old compute node, it will fail because it still expects to get image_meta.\n\nI think we need to bump the RPC version (and in turn the service version). Once that is done, we can skip the image create only when the minimum compute version is high enough.\n\nI found an example of this kind of check here:\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L1729","commit_id":"249881d679928be32578cd1595f6ef61bb0481a1"}],"nova/compute/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cc209f3cf2e68dde4a2d1906c592e6ce57055e29","unresolved":false,"context_lines":[{"line_number":480,"context_line":"class ComputeManager(manager.Manager):"},{"line_number":481,"context_line":"    \"\"\"Manages the running instances from creation to destruction.\"\"\""},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    target \u003d messaging.Target(version\u003d\u00274.17\u0027)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    # How long to wait in seconds before re-issuing a shutdown"},{"line_number":486,"context_line":"    # signal to an instance during power off.  The overall"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_d358de88","line":483,"updated":"2017-09-29 08:29:43.000000000","message":"This is the version you should increase to trigger the service version bump.","commit_id":"249881d679928be32578cd1595f6ef61bb0481a1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cc209f3cf2e68dde4a2d1906c592e6ce57055e29","unresolved":false,"context_lines":[{"line_number":3127,"context_line":"        \"\"\""},{"line_number":3128,"context_line":"        # If rotation is 0, then there is no need to take a snapshot as"},{"line_number":3129,"context_line":"        # it will be deleted immediately in the _rotate_backups method."},{"line_number":3130,"context_line":"        if rotation \u003d\u003d 0:"},{"line_number":3131,"context_line":"            LOG.info(\"Skipping taking snapshot as rotation is 0.\","},{"line_number":3132,"context_line":"                     instance\u003dinstance)"},{"line_number":3133,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f515b1d_337f32e1","line":3130,"updated":"2017-09-29 08:29:43.000000000","message":"Maybe this should check, if image_id is None? Although rotation \u003d\u003d 0 is correct also, the _do_snapshot_instance will fail if the image_id is None, so maybe better to use that as the trigger to skip the snapshot.","commit_id":"249881d679928be32578cd1595f6ef61bb0481a1"}]}
