)]}'
{"id":"openstack%2Fpython-openstackclient~685329","triplet_id":"openstack%2Fpython-openstackclient~master~I9e96d2978912c8dfeadae4a782c481a17cd7e348","project":"openstack/python-openstackclient","branch":"master","topic":"bug/1845322","hashtags":[],"change_id":"I9e96d2978912c8dfeadae4a782c481a17cd7e348","subject":"Stop silently ignoring invalid \u0027server create --hint\u0027 options","status":"MERGED","created":"2019-09-27 12:03:29.000000000","updated":"2020-02-04 10:55:25.000000000","submitted":"2020-02-03 18:41:15.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":"685329-1580755275540-5f1f21a0","meta_rev_id":"c7b47119931cb3139570a79886b7cadb2974dccf","_number":685329,"virtual_id_number":685329,"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":"2020-02-03 18:41:15.000000000","post_submit":true,"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,"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"}],"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":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"recommended":{"_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":"2020-02-03 15:26:57.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":2,"date":"2020-02-03 15:26:57.000000000","_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":2,"date":"2020-02-03 15:29:20.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"}],"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"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":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":1,"date":"2020-02-03 15:29:20.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-09-27 14:15:54.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-10-22 19:19:59.000000000","updated_by":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"reviewer":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"state":"REVIEWER"},{"updated":"2020-02-03 15:29:20.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"},{"updated":"2020-02-03 18:41:15.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":"c899c4d7809ea9ab18e9acc0b726dbcc82d32d5c","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-27 12:03:29.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f109671fd883e1b81c29e2bcb2b655a93270f1f7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 13:37:21.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/06dd28820d90490ba6d5712f6bbb49f6 : SUCCESS in 4m 46s (non-voting)\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/ed8f48d50ea3472b993fa5feeae9263e : SUCCESS in 6m 15s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/d4bb4f7c1e274de995c4a4d988a79032 : SUCCESS in 4m 33s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/cc24f07a3e1249efa8e8f5d486f28042 : SUCCESS in 4m 52s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1694c662ab35444691a1c182a6abe0b3 : SUCCESS in 4m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7674211923c24ed9b50a560d28a1027a : SUCCESS in 3m 58s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/2b077803443b4b6ab9c4222ffb58dbfb : SUCCESS in 5m 33s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/06cc06073ede4c7c9990e188821ef572 : SUCCESS in 3m 26s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/96b6319fb8d44e3aadfb8a658e923350 : SUCCESS in 4m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2084f18290b4415691f3d885b5ccd2f4 : SUCCESS in 6m 06s\n- tempest-full https://zuul.opendev.org/t/openstack/build/d46de9c435f948438692ee3e3debab94 : SUCCESS in 1h 30m 37s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/459dd71b80f644b9a2686484e1a88c81 : SUCCESS in 1h 23m 12s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/935d40feb71745cd8c923a77af06ba85 : SUCCESS in 54m 55s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/17a515cfb18a437aad338de650e13b8e : SUCCESS in 52m 57s","accounts_in_message":[],"_revision_number":1},{"id":"6020605df4c6a888153b84f49ffc175f687d9807","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-09-27 14:09:54.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1410351d6941f48d4635bdb3b3961f6c713f114d","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2019-09-27 14:15:54.000000000","message":"Patch Set 2: Code-Review+1\n\nI\u0027ve tested in devstack, it works for me.","accounts_in_message":[],"_revision_number":2},{"id":"430944a1b172b938ca32de99d56f5e938cb59c39","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-27 15:52:43.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/5635fb527a43498b8def45bcb6bbbdde : SUCCESS in 3m 56s (non-voting)\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/2d12e0e35c674b27bf3b62fa8280c3e8 : SUCCESS in 5m 13s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/60ffcf3105cf419490e21789f0dc36d7 : SUCCESS in 5m 12s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b867340b7cef478e886a9c9963fac3d5 : SUCCESS in 4m 23s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4c998e70b9ac4fedae23aa1df074730b : SUCCESS in 4m 17s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/41208da42aaa44c99af2c10e21174640 : SUCCESS in 4m 20s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/b00b0719c9b44786a0756cd8b96ee05b : SUCCESS in 5m 19s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/aaccfbdaae7c4a52968e1d999454a070 : SUCCESS in 5m 44s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/7647fe541779488194995d1225f55db1 : SUCCESS in 4m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d4a78fa4a699459fa020510f8248bfe8 : SUCCESS in 5m 02s\n- tempest-full https://zuul.opendev.org/t/openstack/build/d21d96cb1b2941d88608cd806a92d9b9 : SUCCESS in 1h 33m 23s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e509b6dc8df94cdf880f08f2ffc49a17 : SUCCESS in 1h 39m 06s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/93f8fd435dfb4fd2a0b807e18a6ce79c : SUCCESS in 49m 20s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/4637141d62c344c3ac2c14bf7e07dde3 : SUCCESS in 55m 20s","accounts_in_message":[],"_revision_number":2},{"id":"764802ef462438ef1338327f9fb2b97ce64039b9","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2019-10-22 19:19:59.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"4a922cdb27d8b93d036c2d6c45200ef60b4d5484","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-03 15:26:57.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"5b1345e15e2b21c79efcdefc8c5ab4327650c7c5","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2020-02-03 15:29:20.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"ad2e74000c5e7592b0c2bdc50f2e11c18944a75c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-03 16:46:46.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/a4716343cc404319b0f8b0031f2d4747 : SUCCESS in 5m 16s (non-voting)\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/2a6584de2a284295a881b38b98087a17 : SUCCESS in 5m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9aa6680e71f14092be8e4a089ff3945d : SUCCESS in 6m 17s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/d4cb87c586ad42fcae3c5388bc701620 : SUCCESS in 4m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/22b7470f4cee4167b7af25ba3b5c6b1f : SUCCESS in 7m 32s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/aacf715fee994e139b7918ac768de6b3 : SUCCESS in 6m 18s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/f93d38dd771a467fbdc22a68e3c25494 : SUCCESS in 4m 01s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/e3367ffc519741d18ab65495a56664f2 : SUCCESS in 4m 20s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/60fba0fb55c44be09ca59fd3a729c70a : SUCCESS in 6m 27s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9abb625eaa9f45f4a71af3393e029155 : SUCCESS in 1h 16m 36s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/b22fa04f81ac4139b50a0f0101b6ebe3 : SUCCESS in 1h 14m 34s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/3daa3275abf14e6bb7467c2975f65363 : SUCCESS in 54m 27s","accounts_in_message":[],"_revision_number":3},{"id":"46b51fc969c93223dfba1a00152b3eef5abe1c01","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-03 16:46:59.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"dbace7cd03ef6cea76cafbc95c99d54ab362f8dd","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-03 18:41:15.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/ea141015e24d49a6a5b5c9825e5cec6e : SUCCESS in 7m 44s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/f94c2d0f04f644abab0fafad5c5fb702 : SUCCESS in 5m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fe80ce03e9ab42cbb949f23e47e99800 : SUCCESS in 4m 50s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/2c0e06aec6eb421ca20ea0a7e0cc2383 : SUCCESS in 19m 04s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/17b6f88485ef49c7bfdd59aad41ff4d9 : SUCCESS in 17m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e403b84991514255bcf02fc28e53ad7d : SUCCESS in 8m 53s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/081632b181b94423b0c77a5a52ac47ea : SUCCESS in 1h 49m 31s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/d032505d2bf340dcafec386a3c776aa4 : SUCCESS in 53m 39s","accounts_in_message":[],"_revision_number":3},{"id":"6de973b6364a92c8b1c1e8aa4711b303ef151249","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-03 18:41:15.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":3},{"id":"090c2bce05c4f3340f124d0f5698b7ac1a3272b6","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-02-03 18:43:48.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/91aa4465a1154f36b677f7054905680a : SUCCESS in 2m 03s","accounts_in_message":[],"_revision_number":3},{"id":"f96fd101e8f574fc45b9d486e4b47bc31b7bb14a","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2020-02-04 10:55:25.000000000","message":"Patch Set 3: Cherry Picked\n\nThis patchset was cherry picked to branch stable/train as commit 576d9ecfd0ac27611ec89af6d34e7378b7a39fb3","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"ea27ebb0f918db9eab2f5751a1b065818faa0e6d","revisions":{"4029d8797be1a48c26b116c3834db058c4605442":{"kind":"REWORK","_number":1,"created":"2019-09-27 12:03:29.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/29/685329/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/29/685329/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/1"}}},"commit":{"parents":[{"commit":"aa64eb6b0acc6e049c81fd856b75cda2f905c84c","subject":"Merge \"Update release table for Train and 4.0.0\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/aa64eb6b0acc6e049c81fd856b75cda2f905c84c"}]}],"author":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-27 11:19:29.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-27 11:58:28.000000000","tz":60},"subject":"Stop silently ignoring invalid \u0027server create --hint\u0027 options","message":"Stop silently ignoring invalid \u0027server create --hint\u0027 options\n\nThe \u0027--hint\u0027 option for \u0027server create\u0027 expects a key-value pair like so:\n\n  openstack server create --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  openstack server create --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. This involves adding a new argparse action since none of those\ndefined in osc-lib work for us. This is included here to ease\nbackporting of the fix but will be moved to osc-lib in a future patch.\n\n[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146\n\nChange-Id: I9e96d2978912c8dfeadae4a782c481a17cd7e348\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-openstackclient/commit/4029d8797be1a48c26b116c3834db058c4605442"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/4029d8797be1a48c26b116c3834db058c4605442"}]},"branch":"refs/heads/master"},"1649fffe7bdb627120ebc9d938639f0de8ca5928":{"kind":"REWORK","_number":2,"created":"2019-09-27 14:09:54.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/29/685329/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/29/685329/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/2"}}},"commit":{"parents":[{"commit":"aa64eb6b0acc6e049c81fd856b75cda2f905c84c","subject":"Merge \"Update release table for Train and 4.0.0\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/aa64eb6b0acc6e049c81fd856b75cda2f905c84c"}]}],"author":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-27 11:19:29.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-27 14:06:19.000000000","tz":60},"subject":"Stop silently ignoring invalid \u0027server create --hint\u0027 options","message":"Stop silently ignoring invalid \u0027server create --hint\u0027 options\n\nThe \u0027--hint\u0027 option for \u0027server create\u0027 expects a key-value pair like so:\n\n  openstack server create --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  openstack server create --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. This involves adding a new argparse action since none of those\ndefined in osc-lib work for us. This is included here to ease\nbackporting of the fix but will be moved to osc-lib in a future patch.\n\n[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146\n\nChange-Id: I9e96d2978912c8dfeadae4a782c481a17cd7e348\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\nStory: #2006628\nTask: #36840\nRelated-Bug: #1845322\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/1649fffe7bdb627120ebc9d938639f0de8ca5928"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/1649fffe7bdb627120ebc9d938639f0de8ca5928"}]},"branch":"refs/heads/master"},"ea27ebb0f918db9eab2f5751a1b065818faa0e6d":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2020-02-03 15:26:57.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/29/685329/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/29/685329/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/29/685329/3"}}},"commit":{"parents":[{"commit":"70ab3f9dd56a638cdff516ca85baa5ebd64c888b","subject":"Add support for app cred access rules","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/70ab3f9dd56a638cdff516ca85baa5ebd64c888b"}]}],"author":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2019-09-27 11:19:29.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"sfinucan@redhat.com","date":"2020-02-03 15:25:24.000000000","tz":0},"subject":"Stop silently ignoring invalid \u0027server create --hint\u0027 options","message":"Stop silently ignoring invalid \u0027server create --hint\u0027 options\n\nThe \u0027--hint\u0027 option for \u0027server create\u0027 expects a key-value pair like so:\n\n  openstack server create --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  openstack server create --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. This involves adding a new argparse action since none of those\ndefined in osc-lib work for us. This is included here to ease\nbackporting of the fix but will be moved to osc-lib in a future patch.\n\n[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146\n\nChange-Id: I9e96d2978912c8dfeadae4a782c481a17cd7e348\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\nStory: #2006628\nTask: #36840\nRelated-Bug: #1845322\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/ea27ebb0f918db9eab2f5751a1b065818faa0e6d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/ea27ebb0f918db9eab2f5751a1b065818faa0e6d"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
