)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"07d379ea313246cd680e85d53807521068729ef2","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Mark Powers \u003cmarkpowers@uchicago.edu\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-12-08 21:42:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add resource properties discovery API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This allows users to query for resource properties of hosts,"},{"line_number":10,"context_line":"allowing them to be used in creating leases more effectively."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements blueprint resource-properties-discovery-api"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"e5aed016_3ce72eed","line":10,"range":{"start_line":7,"start_character":0,"end_line":10,"end_character":61},"updated":"2022-01-13 15:28:37.000000000","message":"The commit message should include more details the code impact of this change, for example the move of extra capabilities to another table.","commit_id":"10072b1e68327f8bb03a6064d2ea2fa91fa4ace1"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"bda96c0bf09a57380d8d2f073949332c8ad8d0b9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Mark Powers \u003cmarkpowers@uchicago.edu\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-12-08 21:42:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add resource properties discovery API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This allows users to query for resource properties of hosts,"},{"line_number":10,"context_line":"allowing them to be used in creating leases more effectively."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements blueprint resource-properties-discovery-api"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"0c31ee77_00555e4a","line":10,"range":{"start_line":7,"start_character":0,"end_line":10,"end_character":61},"in_reply_to":"e5aed016_3ce72eed","updated":"2022-01-14 16:24:20.000000000","message":"Done","commit_id":"10072b1e68327f8bb03a6064d2ea2fa91fa4ace1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3dbd5012_7f7895d8","updated":"2021-12-20 23:50:10.000000000","message":"Looking good, but please add a release note for this, it\u0027s a big change.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"ae0b0776bc259d569be27e8d767888abdea8b618","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b10b7e2d_c095897f","in_reply_to":"3dbd5012_7f7895d8","updated":"2022-01-13 14:52:39.000000000","message":"Release note still missing","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"8541f764dcd1d358c383c64c99d33bab360919ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a2872c76_c8aa801d","in_reply_to":"b10b7e2d_c095897f","updated":"2022-02-10 17:24:43.000000000","message":"Done","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"36df69f90f0732e718161cc6885c541a38188888","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9e40eb64_bc248e65","updated":"2022-01-04 21:02:41.000000000","message":"recheck","commit_id":"a55e954bd55e53d3df4d839d99c12f166faa71d9"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"07d379ea313246cd680e85d53807521068729ef2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"feeb0444_16a2a1f0","updated":"2022-01-13 15:28:37.000000000","message":"Note for the future, this would be easier if it was split into multiple patches:\n\n1) move capability names to another table\n2) add API to query and manage resource properties\n\nThis is also missing API docs.","commit_id":"10072b1e68327f8bb03a6064d2ea2fa91fa4ace1"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"90d60344c65a6ff25953fe919fb207ecd5ae5fe3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9bcf0185_016ea8b5","updated":"2022-02-21 22:13:20.000000000","message":"Nice work, thanks!","commit_id":"f5e6d2482681e2519dc831254ac34352435cbafc"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"8e491f1016062cfe7339b81b13de33b359b95a79","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0e54eea3_6ce57e91","updated":"2022-02-15 20:43:02.000000000","message":"Yes, it was the intent that private properties can be viewed by the admin user, so that\u0027s right 😊\nI can\u0027t see anything else to note... thank you!","commit_id":"f5e6d2482681e2519dc831254ac34352435cbafc"}],"blazar/api/v1/oshosts/service.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":92,"context_line":"        \"\"\"List resource properties for hosts.\"\"\""},{"line_number":93,"context_line":"        return self.manager_rpcapi.list_resource_properties(query)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @policy.authorize(\u0027oshosts\u0027, \u0027patch_resource_properties\u0027)"},{"line_number":96,"context_line":"    def update_resource_property(self, property_name, data):"},{"line_number":97,"context_line":"        \"\"\"Update a host resource property.\"\"\""},{"line_number":98,"context_line":"        return self.manager_rpcapi.update_resource_property("}],"source_content_type":"text/x-python","patch_set":3,"id":"5e7c5662_bdc67ee2","line":95,"updated":"2021-12-20 23:50:10.000000000","message":"I think `update_resource_properties` is more consistent w/ existing policies of this nature.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        \"\"\"List resource properties for hosts.\"\"\""},{"line_number":93,"context_line":"        return self.manager_rpcapi.list_resource_properties(query)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @policy.authorize(\u0027oshosts\u0027, \u0027patch_resource_properties\u0027)"},{"line_number":96,"context_line":"    def update_resource_property(self, property_name, data):"},{"line_number":97,"context_line":"        \"\"\"Update a host resource property.\"\"\""},{"line_number":98,"context_line":"        return self.manager_rpcapi.update_resource_property("}],"source_content_type":"text/x-python","patch_set":3,"id":"7282cae9_80783b7e","line":95,"in_reply_to":"5e7c5662_bdc67ee2","updated":"2021-12-21 23:03:22.000000000","message":"Done","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}],"blazar/db/migration/alembic_migrations/versions/02e2f2186d98_extra_capability.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"07d379ea313246cd680e85d53807521068729ef2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":8,"id":"33de65fd_6222ba58","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2022-01-13 15:28:37.000000000","message":"2022","commit_id":"10072b1e68327f8bb03a6064d2ea2fa91fa4ace1"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"bda96c0bf09a57380d8d2f073949332c8ad8d0b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":8,"id":"cc9f8036_7fafeb7d","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"33de65fd_6222ba58","updated":"2022-01-14 16:24:20.000000000","message":"Done","commit_id":"10072b1e68327f8bb03a6064d2ea2fa91fa4ace1"}],"blazar/db/sqlalchemy/api.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":842,"context_line":"                id\u003dhost_extra_capability_id,"},{"line_number":843,"context_line":"                model\u003d\u0027ComputeHostExtraCapability\u0027)"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"        session.delete(host_extra_capability[0])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"def host_extra_capability_get_all_per_name(host_id, capability_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9c99e624_76ee31c9","line":845,"updated":"2021-12-20 23:50:10.000000000","message":"Given that the _get function returns .first(), is it necessary to unpack the list? Does first() return a list of size 1, or a single element?","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                id\u003dhost_extra_capability_id,"},{"line_number":843,"context_line":"                model\u003d\u0027ComputeHostExtraCapability\u0027)"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":"        session.delete(host_extra_capability[0])"},{"line_number":846,"context_line":""},{"line_number":847,"context_line":""},{"line_number":848,"context_line":"def host_extra_capability_get_all_per_name(host_id, capability_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"f5f780c9_84202252","line":845,"in_reply_to":"9c99e624_76ee31c9","updated":"2021-12-21 23:03:22.000000000","message":"This is returning a tuple, and the [0] is here to unpack. This reminds me that there is still no api to delete an extra capability from a resource.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}],"blazar/db/sqlalchemy/models.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    id \u003d _id_column()"},{"line_number":271,"context_line":"    computehost_id \u003d sa.Column(sa.String(36), sa.ForeignKey(\u0027computehosts.id\u0027))"},{"line_number":272,"context_line":"    capability_id \u003d sa.Column(sa.String(255),"},{"line_number":273,"context_line":"                              sa.ForeignKey(\u0027extra_capabilities.id\u0027),"},{"line_number":274,"context_line":"                              nullable\u003dFalse)"},{"line_number":275,"context_line":"    capability_value \u003d sa.Column(MediumText(), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5d454f1a_6035ba16","line":272,"updated":"2021-12-20 23:50:10.000000000","message":"If this is a UUID, you could keep it to 36 characters, I think.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    id \u003d _id_column()"},{"line_number":271,"context_line":"    computehost_id \u003d sa.Column(sa.String(36), sa.ForeignKey(\u0027computehosts.id\u0027))"},{"line_number":272,"context_line":"    capability_id \u003d sa.Column(sa.String(255),"},{"line_number":273,"context_line":"                              sa.ForeignKey(\u0027extra_capabilities.id\u0027),"},{"line_number":274,"context_line":"                              nullable\u003dFalse)"},{"line_number":275,"context_line":"    capability_value \u003d sa.Column(MediumText(), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"d73cacd3_caab2cf5","line":272,"in_reply_to":"5d454f1a_6035ba16","updated":"2021-12-21 23:03:22.000000000","message":"Done","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}],"blazar/plugins/base.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":108,"context_line":"                self.resource_type):"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"            if not private:"},{"line_number":111,"context_line":"                resource_properties[name].append(value)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if detail:"},{"line_number":114,"context_line":"            return ["}],"source_content_type":"text/x-python","patch_set":3,"id":"68739777_31731855","line":111,"updated":"2021-12-20 23:50:10.000000000","message":"How does one list private resource properties, then?","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":true,"context_lines":[{"line_number":108,"context_line":"                self.resource_type):"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"            if not private:"},{"line_number":111,"context_line":"                resource_properties[name].append(value)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if detail:"},{"line_number":114,"context_line":"            return ["}],"source_content_type":"text/x-python","patch_set":3,"id":"d0d00ec2_814e9c6a","line":111,"in_reply_to":"68739777_31731855","updated":"2021-12-21 23:03:22.000000000","message":"There is no way to do so. Perhaps I do not have the context, was there a decision on how to show them? I assume they should be included for the admin user?","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"8541f764dcd1d358c383c64c99d33bab360919ca","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                self.resource_type):"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"            if not private:"},{"line_number":111,"context_line":"                resource_properties[name].append(value)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if detail:"},{"line_number":114,"context_line":"            return ["}],"source_content_type":"text/x-python","patch_set":3,"id":"9ec4c97f_b6e68f33","line":111,"in_reply_to":"d0d00ec2_814e9c6a","updated":"2022-02-10 17:24:43.000000000","message":"Done","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"18597ce99ed119c5e3e9044cae1d986d077f367a","unresolved":true,"context_lines":[{"line_number":105,"context_line":"    def list_resource_properties(self, query):"},{"line_number":106,"context_line":"        detail \u003d False if not query else query.get(\u0027detail\u0027, False)"},{"line_number":107,"context_line":"        all_properties \u003d False if not query else query.get(\u0027all\u0027, False)"},{"line_number":108,"context_line":"        LOG.info(all_properties)"},{"line_number":109,"context_line":"        resource_properties \u003d collections.defaultdict(list)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        include_private \u003d all_properties and policy.enforce("}],"source_content_type":"text/x-python","patch_set":11,"id":"9f0b3105_bae8d848","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":32},"updated":"2022-02-10 16:22:30.000000000","message":"Remove this logging?","commit_id":"75ec9d7072e550bb4965fb619f60ccb0b54c1fd4"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"8541f764dcd1d358c383c64c99d33bab360919ca","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def list_resource_properties(self, query):"},{"line_number":106,"context_line":"        detail \u003d False if not query else query.get(\u0027detail\u0027, False)"},{"line_number":107,"context_line":"        all_properties \u003d False if not query else query.get(\u0027all\u0027, False)"},{"line_number":108,"context_line":"        LOG.info(all_properties)"},{"line_number":109,"context_line":"        resource_properties \u003d collections.defaultdict(list)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        include_private \u003d all_properties and policy.enforce("}],"source_content_type":"text/x-python","patch_set":11,"id":"f7603178_6dfc6f1f","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":32},"in_reply_to":"9f0b3105_bae8d848","updated":"2022-02-10 17:24:43.000000000","message":"Done","commit_id":"75ec9d7072e550bb4965fb619f60ccb0b54c1fd4"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"8e491f1016062cfe7339b81b13de33b359b95a79","unresolved":true,"context_lines":[{"line_number":107,"context_line":"        all_properties \u003d False if not query else query.get(\u0027all\u0027, False)"},{"line_number":108,"context_line":"        resource_properties \u003d collections.defaultdict(list)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        include_private \u003d all_properties and policy.enforce("},{"line_number":111,"context_line":"            context.current(), \u0027admin\u0027, {}, do_raise\u003dFalse)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        for name, private, value in db_api.resource_properties_list("}],"source_content_type":"text/x-python","patch_set":12,"id":"ceb31ade_e432bd40","line":110,"updated":"2022-02-15 20:43:02.000000000","message":"In the future we may want to make this configurable in a separate policy rather than assuming it will only be the \u0027admin\u0027 rule that grants access to this.","commit_id":"f5e6d2482681e2519dc831254ac34352435cbafc"}],"blazar/policies/oshosts.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":92,"context_line":"        ]"},{"line_number":93,"context_line":"    ),"},{"line_number":94,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":95,"context_line":"        name\u003dPOLICY_ROOT % \u0027patch_resource_properties\u0027,"},{"line_number":96,"context_line":"        check_str\u003dbase.RULE_ADMIN,"},{"line_number":97,"context_line":"        description\u003d\u0027Policy rule for Resource Properties API.\u0027,"},{"line_number":98,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":3,"id":"fbb63459_68a021e2","line":95,"updated":"2021-12-20 23:50:10.000000000","message":"Same here, update to \"update_\" maybe.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        ]"},{"line_number":93,"context_line":"    ),"},{"line_number":94,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":95,"context_line":"        name\u003dPOLICY_ROOT % \u0027patch_resource_properties\u0027,"},{"line_number":96,"context_line":"        check_str\u003dbase.RULE_ADMIN,"},{"line_number":97,"context_line":"        description\u003d\u0027Policy rule for Resource Properties API.\u0027,"},{"line_number":98,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":3,"id":"ace32fd9_90c7ee43","line":95,"in_reply_to":"fbb63459_68a021e2","updated":"2021-12-21 23:03:22.000000000","message":"Done","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}],"blazar/tests/api/v1/oshosts/test_v1_0.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":242,"context_line":"                self.host_id, query_params), headers\u003dself.headers)"},{"line_number":243,"context_line":"            self._assert_response(res, 200, {}, key\u003d\u0027allocation\u0027)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def test_resource_properties_list(self):"},{"line_number":246,"context_line":"        with self.app.test_client() as c:"},{"line_number":247,"context_line":"            self.list_resource_properties.return_value \u003d []"},{"line_number":248,"context_line":"            res \u003d c.get(\u0027/v1/properties\u0027, headers\u003dself.headers)"}],"source_content_type":"text/x-python","patch_set":3,"id":"d7541516_4da9a6bf","line":245,"updated":"2021-12-20 23:50:10.000000000","message":"It would probably be good to test the case of ?detail and also filtering out private ones here.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                self.host_id, query_params), headers\u003dself.headers)"},{"line_number":243,"context_line":"            self._assert_response(res, 200, {}, key\u003d\u0027allocation\u0027)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def test_resource_properties_list(self):"},{"line_number":246,"context_line":"        with self.app.test_client() as c:"},{"line_number":247,"context_line":"            self.list_resource_properties.return_value \u003d []"},{"line_number":248,"context_line":"            res \u003d c.get(\u0027/v1/properties\u0027, headers\u003dself.headers)"}],"source_content_type":"text/x-python","patch_set":3,"id":"0e45fe5b_01dfd2ba","line":245,"in_reply_to":"d7541516_4da9a6bf","updated":"2021-12-21 23:03:22.000000000","message":"This logic is in the plugin, and so the test case is in the plugin test.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}],"blazar/tests/db/sqlalchemy/test_sqlalchemy_api.py":[{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"65c20dafe81af7d627d36613aa633dd1e8bef4e0","unresolved":true,"context_lines":[{"line_number":546,"context_line":"        db_api.resource_property_create(dict("},{"line_number":547,"context_line":"            id\u003d\u0027a\u0027, resource_type\u003d\u0027physical:host\u0027, private\u003dFalse,"},{"line_number":548,"context_line":"            capability_name\u003d\u0027vgpu\u0027))"},{"line_number":549,"context_line":"        db_api.host_extra_capability_create("},{"line_number":550,"context_line":"            _get_fake_host_extra_capabilities(computehost_id\u003d1))"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        result \u003d db_api.resource_properties_list(\u0027physical:host\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"79687792_fa9acbec","line":549,"updated":"2021-12-20 23:50:10.000000000","message":"Similarly, maybe worth adding a private one too and ensuring it doesn\u0027t show up in this case.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"},{"author":{"_account_id":33582,"name":"Mark Powers","email":"markpowers@uchicago.edu","username":"markpowers"},"change_message_id":"0dd2a6d7e18111b7b6fbc024bdcd75432b1af5e8","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        db_api.resource_property_create(dict("},{"line_number":547,"context_line":"            id\u003d\u0027a\u0027, resource_type\u003d\u0027physical:host\u0027, private\u003dFalse,"},{"line_number":548,"context_line":"            capability_name\u003d\u0027vgpu\u0027))"},{"line_number":549,"context_line":"        db_api.host_extra_capability_create("},{"line_number":550,"context_line":"            _get_fake_host_extra_capabilities(computehost_id\u003d1))"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"        result \u003d db_api.resource_properties_list(\u0027physical:host\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"83ae359c_cf12a80f","line":549,"in_reply_to":"79687792_fa9acbec","updated":"2021-12-21 23:03:22.000000000","message":"This logic is in the plugin, and so the test case is in the plugin test.","commit_id":"7288e66c2cd0d4969d14d335c6eaa12076be0c63"}]}
