)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"d84e68788b5226fc047918de584c9b76b762f6c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5cea3fbb_65d5c4cc","updated":"2021-12-20 23:41:17.000000000","message":"This needs a releasenote, and maybe additional docs if there are lots of examples given in the docs already. If not, docs are probably fine as-is.\n\nI imagine this change will be adjusted in the future with third party plugins as well?","commit_id":"7997cc0e91f440cbe90c382ac3b95567281722ff"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"d21cb01783971ae564f1737165003e532478c960","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b8cc83cd_840473b5","in_reply_to":"5cea3fbb_65d5c4cc","updated":"2021-12-21 17:33:28.000000000","message":"Added release. Will add docs to blazar change.\n\nThere will be a separate change with third party plugin commands, including resource property commands.","commit_id":"7997cc0e91f440cbe90c382ac3b95567281722ff"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"ba3e77f2027e3df7f28f0a4fc9465a6161f21d4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9da8ffbd_8f213181","updated":"2022-01-13 15:57:57.000000000","message":"Thanks, this works well.\n\nTwo main comments:\n\n1) the mixed property / capability naming is really confusing for the user. I propose we change all references so say \"property / properties\".\n\n2) `blazar host-capability-list` / `openstack reservation host capability list` should provide a --all argument which allows admins to list all properties regardless of their public/private status. This would be like in `openstack flavor list`:\n\n--all                 List all flavors, whether public or private","commit_id":"f043678f00583ba3fdeb710a2a608ed1ca7caef2"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"42385e8f_042d3a17","updated":"2022-02-21 22:19:00.000000000","message":"Thanks, just small changes needed. Could you update before end of this week?","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"be6782067b4863cd15d0d426831df524be78e0d5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6fee2dab_15dd5810","updated":"2022-02-23 21:33:24.000000000","message":"There is an issue with the host property show command. It joins property values with a new line even when using json output:\n\n$ openstack reservation host property show foo -f json 2\u003e/dev/null\n{\n  \"private\": false,\n  \"property\": \"foo\",\n  \"property_values\": \"bar\\nbuzz\"\n}\n\nHowever the `list --detail` command works as expected:\n\n$ openstack reservation host property list --detail -f json 2\u003e/dev/null\n[\n  {\n    \"property\": \"foo\",\n    \"private\": false,\n    \"property_values\": [\n      \"bar\",\n      \"buzz\"\n    ]\n  }\n]\n","commit_id":"6094c52812f2e2070c71292951786ae8ebe26a5a"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"de71f2edacb26a04349dac643e41f7602f144f5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3c4aac3a_748cc448","in_reply_to":"6fee2dab_15dd5810","updated":"2022-02-23 21:49:15.000000000","message":"I updated with a fix taken from neutronclient: https://opendev.org/openstack/python-neutronclient/src/tag/7.8.0/neutronclient/neutron/v2_0/__init__.py#L415-L416","commit_id":"6094c52812f2e2070c71292951786ae8ebe26a5a"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"53a7286664217e7aa87a07d1a9c167c478973bcf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"469c8e52_fbfc5597","updated":"2022-02-23 23:37:32.000000000","message":"Thank you!","commit_id":"cf2de7cb63f190b2483e4b0ec398ba7d0d84afba"}],"blazarclient/command.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":true,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"class ShowPropertyCommand(BlazarCommand, show.ShowOne):"},{"line_number":313,"context_line":"    \"\"\"Show information of a given resource.\"\"\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    api \u003d \u0027reservation\u0027"},{"line_number":316,"context_line":"    resource \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"f7dcf4c4_7b07b0e0","line":313,"range":{"start_line":313,"start_character":35,"end_line":313,"end_character":43},"updated":"2022-02-21 22:19:00.000000000","message":"Shouldn\u0027t this say property?","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"1125723657f91dd660026c5f448bde870b68df6c","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"class ShowPropertyCommand(BlazarCommand, show.ShowOne):"},{"line_number":313,"context_line":"    \"\"\"Show information of a given resource.\"\"\""},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    api \u003d \u0027reservation\u0027"},{"line_number":316,"context_line":"    resource \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9c6d7f_8d5d3ab8","line":313,"range":{"start_line":313,"start_character":35,"end_line":313,"end_character":43},"in_reply_to":"f7dcf4c4_7b07b0e0","updated":"2022-02-23 15:37:51.000000000","message":"Done","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":true,"context_lines":[{"line_number":319,"context_line":"    def get_parser(self, prog_name):"},{"line_number":320,"context_line":"        parser \u003d super(ShowPropertyCommand, self).get_parser(prog_name)"},{"line_number":321,"context_line":"        parser.add_argument(\u0027property_name\u0027, metavar\u003d\u0027PROPERTY_NAME\u0027,"},{"line_number":322,"context_line":"                            help\u003d\u0027Name of extra capablity.\u0027)"},{"line_number":323,"context_line":"        return parser"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_data(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ce18eddc_87486774","line":322,"range":{"start_line":322,"start_character":42,"end_line":322,"end_character":57},"updated":"2022-02-21 22:19:00.000000000","message":"Update terminology","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"1125723657f91dd660026c5f448bde870b68df6c","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    def get_parser(self, prog_name):"},{"line_number":320,"context_line":"        parser \u003d super(ShowPropertyCommand, self).get_parser(prog_name)"},{"line_number":321,"context_line":"        parser.add_argument(\u0027property_name\u0027, metavar\u003d\u0027PROPERTY_NAME\u0027,"},{"line_number":322,"context_line":"                            help\u003d\u0027Name of extra capablity.\u0027)"},{"line_number":323,"context_line":"        return parser"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def get_data(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"b93c84aa_4668bdcd","line":322,"range":{"start_line":322,"start_character":42,"end_line":322,"end_character":57},"in_reply_to":"ce18eddc_87486774","updated":"2022-02-23 15:37:51.000000000","message":"Done","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        resource_manager \u003d getattr(blazar_client, self.resource)"},{"line_number":344,"context_line":"        resource_manager.set_property(**body)"},{"line_number":345,"context_line":"        print("},{"line_number":346,"context_line":"            \u0027Updated %s extra property: %s\u0027 % ("},{"line_number":347,"context_line":"                self.resource, parsed_args.property_name),"},{"line_number":348,"context_line":"            file\u003dself.app.stdout)"},{"line_number":349,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":6,"id":"cce44098_3876cc40","line":346,"range":{"start_line":346,"start_character":24,"end_line":346,"end_character":38},"updated":"2022-02-21 22:19:00.000000000","message":"Didn\u0027t we settle on just \"property\"?","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"1125723657f91dd660026c5f448bde870b68df6c","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        resource_manager \u003d getattr(blazar_client, self.resource)"},{"line_number":344,"context_line":"        resource_manager.set_property(**body)"},{"line_number":345,"context_line":"        print("},{"line_number":346,"context_line":"            \u0027Updated %s extra property: %s\u0027 % ("},{"line_number":347,"context_line":"                self.resource, parsed_args.property_name),"},{"line_number":348,"context_line":"            file\u003dself.app.stdout)"},{"line_number":349,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":6,"id":"c4bd4b02_b3a0522b","line":346,"range":{"start_line":346,"start_character":24,"end_line":346,"end_character":38},"in_reply_to":"cce44098_3876cc40","updated":"2022-02-23 15:37:51.000000000","message":"Done","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        parser \u003d super(UpdatePropertyCommand, self).get_parser(prog_name)"},{"line_number":353,"context_line":"        parser.add_argument("},{"line_number":354,"context_line":"            \u0027property_name\u0027, metavar\u003d\u0027PROPERTY_NAME\u0027,"},{"line_number":355,"context_line":"            help\u003d\u0027Name of extra property to patch.\u0027"},{"line_number":356,"context_line":"        )"},{"line_number":357,"context_line":"        parser.add_argument("},{"line_number":358,"context_line":"            \u0027--private\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"05c4e81d_4e5df979","line":355,"range":{"start_line":355,"start_character":26,"end_line":355,"end_character":41},"updated":"2022-02-21 22:19:00.000000000","message":"Ditto","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"1125723657f91dd660026c5f448bde870b68df6c","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        parser \u003d super(UpdatePropertyCommand, self).get_parser(prog_name)"},{"line_number":353,"context_line":"        parser.add_argument("},{"line_number":354,"context_line":"            \u0027property_name\u0027, metavar\u003d\u0027PROPERTY_NAME\u0027,"},{"line_number":355,"context_line":"            help\u003d\u0027Name of extra property to patch.\u0027"},{"line_number":356,"context_line":"        )"},{"line_number":357,"context_line":"        parser.add_argument("},{"line_number":358,"context_line":"            \u0027--private\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1844de7a_4aedffda","line":355,"range":{"start_line":355,"start_character":26,"end_line":355,"end_character":41},"in_reply_to":"05c4e81d_4e5df979","updated":"2022-02-23 15:37:51.000000000","message":"Done","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"}],"blazarclient/v1/hosts.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"9208bfef37f5e7411085516d2435bbb7950b7c03","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        if all:"},{"line_number":64,"context_line":"            query +\u003d \u0027all\u003dTrue\u0026\u0027"},{"line_number":65,"context_line":"        if query:"},{"line_number":66,"context_line":"            url +\u003d f\"?{query}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        resp, body \u003d self.request_manager.get(url)"},{"line_number":69,"context_line":"        resource_properties \u003d body[\u0027resource_properties\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"e3d31808_0ef144e0","line":66,"updated":"2022-02-04 15:47:47.000000000","message":"query will always end with a \"\u0026\", which I think is valid. Another way of doing this:\n\n  query_parts \u003d []\n  if detail:\n    query_parts.append(\"detail\u003dTrue\")\n  if all:\n    query_parts.append(\"all\u003dTrue\")\n  if query_parts:\n    url +\u003d \"?\" + \"\u0026\".join(query_parts)","commit_id":"b96f3f88bfb4884ca5bfbc63ae5f54eb4cffcc82"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"9262b91bc9a18054ec6b870e99b85d254a5b367a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        if all:"},{"line_number":64,"context_line":"            query +\u003d \u0027all\u003dTrue\u0026\u0027"},{"line_number":65,"context_line":"        if query:"},{"line_number":66,"context_line":"            url +\u003d f\"?{query}\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        resp, body \u003d self.request_manager.get(url)"},{"line_number":69,"context_line":"        resource_properties \u003d body[\u0027resource_properties\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"477d90ba_e39c2c99","line":66,"in_reply_to":"e3d31808_0ef144e0","updated":"2022-02-07 15:39:11.000000000","message":"Thanks, this is better. I updated the change with it.","commit_id":"b96f3f88bfb4884ca5bfbc63ae5f54eb4cffcc82"}],"releasenotes/notes/host-resource-property-9ac5c21bd3ca6699.yaml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6a10a387cb0a14e1dd20cd2e8e40cacaa81f87f0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support managing host resource properties using the following new"},{"line_number":5,"context_line":"    commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``host-property-list``"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"28204aec_bde002be","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":18},"updated":"2022-02-21 22:19:00.000000000","message":"I think you are missing \"for\" here.","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"1125723657f91dd660026c5f448bde870b68df6c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support managing host resource properties using the following new"},{"line_number":5,"context_line":"    commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``host-property-list``"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"27d4b249_1c61df90","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":18},"in_reply_to":"28204aec_bde002be","updated":"2022-02-23 15:37:51.000000000","message":"Done","commit_id":"f18f1f46e4a9e792b25b7de4db61d083f6cecc5a"}]}
