)]}'
{"id":"openstack%2Fpython-novaclient~684762","triplet_id":"openstack%2Fpython-novaclient~master~I0f9f75cba68e7582d32d4aab2f8f077b4360d386","project":"openstack/python-novaclient","branch":"master","topic":"bug/1845322","hashtags":[],"change_id":"I0f9f75cba68e7582d32d4aab2f8f077b4360d386","subject":"Stop silently ignoring invalid \u0027nova boot --hint\u0027 options","status":"MERGED","created":"2019-09-25 14:41:17.000000000","updated":"2019-09-27 16:01:33.000000000","submitted":"2019-09-27 16:00:20.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"684762-1569600020969-02882d20","meta_rev_id":"3729bc4514a107408ef1c0d3b85af87bc5beb6b0","_number":684762,"virtual_id_number":684762,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-09-27 16:00:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"date":"2019-09-27 12:06:36.000000000","_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2019-09-27 13:04:17.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2019-09-27 13:04:48.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-25 16:26:40.000000000","updated_by":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"reviewer":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"state":"REVIEWER"},{"updated":"2019-09-27 13:04:48.000000000","updated_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"reviewer":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"state":"REVIEWER"},{"updated":"2019-09-27 16:00:20.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"15963d21bfff6130aa08dba6df7db8003872f468","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-25 14:41:17.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1835ada2a7fa6e6bdb24c92706ef116dabf05609","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2019-09-25 16:26:40.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"7a4b0bce83611d6f05c9f20fc0b51487ffb1bd15","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-25 16:37:05.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/1442ec5f7f4444b597b28c3d2aa9f7a2 : SUCCESS in 1h 46m 45s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/365fd7edfac54130b5f97f24053f8f7b : SUCCESS in 1h 37m 34s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/772d2e7e72754476b0fdfb869654f454 : SUCCESS in 4m 10s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c8ea9f6d34c14cb69a0232ba58911cbe : SUCCESS in 5m 38s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6be9282a482d40a5a897054e5ea9094f : SUCCESS in 3m 25s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/5001a67730624ce38a348b535e9c26aa : SUCCESS in 6m 04s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ef6b43d6d4544204a693ab2b133c2a6c : SUCCESS in 5m 09s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/5b34590bece84f23a9fd58448a9b9832 : SUCCESS in 5m 34s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b4f02083f9ef4b6aa58a6e23dd8ebb31 : SUCCESS in 4m 17s\n- novaclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/ce4bcaa7612f448ba962ef49a2537531 : SUCCESS in 1h 14m 30s","accounts_in_message":[],"_revision_number":1},{"id":"9ffe91bbc964ee12189c18801beea02a169ec4ec","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-27 12:06:25.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"c08205a9b272f99d2d61992e6576b0fbf5c80dc2","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-27 12:06:36.000000000","message":"Patch Set 2:\n\nForgot the bug link in the commit message","accounts_in_message":[],"_revision_number":2},{"id":"5ff946f7ae8fd39a513fd94f06fec63ebe0c5994","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-27 13:04:17.000000000","message":"Patch Set 2: Code-Review+2\n\nLGTM","accounts_in_message":[],"_revision_number":2},{"id":"8d6d64e9efca9f941cf4d95d6a20d335f800bee6","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-27 13:04:48.000000000","message":"Patch Set 2: Workflow+1\n\nKevin was +2 before and only the commit message is changed so I\u0027m approving this.","accounts_in_message":[],"_revision_number":2},{"id":"575ea2726fd2d5df805332834fd098472dd9d2e0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 14:02:06.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/42c1185daaa64763897211966804d72a : SUCCESS in 1h 50m 05s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e95c81c298f94e54bd0f784403004d89 : SUCCESS in 1h 19m 54s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4ba93dd8f5bf4a098cb7a17e6b7400e8 : SUCCESS in 5m 13s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/72f086d447994acdb580d755ff600809 : SUCCESS in 4m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b9587408468f421f8673847cbbadf2e1 : SUCCESS in 3m 53s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/36c7e003e4c74bc18860b6c2bd979db8 : SUCCESS in 5m 33s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/811d76366d6e4ffba00e3b344759d2a9 : SUCCESS in 4m 16s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/c7ea0944e37143708e5e0640636c2df6 : SUCCESS in 5m 45s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/334e3e9a7a154269a6d770ec8558d6c3 : SUCCESS in 3m 52s\n- novaclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/0a5d193982604788abf9700033828ebb : SUCCESS in 1h 04m 08s","accounts_in_message":[],"_revision_number":2},{"id":"7735b28a43cd55eb3f49defdf03d2123a7080f89","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 14:02:18.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"a44781bf0ded58d9b4bf14e052f4660b23cb2326","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 16:00:20.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/80111ff41566435db30aa183f026511c : SUCCESS in 1h 54m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e1da8ff737064fa3946dce954aead800 : SUCCESS in 1h 15m 06s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/03343032d469430cbd02ca1a2e614d54 : SUCCESS in 5m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/221bc104b10b47e78fb58ad7b6404505 : SUCCESS in 3m 56s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/895dfc5ae61047e9820c7d5b9c974cbf : SUCCESS in 4m 20s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/f88e7192819a4233aeb8fbfbd8d731a3 : SUCCESS in 4m 07s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/b44ec1e08bdc4c2a9ba5bde7efd91088 : SUCCESS in 4m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/07cff9cb33114af18fcce432dd7a1a41 : SUCCESS in 4m 39s\n- novaclient-dsvm-functional https://zuul.opendev.org/t/openstack/build/7d0a5d80198447e5992d8a12f28f285e : SUCCESS in 1h 13m 10s","accounts_in_message":[],"_revision_number":2},{"id":"9407d91c1e23c8a06f99c5a7a20ffc5a5136a7ca","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 16:00:20.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"d68c4c94edc9c45a5192679b46fe3d5119dd7f2b","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 16:01:33.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e7b6e0b5dfa34a23898c6aba643fa825 : SUCCESS in 53s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"6954aacd54e85859fecde22ac04db1ce7601dd35","revisions":{"85727d1a973818558e9f18575d8eb0228d62c63b":{"kind":"REWORK","_number":1,"created":"2019-09-25 14:41:17.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/62/684762/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/62/684762/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/1"}}},"commit":{"parents":[{"commit":"d5b5a20de15a016d341c5e9d3092478f7a12c3e8","subject":"Merge \"Add a check for --config-drive option on nova boot\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/d5b5a20de15a016d341c5e9d3092478f7a12c3e8"}]}],"author":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-25 11:10:21.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-25 14:28:08.000000000","tz":60},"subject":"Stop silently ignoring invalid \u0027nova boot --hint\u0027 options","message":"Stop silently ignoring invalid \u0027nova boot --hint\u0027 options\n\nThe \u0027--hint\u0027 option for \u0027nova boot\u0027 expects a key-value pair like so:\n\n  nova boot --hint group\u003d245e1dfe-2d0e-4139-80a9-fce124948896 ...\n\nHowever, the command doesn\u0027t complain if this isn\u0027t the case, meaning\ntypos like the below aren\u0027t indicated to the user:\n\n  nova boot --hint 245e1dfe-2d0e-4139-80a9-fce124948896\n\nDue to how we\u0027d implemented this here, this ultimately results in us\nPOSTing the following as part of the body to \u0027os-servers\u0027:\n\n  {\n    ...\n    \"OS-SCH-HNT:scheduler_hints\": {\n      \"245e1dfe-2d0e-4139-80a9-fce124948896\": null\n    }\n    ...\n  }\n\nWhich is unfortunately allowed and ignored by nova due to the use of\n\u0027additionalProperties\u0027 in the schema [1]\n\nDo what we do for loads of other options and explicitly fail on invalid\nvalues.\n\n[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146\n\nChange-Id: I0f9f75cba68e7582d32d4aab2f8f077b4360d386\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/85727d1a973818558e9f18575d8eb0228d62c63b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/85727d1a973818558e9f18575d8eb0228d62c63b"}]},"branch":"refs/heads/master"},"6954aacd54e85859fecde22ac04db1ce7601dd35":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2019-09-27 12:06:25.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/62/684762/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/62/684762/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/62/684762/2"}}},"commit":{"parents":[{"commit":"d5b5a20de15a016d341c5e9d3092478f7a12c3e8","subject":"Merge \"Add a check for --config-drive option on nova boot\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/d5b5a20de15a016d341c5e9d3092478f7a12c3e8"}]}],"author":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-25 11:10:21.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2019-09-27 12:06:23.000000000","tz":0},"subject":"Stop silently ignoring invalid \u0027nova boot --hint\u0027 options","message":"Stop silently ignoring invalid \u0027nova boot --hint\u0027 options\n\nThe \u0027--hint\u0027 option for \u0027nova boot\u0027 expects a key-value pair like so:\n\n  nova boot --hint group\u003d245e1dfe-2d0e-4139-80a9-fce124948896 ...\n\nHowever, the command doesn\u0027t complain if this isn\u0027t the case, meaning\ntypos like the below aren\u0027t indicated to the user:\n\n  nova boot --hint 245e1dfe-2d0e-4139-80a9-fce124948896\n\nDue to how we\u0027d implemented this here, this ultimately results in us\nPOSTing the following as part of the body to \u0027os-servers\u0027:\n\n  {\n    ...\n    \"OS-SCH-HNT:scheduler_hints\": {\n      \"245e1dfe-2d0e-4139-80a9-fce124948896\": null\n    }\n    ...\n  }\n\nWhich is unfortunately allowed and ignored by nova due to the use of\n\u0027additionalProperties\u0027 in the schema [1]\n\nDo what we do for loads of other options and explicitly fail on invalid\nvalues.\n\n[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146\n\nChange-Id: I0f9f75cba68e7582d32d4aab2f8f077b4360d386\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\nCloses-Bug: #1845322\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/6954aacd54e85859fecde22ac04db1ce7601dd35"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/6954aacd54e85859fecde22ac04db1ce7601dd35"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
