)]}'
{"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"666b4c184a63ffb9a7f83b6ababe1f0ebf81747a","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        flavor \u003d self._get_resource(_flavor.Flavor, flavor)"},{"line_number":205,"context_line":"        return flavor.get_extra_specs_property(self, prop)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def update_flavor_extra_specs_property(self, flavor, prop, val):"},{"line_number":208,"context_line":"        \"\"\"Update specific Extra Spec property of a flavor"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        :param flavor: Either the ID of a flavor or a"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_ff4c4577","line":207,"range":{"start_line":207,"start_character":63,"end_line":207,"end_character":66},"updated":"2020-09-07 15:48:05.000000000","message":"Seems never used","commit_id":"ad3b0f5aeed4f8792357300f93c2f5843bf5ecd1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"666b4c184a63ffb9a7f83b6ababe1f0ebf81747a","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        flavor \u003d self._get_resource(_flavor.Flavor, flavor)"},{"line_number":218,"context_line":"        return flavor.update_extra_specs_property(self, prop)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def delete_flavor_extra_specs_property(self, flavor, prop, val):"},{"line_number":221,"context_line":"        \"\"\"Delete specific Extra Spec property of a flavor"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        :param flavor: Either the ID of a flavor or a"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_df518110","line":220,"range":{"start_line":220,"start_character":63,"end_line":220,"end_character":66},"updated":"2020-09-07 15:48:05.000000000","message":"Seems never used","commit_id":"ad3b0f5aeed4f8792357300f93c2f5843bf5ecd1"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    :class:`~openstack.exceptions.ResourceNotFound` will be"},{"line_number":70,"context_line":"                    raised when the resource does not exist."},{"line_number":71,"context_line":"                    When set to ``True``, None will be returned when"},{"line_number":72,"context_line":"                    attempting to find a nonexistent resource."},{"line_number":73,"context_line":"        :returns: One :class:`~openstack.compute.v2.flavor.Flavor` or None"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":"        flavor \u003d self._find(_flavor.Flavor, name_or_id,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_c251a532","line":72,"updated":"2020-09-22 14:53:37.000000000","message":"Please document the new parameter","commit_id":"5805b461eb78dce4a807010af95615057e361229"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        :param flavor: The value can be the ID of a flavor or a"},{"line_number":112,"context_line":"                       :class:`~openstack.compute.v2.flavor.Flavor` instance."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        :returns: One :class:`~openstack.compute.v2.flavor.Flavor`"},{"line_number":115,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceNotFound`"},{"line_number":116,"context_line":"                 when no resource can be found."}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_22306107","line":113,"updated":"2020-09-22 14:53:37.000000000","message":"ditto","commit_id":"5805b461eb78dce4a807010af95615057e361229"}],"openstack/compute/v2/flavor.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self._action(session, body)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def get_access(self, session):"},{"line_number":107,"context_line":"        \"\"\"Lists tenants who have access to a private flavor and adds private"},{"line_number":108,"context_line":"        flavor access to and removes private flavor access from tenants. By"},{"line_number":109,"context_line":"        default, only administrators can manage private flavor access. A"},{"line_number":110,"context_line":"        private flavor has is_public set to false while a public flavor has"},{"line_number":111,"context_line":"        is_public set to true."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        :return: List of dicts with flavor_id and tenant_id attributes"},{"line_number":114,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_65042315","line":111,"range":{"start_line":107,"start_character":0,"end_line":111,"end_character":30},"updated":"2020-09-22 14:53:37.000000000","message":"Please format the docstring","commit_id":"5805b461eb78dce4a807010af95615057e361229"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        return response.json().get(\u0027flavor_access\u0027, [])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def fetch_extra_specs(self, session):"},{"line_number":121,"context_line":"        \"\"\"Fetch extra_specs of the flavor"},{"line_number":122,"context_line":"        Starting with 2.61 extra_specs are returned with the flavor details,"},{"line_number":123,"context_line":"        before that a separate call is required"},{"line_number":124,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_850e972f","line":121,"updated":"2020-09-22 14:53:37.000000000","message":"ditto","commit_id":"5805b461eb78dce4a807010af95615057e361229"}],"openstack/tests/unit/compute/v2/test_flavor.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"db9e06134b5e67fca3c2bdd048a9c9f2edde5824","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from keystoneauth1 import adapter"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from openstack import _log"},{"line_number":17,"context_line":"from openstack import exceptions"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from openstack.tests.unit import base"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_dd5e9743","line":17,"updated":"2020-09-08 18:44:05.000000000","message":"pep8: F401 \u0027openstack.exceptions\u0027 imported but unused","commit_id":"039f85fd20e5443cefeacadc3787fdebbd87fbd3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"db9e06134b5e67fca3c2bdd048a9c9f2edde5824","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class TestFlavor(base.TestCase):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def setUp(self):"},{"line_number":43,"context_line":"        super(TestFlavor, self).setUp()"},{"line_number":44,"context_line":"        self.log \u003d _log.setup_logging(__name__)"},{"line_number":45,"context_line":"        self.sess \u003d mock.Mock(spec\u003dadapter.Adapter)"},{"line_number":46,"context_line":"        self.sess.default_microversion \u003d 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_bd5be351","line":43,"updated":"2020-09-08 18:44:05.000000000","message":"pep8: E231 missing whitespace after \u0027:\u0027","commit_id":"039f85fd20e5443cefeacadc3787fdebbd87fbd3"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"db9e06134b5e67fca3c2bdd048a9c9f2edde5824","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class TestFlavor(base.TestCase):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def setUp(self):"},{"line_number":43,"context_line":"        super(TestFlavor, self).setUp()"},{"line_number":44,"context_line":"        self.log \u003d _log.setup_logging(__name__)"},{"line_number":45,"context_line":"        self.sess \u003d mock.Mock(spec\u003dadapter.Adapter)"},{"line_number":46,"context_line":"        self.sess.default_microversion \u003d 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_1d55af1e","line":43,"updated":"2020-09-08 18:44:05.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"039f85fd20e5443cefeacadc3787fdebbd87fbd3"}],"releasenotes/notes/add-compute-flavor-ops-12149e58299c413e.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","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":"    Add additional compute flavor operations (flavor_add_tenant_access, flavor_remove_tenant_access, get_flavor_access, extra_specs fetching/updating)."},{"line_number":5,"context_line":"other:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Merge FlavorDetails into Flavor class."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_853cd7bf","line":4,"updated":"2020-09-22 14:53:37.000000000","message":"nit: please wrap lines","commit_id":"5805b461eb78dce4a807010af95615057e361229"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13e3699573df579a87610e4937c7bd84bc571679","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add additional compute flavor operations (flavor_add_tenant_access, flavor_remove_tenant_access, get_flavor_access, extra_specs fetching/updating)."},{"line_number":5,"context_line":"other:"},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Merge FlavorDetails into Flavor class."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_a568fbb9","line":7,"updated":"2020-09-22 14:53:37.000000000","message":"nit: not sure if this is helpful for operators","commit_id":"5805b461eb78dce4a807010af95615057e361229"}]}
