)]}'
{"id":"openstack%2Fhorizon~670513","triplet_id":"openstack%2Fhorizon~master~I35f63c4d6f970260b2d6737f5028780d5937df58","project":"openstack/horizon","branch":"master","topic":"bp/ng-projects","hashtags":[],"change_id":"I35f63c4d6f970260b2d6737f5028780d5937df58","subject":"Extends REST API for keystone.","status":"NEW","created":"2019-07-12 12:16:20.000000000","updated":"2021-02-18 09:38:29.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"da040c64038b481bcc3d2d62c33122e08bd14c32","_number":670513,"virtual_id_number":670513,"owner":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":1,"date":"2019-07-25 15:03:29.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"date":"2019-07-25 14:00:30.000000000","_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},{"date":"2019-07-15 10:40:14.000000000","_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"}],"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":{"all":[{"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":-1,"max":1},"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"}],"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":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"}],"values":{"-1":"Release Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-07-13 12:25:36.000000000","updated_by":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"reviewer":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"state":"REVIEWER"},{"updated":"2019-07-25 14:00:30.000000000","updated_by":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"reviewer":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"state":"REVIEWER"},{"updated":"2019-07-25 15:03:29.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":"2021-02-18 09:38:29.000000000","updated_by":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"reviewer":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"state":"REMOVED"}],"messages":[{"id":"151eefd4ef6164a8bed889a1a9cd16c36cb641b1","author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"date":"2019-07-12 12:16:20.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"cd1bd05314e205a7b8d2ce65225692dd7cc011ff","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-12 13:22:02.000000000","message":"Patch Set 1: 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- nodejs10-npm-run-lint http://logs.openstack.org/13/670513/1/check/nodejs10-npm-run-lint/0a39bcd/ : FAILURE in 5m 40s\n- nodejs10-npm-run-test http://logs.openstack.org/13/670513/1/check/nodejs10-npm-run-test/8b8e704/ : SUCCESS in 8m 49s\n- openstack-tox-lower-constraints http://logs.openstack.org/13/670513/1/check/openstack-tox-lower-constraints/2ca3a6c/ : SUCCESS in 10m 22s\n- openstack-tox-pep8 http://logs.openstack.org/13/670513/1/check/openstack-tox-pep8/7c83ea2/ : SUCCESS in 6m 05s\n- openstack-tox-py27 http://logs.openstack.org/13/670513/1/check/openstack-tox-py27/7f2905a/ : SUCCESS in 9m 04s\n- openstack-tox-py36 http://logs.openstack.org/13/670513/1/check/openstack-tox-py36/a6357fb/ : SUCCESS in 11m 12s\n- openstack-tox-py37 http://logs.openstack.org/13/670513/1/check/openstack-tox-py37/618ed07/ : SUCCESS in 8m 35s\n- openstack-tox-docs http://logs.openstack.org/13/670513/1/check/openstack-tox-docs/1def004/html/ : SUCCESS in 3m 37s\n- horizon-openstack-tox-python3-django111 http://logs.openstack.org/13/670513/1/check/horizon-openstack-tox-python3-django111/6d87947/ : SUCCESS in 10m 13s\n- horizon-selenium-headless http://logs.openstack.org/13/670513/1/check/horizon-selenium-headless/937abab/ : SUCCESS in 8m 13s\n- horizon-integration-tests http://logs.openstack.org/13/670513/1/check/horizon-integration-tests/d8f3a29/ : SUCCESS in 57m 01s\n- horizon-dsvm-tempest-plugin http://logs.openstack.org/13/670513/1/check/horizon-dsvm-tempest-plugin/c64729a/ : SUCCESS in 36m 17s\n- horizon-dsvm-tempest-plugin-py27 http://logs.openstack.org/13/670513/1/check/horizon-dsvm-tempest-plugin-py27/8d87a55/ : SUCCESS in 35m 27s\n- horizon-tox-bandit-baseline http://logs.openstack.org/13/670513/1/check/horizon-tox-bandit-baseline/e3c71bb/ : SUCCESS in 4m 54s","accounts_in_message":[],"_revision_number":1},{"id":"a8bc20ce6ab776c06a789cab19d978e9d5bc7d18","author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"date":"2019-07-12 13:51:05.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"0d2d948fc090435b40fae54f2e33599374662a50","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-12 14:59:13.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- nodejs10-npm-run-lint http://logs.openstack.org/13/670513/2/check/nodejs10-npm-run-lint/9791e57/ : FAILURE in 4m 19s\n- nodejs10-npm-run-test http://logs.openstack.org/13/670513/2/check/nodejs10-npm-run-test/5b8313c/ : FAILURE in 10m 33s\n- openstack-tox-lower-constraints http://logs.openstack.org/13/670513/2/check/openstack-tox-lower-constraints/5f072c1/ : SUCCESS in 9m 55s\n- openstack-tox-pep8 http://logs.openstack.org/13/670513/2/check/openstack-tox-pep8/eb8f40a/ : SUCCESS in 6m 09s\n- openstack-tox-py27 http://logs.openstack.org/13/670513/2/check/openstack-tox-py27/381d7e8/ : SUCCESS in 11m 26s\n- openstack-tox-py36 http://logs.openstack.org/13/670513/2/check/openstack-tox-py36/c19b04c/ : SUCCESS in 8m 59s\n- openstack-tox-py37 http://logs.openstack.org/13/670513/2/check/openstack-tox-py37/e234a2d/ : SUCCESS in 8m 38s\n- openstack-tox-docs http://logs.openstack.org/13/670513/2/check/openstack-tox-docs/e85751e/html/ : SUCCESS in 3m 30s\n- horizon-openstack-tox-python3-django111 http://logs.openstack.org/13/670513/2/check/horizon-openstack-tox-python3-django111/ae3919e/ : SUCCESS in 9m 22s\n- horizon-selenium-headless http://logs.openstack.org/13/670513/2/check/horizon-selenium-headless/0ad0aa5/ : SUCCESS in 7m 36s\n- horizon-integration-tests http://logs.openstack.org/13/670513/2/check/horizon-integration-tests/0ec9e67/ : SUCCESS in 58m 54s\n- horizon-dsvm-tempest-plugin http://logs.openstack.org/13/670513/2/check/horizon-dsvm-tempest-plugin/71fd775/ : SUCCESS in 41m 06s\n- horizon-dsvm-tempest-plugin-py27 http://logs.openstack.org/13/670513/2/check/horizon-dsvm-tempest-plugin-py27/20f3055/ : SUCCESS in 36m 06s\n- horizon-tox-bandit-baseline http://logs.openstack.org/13/670513/2/check/horizon-tox-bandit-baseline/6dd6f4f/ : SUCCESS in 6m 29s","accounts_in_message":[],"_revision_number":2},{"id":"1118287713b9f78536ff5d601748dfa08a13eebe","author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"date":"2019-07-13 12:25:36.000000000","message":"Patch Set 2:\n\nBefore looking at the detail, let me make several general comments.\n\n- Can we assign you to the assignee of the blueprint?\n- AngularJS migration is not a project priority now. The priority is just best-effort.\n\nThe following things need to be considered when implementing the blueprint (as mentioned in the blueprint whiteboard):\n\n- Django python feature should be kept as default until Angular implementation provides full compatibility.\n- The quota management form in the project panel is pluggable for horizon plugin. horizon plugins are allowed to add their own quota form as \"tab\". For example, manila-ui leverages this. This is a tricky part and I am not sure how we can achieve the compatibility on this, but it should be considered in the AngularJS implementation.","accounts_in_message":[],"_revision_number":2},{"id":"e9c8724351c55e94b9734b6f059be76fe49be7ba","author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"date":"2019-07-15 06:14:17.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"f31785f0cf7e65c70b6f1d06c22a3e8e32783a4c","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-15 08:24:25.000000000","message":"Patch Set 3: 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- nodejs10-npm-run-lint http://logs.openstack.org/13/670513/3/check/nodejs10-npm-run-lint/fedc4fb/ : SUCCESS in 5m 41s\n- nodejs10-npm-run-test http://logs.openstack.org/13/670513/3/check/nodejs10-npm-run-test/b0c063d/ : SUCCESS in 6m 31s\n- openstack-tox-lower-constraints http://logs.openstack.org/13/670513/3/check/openstack-tox-lower-constraints/2d2fa87/ : SUCCESS in 10m 18s\n- openstack-tox-pep8 http://logs.openstack.org/13/670513/3/check/openstack-tox-pep8/0526d37/ : SUCCESS in 6m 00s\n- openstack-tox-py27 http://logs.openstack.org/13/670513/3/check/openstack-tox-py27/05548db/ : SUCCESS in 9m 53s\n- openstack-tox-py36 http://logs.openstack.org/13/670513/3/check/openstack-tox-py36/5836d41/ : SUCCESS in 10m 51s\n- openstack-tox-py37 http://logs.openstack.org/13/670513/3/check/openstack-tox-py37/6aac1b0/ : SUCCESS in 9m 47s\n- openstack-tox-docs http://logs.openstack.org/13/670513/3/check/openstack-tox-docs/5923bdb/html/ : SUCCESS in 4m 10s\n- horizon-openstack-tox-python3-django111 http://logs.openstack.org/13/670513/3/check/horizon-openstack-tox-python3-django111/b6dc7ed/ : SUCCESS in 11m 57s\n- horizon-selenium-headless http://logs.openstack.org/13/670513/3/check/horizon-selenium-headless/46ac67f/ : SUCCESS in 6m 19s\n- horizon-integration-tests http://logs.openstack.org/13/670513/3/check/horizon-integration-tests/47e64ad/ : FAILURE in 1h 35m 23s\n- horizon-dsvm-tempest-plugin http://logs.openstack.org/13/670513/3/check/horizon-dsvm-tempest-plugin/819bf78/ : SUCCESS in 37m 11s\n- horizon-dsvm-tempest-plugin-py27 http://logs.openstack.org/13/670513/3/check/horizon-dsvm-tempest-plugin-py27/763fe75/ : SUCCESS in 33m 37s\n- horizon-tox-bandit-baseline http://logs.openstack.org/13/670513/3/check/horizon-tox-bandit-baseline/90cb62d/ : SUCCESS in 5m 42s","accounts_in_message":[],"_revision_number":3},{"id":"5a962948ed6e89dfad6a41e531b70b2c7c1c2012","author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"date":"2019-07-15 10:40:14.000000000","message":"Patch Set 3:\n\nHi, thanks for the feedback.\n\n \u003e - Can we assign you to the assignee of the blueprint?\nYep.\n\n \u003e - AngularJS migration is not a project priority now. The priority\n \u003e is just best-effort.\n I\u0027m aware. I have to make related modifications to the UI however, and I figured this would be the most systematic way of doing it while improving upstream.\n\n \u003e The following things need to be considered when implementing the\n \u003e blueprint (as mentioned in the blueprint whiteboard):\n \u003e \n \u003e - Django python feature should be kept as default until Angular\n \u003e implementation provides full compatibility.\nHow do you mean? Angular features can be turned off and on in settings; they are off by default and the ng-projects implementation should/would/will be the same.\n\n \u003e - The quota management form in the project panel is pluggable for\n \u003e horizon plugin. horizon plugins are allowed to add their own quota\n \u003e form as \"tab\". For example, manila-ui leverages this. This is a\n \u003e tricky part and I am not sure how we can achieve the compatibility\n \u003e on this, but it should be considered in the AngularJS\n \u003e implementation.\nThat depends on what we want to do. A pluggable ng form shouldn\u0027t be too difficult to implement. Plugins would have to be updated to make use of the new\nmechanism however. I\u0027m not sure trying to bridge the different implementations is a good idea - getting django based forms to render with angular forms\nwould most likely be (if at all possible) non-trivial and ugly.","accounts_in_message":[],"_revision_number":3},{"id":"7340892f510fe2c44cd7425081a852c79055d875","author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"date":"2019-07-25 14:00:30.000000000","message":"Patch Set 3:\n\nrecheck","accounts_in_message":[],"_revision_number":3},{"id":"8a1c64953ee59280089dac0db0b5933615321ebc","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-07-25 15:03:29.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- nodejs10-npm-run-lint http://logs.openstack.org/13/670513/3/check/nodejs10-npm-run-lint/70aa8b6/ : SUCCESS in 5m 08s\n- nodejs10-npm-run-test http://logs.openstack.org/13/670513/3/check/nodejs10-npm-run-test/ef0d41f/ : SUCCESS in 8m 12s\n- openstack-tox-lower-constraints http://logs.openstack.org/13/670513/3/check/openstack-tox-lower-constraints/e6cd1ee/ : SUCCESS in 13m 24s\n- openstack-tox-pep8 http://logs.openstack.org/13/670513/3/check/openstack-tox-pep8/bf65f3b/ : SUCCESS in 7m 55s\n- openstack-tox-py27 http://logs.openstack.org/13/670513/3/check/openstack-tox-py27/f952183/ : SUCCESS in 13m 35s\n- openstack-tox-py36 http://logs.openstack.org/13/670513/3/check/openstack-tox-py36/33236c9/ : SUCCESS in 10m 44s\n- openstack-tox-py37 http://logs.openstack.org/13/670513/3/check/openstack-tox-py37/2d0d12a/ : SUCCESS in 10m 09s\n- openstack-tox-docs http://logs.openstack.org/13/670513/3/check/openstack-tox-docs/57d7405/html/ : SUCCESS in 4m 53s\n- horizon-openstack-tox-python3-django111 http://logs.openstack.org/13/670513/3/check/horizon-openstack-tox-python3-django111/1c818a0/ : SUCCESS in 8m 45s\n- horizon-selenium-headless http://logs.openstack.org/13/670513/3/check/horizon-selenium-headless/1a28df5/ : SUCCESS in 8m 10s\n- horizon-integration-tests http://logs.openstack.org/13/670513/3/check/horizon-integration-tests/e7ea216/ : SUCCESS in 57m 38s\n- horizon-dsvm-tempest-plugin http://logs.openstack.org/13/670513/3/check/horizon-dsvm-tempest-plugin/60a5d7a/ : SUCCESS in 40m 52s\n- horizon-dsvm-tempest-plugin-py27 http://logs.openstack.org/13/670513/3/check/horizon-dsvm-tempest-plugin-py27/4ee7d1d/ : SUCCESS in 41m 46s\n- horizon-tox-bandit-baseline http://logs.openstack.org/13/670513/3/check/horizon-tox-bandit-baseline/32a6c9b/ : SUCCESS in 4m 52s","accounts_in_message":[],"_revision_number":3},{"id":"da040c64038b481bcc3d2d62c33122e08bd14c32","tag":"autogenerated:gerrit:deleteReviewer","author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"date":"2021-02-18 09:38:29.000000000","message":"Removed reviewer Akihiro Motoki.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"ef070c150a34f86cb44e2b2220b260775a3e2847","revisions":{"63f9d42859c07f67788063564b6181fcf9eade04":{"kind":"REWORK","_number":1,"created":"2019-07-12 12:16:20.000000000","uploader":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"ref":"refs/changes/13/670513/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/13/670513/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/13/670513/1"}}},"commit":{"parents":[{"commit":"350efbe4f20f9aee13ac52eaaa50c490cd8afa97","subject":"Merge \"Add the unit test for keypairs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/350efbe4f20f9aee13ac52eaaa50c490cd8afa97"}]}],"author":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-02 11:35:38.000000000","tz":120},"committer":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-12 11:42:32.000000000","tz":120},"subject":"Extends REST API for keystone.","message":"Extends REST API for keystone.\n\nThis patch extends existing REST APIs in preparation for angularization\nof the identiy/projects panel.\n\n* An endpoint (with url params) has been added for raw Role Assignments\n  for optimized access when building forms\n* Created a new REST API class for Project Quota Set access\n* Moved EditableQuotaSets endpoint to the new class from nova\n* All new and moved endpoints have been covered with tests\n* Javascript services which consume these endpoints have been covered\n  with jasmine tests\n\nAdditionally, some related functionality had missing or broken tests,\nwhich were added/fixed while working on the main functionality.\n\nChange-Id: I35f63c4d6f970260b2d6737f5028780d5937df58\nImplements: blueprint ng-projects\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/63f9d42859c07f67788063564b6181fcf9eade04"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/63f9d42859c07f67788063564b6181fcf9eade04"}]},"branch":"refs/heads/master"},"cb7f3e7fbd36fe6d8ba754da3c0ded62d1d08116":{"kind":"REWORK","_number":2,"created":"2019-07-12 13:51:05.000000000","uploader":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"ref":"refs/changes/13/670513/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/13/670513/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/13/670513/2"}}},"commit":{"parents":[{"commit":"350efbe4f20f9aee13ac52eaaa50c490cd8afa97","subject":"Merge \"Add the unit test for keypairs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/350efbe4f20f9aee13ac52eaaa50c490cd8afa97"}]}],"author":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-02 11:35:38.000000000","tz":120},"committer":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-12 13:50:14.000000000","tz":120},"subject":"Extends REST API for keystone.","message":"Extends REST API for keystone.\n\nThis patch extends existing REST APIs in preparation for angularization\nof the identiy/projects panel.\n\n* An endpoint (with url params) has been added for raw Role Assignments\n  for optimized access when building forms\n* Created a new REST API class for Project Quota Set access\n* Moved EditableQuotaSets endpoint to the new class from nova\n* All new and moved endpoints have been covered with tests\n* Javascript services which consume these endpoints have been covered\n  with jasmine tests\n\nAdditionally, some related functionality had missing or broken tests,\nwhich were added/fixed while working on the main functionality.\n\nChange-Id: I35f63c4d6f970260b2d6737f5028780d5937df58\nImplements: blueprint ng-projects\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/cb7f3e7fbd36fe6d8ba754da3c0ded62d1d08116"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/cb7f3e7fbd36fe6d8ba754da3c0ded62d1d08116"}]},"branch":"refs/heads/master"},"ef070c150a34f86cb44e2b2220b260775a3e2847":{"kind":"REWORK","_number":3,"created":"2019-07-15 06:14:17.000000000","uploader":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"ref":"refs/changes/13/670513/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/horizon","ref":"refs/changes/13/670513/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/horizon refs/changes/13/670513/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/horizon refs/changes/13/670513/3"}}},"commit":{"parents":[{"commit":"350efbe4f20f9aee13ac52eaaa50c490cd8afa97","subject":"Merge \"Add the unit test for keypairs\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/350efbe4f20f9aee13ac52eaaa50c490cd8afa97"}]}],"author":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-02 11:35:38.000000000","tz":120},"committer":{"name":"Marek","email":"marek.lycka@ultimum.io","date":"2019-07-15 06:13:10.000000000","tz":120},"subject":"Extends REST API for keystone.","message":"Extends REST API for keystone.\n\nThis patch extends existing REST APIs in preparation for angularization\nof the identiy/projects panel.\n\n* An endpoint (with url params) has been added for raw Role Assignments\n  for optimized access when building forms\n* Created a new REST API class for Project Quota Set access\n* Moved EditableQuotaSets endpoint to the new class from nova\n* All new and moved endpoints have been covered with tests\n* Javascript services which consume these endpoints have been covered\n  with jasmine tests\n\nAdditionally, some related functionality had missing or broken tests,\nwhich were added/fixed while working on the main functionality.\n\nChange-Id: I35f63c4d6f970260b2d6737f5028780d5937df58\nImplements: blueprint ng-projects\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/ef070c150a34f86cb44e2b2220b260775a3e2847"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/horizon/commit/ef070c150a34f86cb44e2b2220b260775a3e2847"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
