)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"ed7422e491b6a5e79f9d87ca0325d20f09d48042","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This commit is the REST API related part of the"},{"line_number":16,"context_line":"implementation."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I2533db3b08ddc66f42348135dcc2decfb5c3e861"},{"line_number":19,"context_line":"Implements: blueprint flavor-root-disk-none"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a8ec9b2_8425b8af","line":17,"updated":"2016-09-20 08:47:38.000000000","message":"We need some Tempest test on QA side on a guideline like https://review.openstack.org/#/c/346080/4/doc/source/code-review.rst\n\n The Nova microversion change commit message\n should reference the Change-Id of the Tempest test for\n reviewers to identify it.","commit_id":"f9f0bfa4aed80e6c003619585cff8fb6ac9afe4d"}],"doc/api_samples/flavor-manage/v2.31/flavor-create-post-req.json":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"        \"ram\": 1024,"},{"line_number":5,"context_line":"        \"vcpus\": 2,"},{"line_number":6,"context_line":"        \"id\": \"10\","},{"line_number":7,"context_line":"        \"local_disks\": false,"},{"line_number":8,"context_line":"        \"rxtx_factor\": 2.0"},{"line_number":9,"context_line":"    }"},{"line_number":10,"context_line":"}"}],"source_content_type":"application/json","patch_set":4,"id":"3aaa91ec_b7ed948d","line":7,"updated":"2016-06-22 12:46:28.000000000","message":"Nit:  know we already agreed this name in the spec, but I am wondering about \"allow_local_disks\". Anyways, this would mean a new spec revision, lets ignore that.","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":922,"context_line":"                    \"with could not be found.\")"},{"line_number":923,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":924,"context_line":"        except (exception.AutoDiskConfigDisabledByImage,"},{"line_number":925,"context_line":"                exception.CannotResizeDisk,"},{"line_number":926,"context_line":"                exception.CannotResizeToSameFlavor,"},{"line_number":927,"context_line":"                exception.FlavorNotFound,"},{"line_number":928,"context_line":"                exception.NoValidHost,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_e96584e1","line":925,"updated":"2016-06-22 12:46:28.000000000","message":"Don\u0027t we need to catch exception.FlavorLocalDisksDisabled here?","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":922,"context_line":"                    \"with could not be found.\")"},{"line_number":923,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":924,"context_line":"        except (exception.AutoDiskConfigDisabledByImage,"},{"line_number":925,"context_line":"                exception.CannotResizeDisk,"},{"line_number":926,"context_line":"                exception.CannotResizeToSameFlavor,"},{"line_number":927,"context_line":"                exception.FlavorNotFound,"},{"line_number":928,"context_line":"                exception.NoValidHost,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_1ac0ccdf","line":925,"in_reply_to":"3aaa91ec_e96584e1","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"            raise exc.HTTPForbidden(explanation\u003derror.format_message())"},{"line_number":1053,"context_line":"        except (exception.ImageNotActive,"},{"line_number":1054,"context_line":"                exception.FlavorDiskTooSmall,"},{"line_number":1055,"context_line":"                exception.FlavorLocalDisksDisabled,"},{"line_number":1056,"context_line":"                exception.FlavorMemoryTooSmall,"},{"line_number":1057,"context_line":"                exception.InvalidMetadata,"},{"line_number":1058,"context_line":"                exception.AutoDiskConfigDisabledByImage) as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_49bad824","line":1055,"updated":"2016-06-22 12:46:28.000000000","message":"Do we really need that for rebuild?","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"            raise exc.HTTPForbidden(explanation\u003derror.format_message())"},{"line_number":1053,"context_line":"        except (exception.ImageNotActive,"},{"line_number":1054,"context_line":"                exception.FlavorDiskTooSmall,"},{"line_number":1055,"context_line":"                exception.FlavorLocalDisksDisabled,"},{"line_number":1056,"context_line":"                exception.FlavorMemoryTooSmall,"},{"line_number":1057,"context_line":"                exception.InvalidMetadata,"},{"line_number":1058,"context_line":"                exception.AutoDiskConfigDisabledByImage) as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_1a4e0c96","line":1055,"in_reply_to":"3aaa91ec_49bad824","updated":"2016-06-23 13:48:33.000000000","message":"no, must be in _resize. Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}],"nova/api/openstack/compute/views/flavors.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                \"local_disks\": flavor[\"local_disks\"]"},{"line_number":55,"context_line":"            })"},{"line_number":56,"context_line":"            if flavor.get(\"local_disks\", True) is False:"},{"line_number":57,"context_line":"                flavor_dict[\u0027flavor\u0027].pop(\u0027disk\u0027, None)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        return flavor_dict"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_496db897","line":57,"updated":"2016-06-22 12:46:28.000000000","message":"Nit: Hang on a sec, isn\u0027t that for the v2.0 code that has been deleted. I would be tempted to add this code only in ViewBuilderV21. In reality it probably makes no difference now, really.","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                \"local_disks\": flavor[\"local_disks\"]"},{"line_number":55,"context_line":"            })"},{"line_number":56,"context_line":"            if flavor.get(\"local_disks\", True) is False:"},{"line_number":57,"context_line":"                flavor_dict[\u0027flavor\u0027].pop(\u0027disk\u0027, None)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        return flavor_dict"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_7542c111","line":57,"in_reply_to":"3aaa91ec_496db897","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":326,"context_line":"  which is the default, hypervisor-local disks (root, swap, ephemeral) are"},{"line_number":327,"context_line":"  allowed. Setting local_disks to False will require volumes to boot instances"},{"line_number":328,"context_line":"  from that flavor. Any blockdevice-mapping with disks having a local target,"},{"line_number":329,"context_line":"  will result in a 400 error."},{"line_number":330,"context_line":"  The POST request on /v2.1/​{tenant_id}​/flavors now accepts the new attribute"},{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_89604037","line":329,"range":{"start_line":329,"start_character":7,"end_line":329,"end_character":29},"updated":"2016-06-22 12:46:28.000000000","message":"Maybe we should add, something along the lines of: \"when creating a server\"","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":326,"context_line":"  which is the default, hypervisor-local disks (root, swap, ephemeral) are"},{"line_number":327,"context_line":"  allowed. Setting local_disks to False will require volumes to boot instances"},{"line_number":328,"context_line":"  from that flavor. Any blockdevice-mapping with disks having a local target,"},{"line_number":329,"context_line":"  will result in a 400 error."},{"line_number":330,"context_line":"  The POST request on /v2.1/​{tenant_id}​/flavors now accepts the new attribute"},{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_f5e6b1b2","line":329,"range":{"start_line":329,"start_character":7,"end_line":329,"end_character":29},"in_reply_to":"3aaa91ec_89604037","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b983ca823c5ab65c713f68456485283b610db1d8","unresolved":false,"context_lines":[{"line_number":327,"context_line":"  allowed. Setting local_disks to False will require volumes to boot instances"},{"line_number":328,"context_line":"  from that flavor. Any blockdevice-mapping with disks having a local target,"},{"line_number":329,"context_line":"  will result in a 400 error."},{"line_number":330,"context_line":"  The POST request on /v2.1/​{tenant_id}​/flavors now accepts the new attribute"},{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"},{"line_number":333,"context_line":"  the new attribute ``local_disks``. If this is set to False, ``disk``,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_714fbc92","line":330,"range":{"start_line":330,"start_character":28,"end_line":330,"end_character":29},"updated":"2016-06-22 12:03:23.000000000","message":"can we get rid of this unprintable characters?","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":327,"context_line":"  allowed. Setting local_disks to False will require volumes to boot instances"},{"line_number":328,"context_line":"  from that flavor. Any blockdevice-mapping with disks having a local target,"},{"line_number":329,"context_line":"  will result in a 400 error."},{"line_number":330,"context_line":"  The POST request on /v2.1/​{tenant_id}​/flavors now accepts the new attribute"},{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"},{"line_number":333,"context_line":"  the new attribute ``local_disks``. If this is set to False, ``disk``,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_95cacd6c","line":330,"range":{"start_line":330,"start_character":28,"end_line":330,"end_character":29},"in_reply_to":"3aaa91ec_714fbc92","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"},{"line_number":333,"context_line":"  the new attribute ``local_disks``. If this is set to False, ``disk``,"},{"line_number":334,"context_line":"  ``OS-FLV-EXT-DATA:ephemeral`` and ``swap`` are omitted."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_69ccf435","line":334,"updated":"2016-06-22 12:46:28.000000000","message":"You also changed resize behaviour, we should mention that here too.","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":331,"context_line":"  ``local_disks``. If this is set to False, the attribute ``disk`` is no longer"},{"line_number":332,"context_line":"  required. The GET request on /v2.1/​{tenant_id}​/flavors/​{flavor_id}​ includes"},{"line_number":333,"context_line":"  the new attribute ``local_disks``. If this is set to False, ``disk``,"},{"line_number":334,"context_line":"  ``OS-FLV-EXT-DATA:ephemeral`` and ``swap`` are omitted."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_95d76dbe","line":334,"in_reply_to":"3aaa91ec_69ccf435","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}],"nova/tests/functional/api_sample_tests/api_samples/flavor-manage/v2.31/flavor-create-post-resp.json.tpl":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b983ca823c5ab65c713f68456485283b610db1d8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        \"ram\": 1024,"},{"line_number":17,"context_line":"        \"vcpus\": 2,"},{"line_number":18,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":19,"context_line":"        \"local_disks\": false,"},{"line_number":20,"context_line":"        \"rxtx_factor\": 2.0"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3aaa91ec_31041416","line":19,"updated":"2016-06-22 12:03:23.000000000","message":"shouldn\u0027t we default to true here?","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        \"ram\": 1024,"},{"line_number":17,"context_line":"        \"vcpus\": 2,"},{"line_number":18,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":19,"context_line":"        \"local_disks\": false,"},{"line_number":20,"context_line":"        \"rxtx_factor\": 2.0"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3aaa91ec_49f3f89e","line":19,"in_reply_to":"3aaa91ec_31041416","updated":"2016-06-22 12:46:28.000000000","message":"+1","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        \"ram\": 1024,"},{"line_number":17,"context_line":"        \"vcpus\": 2,"},{"line_number":18,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":19,"context_line":"        \"local_disks\": false,"},{"line_number":20,"context_line":"        \"rxtx_factor\": 2.0"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3aaa91ec_b5038941","line":19,"in_reply_to":"3aaa91ec_49f3f89e","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        \"OS-FLV-DISABLED:disabled\": false,"},{"line_number":19,"context_line":"        \"local_disks\": false,"},{"line_number":20,"context_line":"        \"rxtx_factor\": 2.0"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3aaa91ec_e9f58483","line":21,"updated":"2016-06-22 12:46:28.000000000","message":"Nit: It would be nice to have a sample where we exclude things too, maybe?","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}],"nova/tests/functional/api_sample_tests/test_flavor_manage.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b983ca823c5ab65c713f68456485283b610db1d8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            \u0027flavor_id\u0027: \u002710\u0027,"},{"line_number":55,"context_line":"            \u0027flavor_name\u0027: \"test_flavor\","},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":"        response \u003d self._do_post(\"flavors\","},{"line_number":58,"context_line":"                                 \"flavor-create-post-req\","},{"line_number":59,"context_line":"                                 subs)"},{"line_number":60,"context_line":"        self._verify_response(\"flavor-create-post-resp\", subs, response, 200)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_dc57a700","line":57,"updated":"2016-06-22 12:03:23.000000000","message":"I feel like I want to see both the true and false case here as 2 tests given that the attributes required and shown are different.","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":15371,"name":"Tom Patzig","email":"tom.patzig@sap.com","username":"tpatzig"},"change_message_id":"9d984a2bc5c648c07cbbfdfe0687eb5e1e778e33","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            \u0027flavor_id\u0027: \u002710\u0027,"},{"line_number":55,"context_line":"            \u0027flavor_name\u0027: \"test_flavor\","},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":"        response \u003d self._do_post(\"flavors\","},{"line_number":58,"context_line":"                                 \"flavor-create-post-req\","},{"line_number":59,"context_line":"                                 subs)"},{"line_number":60,"context_line":"        self._verify_response(\"flavor-create-post-resp\", subs, response, 200)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_b58a69bd","line":57,"in_reply_to":"3aaa91ec_494ad8c6","updated":"2016-06-23 13:48:33.000000000","message":"Done","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f8c33eac341fe685dbe6c507aecbed0d67a9d1c5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            \u0027flavor_id\u0027: \u002710\u0027,"},{"line_number":55,"context_line":"            \u0027flavor_name\u0027: \"test_flavor\","},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":"        response \u003d self._do_post(\"flavors\","},{"line_number":58,"context_line":"                                 \"flavor-create-post-req\","},{"line_number":59,"context_line":"                                 subs)"},{"line_number":60,"context_line":"        self._verify_response(\"flavor-create-post-resp\", subs, response, 200)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_494ad8c6","line":57,"in_reply_to":"3aaa91ec_dc57a700","updated":"2016-06-22 12:46:28.000000000","message":"+1 both cases here.\n\nAlso, what about also testing the list flavors call?\n\nAlso, I think we should test older list flavors calls, v2.1 base line calls, for flavors that are created with local_disk \u003d False","commit_id":"7b7a063f36afe6ee694672ad9f792229651fdf35"}]}
