)]}'
{"id":"openstack%2Fpython-openstackclient~667264","triplet_id":"openstack%2Fpython-openstackclient~master~Id37f86ce5a2142737e7280fcb8335449621fdd2f","project":"openstack/python-openstackclient","branch":"master","topic":"bug/1821584","hashtags":[],"change_id":"Id37f86ce5a2142737e7280fcb8335449621fdd2f","subject":"WIP - Compute \u0027force_service_down\u0027 API returns 400 with latest version","status":"ABANDONED","created":"2019-06-25 04:58:13.000000000","updated":"2019-08-01 16:56:23.000000000","total_comment_count":20,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"829b61e9f6fd421b5f804a1ab28502b12820334f","_number":667264,"virtual_id_number":667264,"owner":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":-1,"date":"2019-06-25 08:59:20.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},{"_account_id":3085,"name":"Tushar Patil","inactive":true},{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"date":"2019-06-26 10:56:03.000000000","_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3085,"name":"Tushar Patil","inactive":true},{"value":-1,"date":"2019-06-26 13:28:17.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"value":-1,"date":"2019-06-25 13:31:39.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"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":{"all":[{"date":"2019-06-25 12:18:42.000000000","_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"]},{"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},{"_account_id":3085,"name":"Tushar Patil","inactive":true},{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},{"_account_id":3085,"name":"Tushar Patil","inactive":true},{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-06-25 05:00:42.000000000","updated_by":{"_account_id":3085,"name":"Tushar Patil","inactive":true},"reviewer":{"_account_id":3085,"name":"Tushar Patil","inactive":true},"state":"REVIEWER"},{"updated":"2019-06-25 05:00:52.000000000","updated_by":{"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},"reviewer":{"_account_id":8716,"name":"Sampath Priyankara","email":"sam47priya@gmail.com","username":"sampath"},"state":"REVIEWER"},{"updated":"2019-06-25 05:01:35.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"},{"updated":"2019-06-25 05:03:41.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":"2019-06-25 08:59: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"},{"updated":"2019-06-25 12:18:42.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-06-25 13:31:39.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2019-06-26 13:28:17.000000000","updated_by":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"reviewer":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"state":"REVIEWER"}],"messages":[{"id":"0db6e0e1749204543e720cc6e53a9e501fee8c58","author":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"date":"2019-06-25 04:58:13.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"47fe2e67b1bffd8a02625c5ac1e56a39b0d39c82","author":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"date":"2019-06-25 05:00:21.000000000","message":"Patch Set 1:\n\nNot adding unit test cases for this patch as I want to know the approach first. Kindly review the patch and suggest needfulls.","accounts_in_message":[],"_revision_number":1},{"id":"68daa3cd8084bc2077a051361f56179ed707dc0f","author":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"date":"2019-06-25 05:38:25.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"ea1746bbe1b7eef179d798f1c685366053831231","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-06-25 08:59:20.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstackclient-check-plugins http://logs.openstack.org/64/667264/2/check/openstackclient-check-plugins/f7168b4/ : SUCCESS in 4m 03s (non-voting)\n- osc-tox-py27-tips http://logs.openstack.org/64/667264/2/check/osc-tox-py27-tips/01d3ee1/ : FAILURE in 4m 04s\n- osc-tox-py36-tips http://logs.openstack.org/64/667264/2/check/osc-tox-py36-tips/4661605/ : FAILURE in 4m 47s\n- openstack-tox-cover http://logs.openstack.org/64/667264/2/check/openstack-tox-cover/9cd4341/ : FAILURE in 3m 07s\n- openstack-tox-lower-constraints http://logs.openstack.org/64/667264/2/check/openstack-tox-lower-constraints/32af3af/ : FAILURE in 4m 05s\n- openstack-tox-pep8 http://logs.openstack.org/64/667264/2/check/openstack-tox-pep8/77287e5/ : SUCCESS in 3m 18s\n- openstack-tox-py27 http://logs.openstack.org/64/667264/2/check/openstack-tox-py27/a064345/ : FAILURE in 3m 39s\n- openstack-tox-py36 http://logs.openstack.org/64/667264/2/check/openstack-tox-py36/70a6791/ : FAILURE in 3m 07s\n- openstack-tox-py37 http://logs.openstack.org/64/667264/2/check/openstack-tox-py37/0642c09/ : FAILURE in 3m 52s\n- openstack-tox-docs http://logs.openstack.org/64/667264/2/check/openstack-tox-docs/2248bf0/html/ : SUCCESS in 4m 35s\n- tempest-full http://logs.openstack.org/64/667264/2/check/tempest-full/4a197f3/ : SUCCESS in 1h 48m 45s\n- tempest-full-py3 http://logs.openstack.org/64/667264/2/check/tempest-full-py3/5471203/ : SUCCESS in 1h 36m 22s\n- osc-functional-devstack http://logs.openstack.org/64/667264/2/check/osc-functional-devstack/7806e2f/ : SUCCESS in 56m 01s\n- osc-functional-devstack-tips http://logs.openstack.org/64/667264/2/check/osc-functional-devstack-tips/bf78228/ : SUCCESS in 59m 43s","accounts_in_message":[],"_revision_number":2},{"id":"c7c6bb692949a80cd64fca2aa52bc9c0730a0d67","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2019-06-25 13:31:39.000000000","message":"Patch Set 2: Code-Review-1\n\n(9 comments)","accounts_in_message":[],"_revision_number":2},{"id":"42e2b11bcd1261bac5295827f71cc485141e3cac","author":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"date":"2019-06-26 10:56:03.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"6f1a569ad4bd7addb6abfdb8c19bb89ea84320c6","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-06-26 13:28:17.000000000","message":"Patch Set 2: Code-Review-1\n\nSeems this could be simpler without changing the positional args to options. The command today is relying on updating the service and uniquely identifying it using the host and binary (service arg in this case).\n\nWe can check if the user is using --os-compute-api-version \u003e\u003d 2.53 and if so, list the services and filter on host and binary which should return 0 or 1 results:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003d#list-compute-services\n\nFrom that, if we get nothing back, it\u0027s an error because the service was not found. If we get 1 back then we get the service[\u0027id\u0027] from that which is a uuid starting in 2.53.\n\nYou then use that service[\u0027id\u0027] and call this API starting with 2.53 to update the service record:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003d#update-compute-service\n\nIt\u0027s a bit more inefficient than the user just providing the service ID but it is still user-friendly in that all they have to specify is the host and binary (e.g. nova-compute) and don\u0027t have to worry about the service id being an integer or uuid.","accounts_in_message":[],"_revision_number":2},{"id":"28165548345f138e728b63a5af9fcdc816d92c38","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-06-26 13:37:24.000000000","message":"Patch Set 2:\n\nLooks like python-novaclient should have the API bindings you need:\n\nhttps://github.com/openstack/python-novaclient/blob/14.1.0/novaclient/v2/services.py#L38\n\nhttps://github.com/openstack/python-novaclient/blob/14.1.0/novaclient/v2/services.py#L80\n\nhttps://github.com/openstack/python-novaclient/blob/14.1.0/novaclient/v2/services.py#L95\n\nhttps://github.com/openstack/python-novaclient/blob/14.1.0/novaclient/v2/services.py#L110\n\nhttps://github.com/openstack/python-novaclient/blob/14.1.0/novaclient/v2/services.py#L139\n\nThe separate API methods for each operation is inefficient since we can do those all in the same API call starting with 2.53:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003d#update-compute-service\n\nBut that could be a later optimization since OSC is already making separate calls.","accounts_in_message":[],"_revision_number":2},{"id":"6f022e951df7f720800b50113992b4679f026edd","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-06-26 13:39:26.000000000","message":"Patch Set 2:\n\n(4 comments)","accounts_in_message":[],"_revision_number":2},{"id":"535e79c172fd594a43c31cb9d3063d02db912e8f","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-06-26 13:40:40.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"f429aa4abba5ce0e07fd993bbfcef9f0c2a0963f","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-07-24 15:55:35.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nSince this seems effectively abandoned I\u0027m going to tinker with fixing this in stages as noted inline.","accounts_in_message":[],"_revision_number":2},{"id":"907141912fbe504a1c7ef0413d3517c8f331f8a6","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-07-24 16:04:01.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"e34700e63919a1a17297fa07dd9448c802a1f09e","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-07-24 18:46:56.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"9f7d5a71104beb164a8dff718a3e8cff2220a458","author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"date":"2019-08-01 16:56:23.000000000","message":"Abandoned\n\nAbandoned in favor of https://review.opendev.org/#/c/672577/","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"7c847ae6d9d43af4eb17b7ff1b048f3f04573d2a","revisions":{"b387d96ba926f99ff12802df3224e279a3e095bd":{"kind":"REWORK","_number":1,"created":"2019-06-25 04:58:13.000000000","uploader":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"ref":"refs/changes/64/667264/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/64/667264/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/1"}}},"commit":{"parents":[{"commit":"eada2db332caa3dc042650437a1536e589505c2b","subject":"Merge \"Use cliff formattable columns in identity commands\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/eada2db332caa3dc042650437a1536e589505c2b"}]}],"author":{"name":"jayashri bidwe","email":"jayashri.bidwe@nttdata.com","date":"2019-06-11 14:16:04.000000000","tz":330},"committer":{"name":"jayashri bidwe","email":"jayashri.bidwe@nttdata.com","date":"2019-06-25 04:52:23.000000000","tz":330},"subject":"Compute \u0027force_service_down\u0027 API returns 400 with latest version","message":"Compute \u0027force_service_down\u0027 API returns 400 with latest version\n\nPresently, you can update service state/status if the\n--os-compute-api-version is \u003c\u003d 2.52 but if --os-compute-api-version\nis \u003e\u003d2.53, then it returns an error.\n\n $openstack --os-compute-api-version 2.53 compute service set\n \u003cservice_id\u003e  --up\n\n Output:\n openstack compute service set: error: too few arguments\n\nThis patch fixes this issue by checking os-compute-api-version by\nallowing to use service-id if os-compute-api-version is \u003e\u003d2.53.\n\nCloses-Bug: #1821584\n\nChange-Id: Id37f86ce5a2142737e7280fcb8335449621fdd2f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/b387d96ba926f99ff12802df3224e279a3e095bd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/b387d96ba926f99ff12802df3224e279a3e095bd"}]},"branch":"refs/heads/master"},"7c847ae6d9d43af4eb17b7ff1b048f3f04573d2a":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2019-06-25 05:38:25.000000000","uploader":{"_account_id":29238,"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","username":"jayashrib"},"ref":"refs/changes/64/667264/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-openstackclient","ref":"refs/changes/64/667264/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-openstackclient refs/changes/64/667264/2"}}},"commit":{"parents":[{"commit":"eada2db332caa3dc042650437a1536e589505c2b","subject":"Merge \"Use cliff formattable columns in identity commands\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/eada2db332caa3dc042650437a1536e589505c2b"}]}],"author":{"name":"jayashri bidwe","email":"jayashri.bidwe@nttdata.com","date":"2019-06-11 14:16:04.000000000","tz":330},"committer":{"name":"jayashri bidwe","email":"Jayashri.Bidwe@nttdata.com","date":"2019-06-25 05:37:42.000000000","tz":0},"subject":"WIP - Compute \u0027force_service_down\u0027 API returns 400 with latest version","message":"WIP - Compute \u0027force_service_down\u0027 API returns 400 with latest version\n\nPresently, you can update service state/status if the\n--os-compute-api-version is \u003c\u003d 2.52 but if --os-compute-api-version\nis \u003e\u003d2.53, then it returns an error.\n\n $openstack --os-compute-api-version 2.53 compute service set\n \u003cservice_id\u003e  --up\n\n Output:\n openstack compute service set: error: too few arguments\n\nThis patch fixes this issue by checking os-compute-api-version by\nallowing to use service-id if os-compute-api-version is \u003e\u003d2.53.\n\nCloses-Bug: #1821584\n\nChange-Id: Id37f86ce5a2142737e7280fcb8335449621fdd2f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/7c847ae6d9d43af4eb17b7ff1b048f3f04573d2a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-openstackclient/commit/7c847ae6d9d43af4eb17b7ff1b048f3f04573d2a"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
