)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0692b7e7d5c247c2eb37d473d7b22f39e80e7a86","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This refactor changes ResourceRequest __init__ to make only an empty"},{"line_number":10,"context_line":"request and moves the ResourceReqeust creation from a RequestSpec to a"},{"line_number":11,"context_line":"static factory method. This is a preparation to introduce another"},{"line_number":12,"context_line":"factory method later that will generate aResourceRequest from a single"},{"line_number":13,"context_line":"ResourceGroup instead of a full RequestSpec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Blueprint: support-interface-attach-with-qos-ports"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"aa979ae5_442872b6","line":12,"range":{"start_line":12,"start_character":39,"end_line":12,"end_character":41},"updated":"2021-01-11 11:53:20.000000000","message":"nit","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a8e8bd3881f2a67f638142716313edb595a7e911","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This refactor changes ResourceRequest __init__ to make only an empty"},{"line_number":10,"context_line":"request and moves the ResourceReqeust creation from a RequestSpec to a"},{"line_number":11,"context_line":"static factory method. This is a preparation to introduce another"},{"line_number":12,"context_line":"factory method later that will generate aResourceRequest from a single"},{"line_number":13,"context_line":"ResourceGroup instead of a full RequestSpec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Blueprint: support-interface-attach-with-qos-ports"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ff346526_48d0f626","line":12,"range":{"start_line":12,"start_character":39,"end_line":12,"end_character":41},"in_reply_to":"aa979ae5_442872b6","updated":"2021-01-11 13:47:50.000000000","message":"Done","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"963c234ccfd10aaed075535c6d2e9f0a35260184","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Refactor ResourceRequest constructor"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This refactor changes ResourceRequest __init__ to make only an empty"},{"line_number":10,"context_line":"request and moves the ResourceReqeust creation from a RequestSpec to a"},{"line_number":11,"context_line":"static factory method. This is a preparation to introduce another"},{"line_number":12,"context_line":"factory method later that will generate a ResourceRequest from a single"},{"line_number":13,"context_line":"ResourceGroup instead of a full RequestSpec."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"41775857_fcd71763","line":10,"range":{"start_line":10,"start_character":22,"end_line":10,"end_character":37},"updated":"2021-02-02 14:01:32.000000000","message":"nit: ResourceRequest","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"963c234ccfd10aaed075535c6d2e9f0a35260184","unresolved":true,"context_lines":[{"line_number":10,"context_line":"request and moves the ResourceReqeust creation from a RequestSpec to a"},{"line_number":11,"context_line":"static factory method. This is a preparation to introduce another"},{"line_number":12,"context_line":"factory method later that will generate a ResourceRequest from a single"},{"line_number":13,"context_line":"ResourceGroup instead of a full RequestSpec."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Blueprint: support-interface-attach-with-qos-ports"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1addbcd4_409506fb","line":13,"updated":"2021-02-02 14:01:32.000000000","message":"nods","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"}],"nova/scheduler/utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe766e0fe0e429a1eb59df52e23421ba73ebfc1","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # { ident: RequestGroup }"},{"line_number":67,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":68,"context_line":"        self._group_policy \u003d None"},{"line_number":69,"context_line":"        # Default to the configured limit but _limit can be"},{"line_number":70,"context_line":"        # set to None to indicate \"no limit\"."}],"source_content_type":"text/x-python","patch_set":2,"id":"a17fc89c_7287eb5b","line":67,"updated":"2021-01-07 14:55:51.000000000","message":"You _could_ add type hints on this stuff, rather than the comment above","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # { ident: RequestGroup }"},{"line_number":67,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":68,"context_line":"        self._group_policy \u003d None"},{"line_number":69,"context_line":"        # Default to the configured limit but _limit can be"},{"line_number":70,"context_line":"        # set to None to indicate \"no limit\"."}],"source_content_type":"text/x-python","patch_set":2,"id":"911d4a2d_84408fe0","line":67,"in_reply_to":"a17fc89c_7287eb5b","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d74df9c77cd99080a1a11bc2b507404854fe93ee","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        self._root_required \u003d None"},{"line_number":73,"context_line":"        self._root_forbidden \u003d None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @staticmethod"},{"line_number":76,"context_line":"    def from_request_spec(request_spec, enable_pinning_translate\u003dTrue):"},{"line_number":77,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"317b792a_f908f98e","line":75,"updated":"2021-01-07 14:45:54.000000000","message":"If this were a classmethod rather than a staticmethod, you\u0027d be able to use\n\n  rr \u003d cls()\n\nbelow. That seems sensible IMO","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self._root_required \u003d None"},{"line_number":73,"context_line":"        self._root_forbidden \u003d None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @staticmethod"},{"line_number":76,"context_line":"    def from_request_spec(request_spec, enable_pinning_translate\u003dTrue):"},{"line_number":77,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ca88791a_ab5b1cad","line":75,"in_reply_to":"317b792a_f908f98e","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe766e0fe0e429a1eb59df52e23421ba73ebfc1","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self._root_forbidden \u003d None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @staticmethod"},{"line_number":76,"context_line":"    def from_request_spec(request_spec, enable_pinning_translate\u003dTrue):"},{"line_number":77,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        Examines the flavor, flavor extra specs, (optional) image metadata,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2c82bcaf_8f606a0e","line":76,"updated":"2021-01-07 14:55:51.000000000","message":"nit: type hints here would be awesome","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self._root_forbidden \u003d None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @staticmethod"},{"line_number":76,"context_line":"    def from_request_spec(request_spec, enable_pinning_translate\u003dTrue):"},{"line_number":77,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        Examines the flavor, flavor extra specs, (optional) image metadata,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0c11171_844dd5c4","line":76,"in_reply_to":"2c82bcaf_8f606a0e","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d74df9c77cd99080a1a11bc2b507404854fe93ee","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            should be translated to placement resources and traits."},{"line_number":121,"context_line":"        :return: a ResourceRequest instance"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        self \u003d ResourceRequest()"},{"line_number":124,"context_line":"        # { ident: RequestGroup }"},{"line_number":125,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":126,"context_line":"        self._group_policy \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"d9061a92_d94d4e2b","line":123,"range":{"start_line":123,"start_character":8,"end_line":123,"end_character":12},"updated":"2021-01-07 14:45:54.000000000","message":"This is effectively a keyword and carries certain connotations. Can we rename this some else? Even simply \u0027rr\u0027 would be better","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            should be translated to placement resources and traits."},{"line_number":121,"context_line":"        :return: a ResourceRequest instance"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        self \u003d ResourceRequest()"},{"line_number":124,"context_line":"        # { ident: RequestGroup }"},{"line_number":125,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":126,"context_line":"        self._group_policy \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"c8cc30a2_19ad26b9","line":123,"range":{"start_line":123,"start_character":8,"end_line":123,"end_character":12},"in_reply_to":"d9061a92_d94d4e2b","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe766e0fe0e429a1eb59df52e23421ba73ebfc1","unresolved":true,"context_lines":[{"line_number":121,"context_line":"        :return: a ResourceRequest instance"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        self \u003d ResourceRequest()"},{"line_number":124,"context_line":"        # { ident: RequestGroup }"},{"line_number":125,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":126,"context_line":"        self._group_policy \u003d None"},{"line_number":127,"context_line":"        # root_required+\u003dthese"},{"line_number":128,"context_line":"        self._root_required \u003d request_spec.root_required"},{"line_number":129,"context_line":"        # root_required+\u003d!these"},{"line_number":130,"context_line":"        self._root_forbidden \u003d request_spec.root_forbidden"},{"line_number":131,"context_line":"        # Default to the configured limit but _limit can be"},{"line_number":132,"context_line":"        # set to None to indicate \"no limit\"."},{"line_number":133,"context_line":"        self._limit \u003d CONF.scheduler.max_placement_results"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # TODO(efried): Handle member_of[$S], which will need to be reconciled"},{"line_number":136,"context_line":"        # with destination.aggregates handling in resources_from_request_spec"}],"source_content_type":"text/x-python","patch_set":2,"id":"dd6873ce_892f90ea","line":133,"range":{"start_line":124,"start_character":0,"end_line":133,"end_character":58},"updated":"2021-01-07 14:55:51.000000000","message":"I assume these should have been dropped, since they\u0027re included in \u0027__init__\u0027 now","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        :return: a ResourceRequest instance"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        self \u003d ResourceRequest()"},{"line_number":124,"context_line":"        # { ident: RequestGroup }"},{"line_number":125,"context_line":"        self._rg_by_id \u003d {}"},{"line_number":126,"context_line":"        self._group_policy \u003d None"},{"line_number":127,"context_line":"        # root_required+\u003dthese"},{"line_number":128,"context_line":"        self._root_required \u003d request_spec.root_required"},{"line_number":129,"context_line":"        # root_required+\u003d!these"},{"line_number":130,"context_line":"        self._root_forbidden \u003d request_spec.root_forbidden"},{"line_number":131,"context_line":"        # Default to the configured limit but _limit can be"},{"line_number":132,"context_line":"        # set to None to indicate \"no limit\"."},{"line_number":133,"context_line":"        self._limit \u003d CONF.scheduler.max_placement_results"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # TODO(efried): Handle member_of[$S], which will need to be reconciled"},{"line_number":136,"context_line":"        # with destination.aggregates handling in resources_from_request_spec"}],"source_content_type":"text/x-python","patch_set":2,"id":"9e90091d_300db780","line":133,"range":{"start_line":124,"start_character":0,"end_line":133,"end_character":58},"in_reply_to":"dd6873ce_892f90ea","updated":"2021-01-08 15:36:08.000000000","message":"moved, except self._root_required and self._root_forbidden as they are getting value here","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe766e0fe0e429a1eb59df52e23421ba73ebfc1","unresolved":true,"context_lines":[{"line_number":144,"context_line":"        # Parse the flavor extra specs"},{"line_number":145,"context_line":"        self._process_extra_specs(request_spec.flavor)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        self.suffixed_groups_from_flavor \u003d self.get_num_of_suffixed_groups()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # Now parse the (optional) image metadata"},{"line_number":150,"context_line":"        self._process_image_meta(image)"}],"source_content_type":"text/x-python","patch_set":2,"id":"e14ee503_5e46ddec","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":76},"updated":"2021-01-07 14:55:51.000000000","message":"Can we drop this in favour of making \u0027get_num_of_suffixed_groups\u0027 a property, or simply calling that where this is done. I\u0027m concerned that the new factory method won\u0027t set this, and we\u0027ll see obscure failures at some point because this isn\u0027t defined.","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        # Parse the flavor extra specs"},{"line_number":145,"context_line":"        self._process_extra_specs(request_spec.flavor)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        self.suffixed_groups_from_flavor \u003d self.get_num_of_suffixed_groups()"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # Now parse the (optional) image metadata"},{"line_number":150,"context_line":"        self._process_image_meta(image)"}],"source_content_type":"text/x-python","patch_set":2,"id":"eb60adb6_8ce0fd5c","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":76},"in_reply_to":"e14ee503_5e46ddec","updated":"2021-01-08 15:36:08.000000000","message":"we cannot. This number is the flavor based suffixed groups and it is calculated here as \nself._process_extra_specs(request_spec.flavor) called above it but _process_requested_resources() called below it. :/ It is ugly. What I can do is that I initialize self.suffixed_groups_from_flavor to 0 in __init__ so the new factory does not have to care about it and the ResourceRequest object will be still consistent","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe766e0fe0e429a1eb59df52e23421ba73ebfc1","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":153,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":154,"context_line":"        self.cpu_pinning_requested \u003d False"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        if enable_pinning_translate:"},{"line_number":157,"context_line":"            # Next up, let\u0027s handle those pesky CPU pinning policies"}],"source_content_type":"text/x-python","patch_set":2,"id":"483adf7c_5db9e9f3","line":154,"updated":"2021-01-07 14:55:51.000000000","message":"This should probably be moved to the __init__ method, even though it\u0027s ready for removal now (I\u0027m working on it)?","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":153,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":154,"context_line":"        self.cpu_pinning_requested \u003d False"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        if enable_pinning_translate:"},{"line_number":157,"context_line":"            # Next up, let\u0027s handle those pesky CPU pinning policies"}],"source_content_type":"text/x-python","patch_set":2,"id":"cee33147_72e3fd45","line":154,"in_reply_to":"483adf7c_5db9e9f3","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0692b7e7d5c247c2eb37d473d7b22f39e80e7a86","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"},{"line_number":79,"context_line":"    def from_request_spec("},{"line_number":80,"context_line":"        cls: ty.Type[\u0027ResourceRequest\u0027],"},{"line_number":81,"context_line":"        request_spec: \u0027objects.RequestSpec\u0027,"},{"line_number":82,"context_line":"        enable_pinning_translate\u003dTrue"},{"line_number":83,"context_line":"    ) -\u003e \u0027ResourceRequest\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"a21ab037_319797e3","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":39},"updated":"2021-01-11 11:53:20.000000000","message":"Don\u0027t think this is necessary. You don\u0027t need to markup \u0027self\u0027","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a8e8bd3881f2a67f638142716313edb595a7e911","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"},{"line_number":79,"context_line":"    def from_request_spec("},{"line_number":80,"context_line":"        cls: ty.Type[\u0027ResourceRequest\u0027],"},{"line_number":81,"context_line":"        request_spec: \u0027objects.RequestSpec\u0027,"},{"line_number":82,"context_line":"        enable_pinning_translate\u003dTrue"},{"line_number":83,"context_line":"    ) -\u003e \u0027ResourceRequest\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"05415fca_24d3db04","line":80,"range":{"start_line":80,"start_character":11,"end_line":80,"end_character":39},"in_reply_to":"a21ab037_319797e3","updated":"2021-01-11 13:47:50.000000000","message":"You are correct:\nRevealed type is \u0027Type[nova.scheduler.utils.ResourceRequest]\u0027","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0692b7e7d5c247c2eb37d473d7b22f39e80e7a86","unresolved":true,"context_lines":[{"line_number":79,"context_line":"    def from_request_spec("},{"line_number":80,"context_line":"        cls: ty.Type[\u0027ResourceRequest\u0027],"},{"line_number":81,"context_line":"        request_spec: \u0027objects.RequestSpec\u0027,"},{"line_number":82,"context_line":"        enable_pinning_translate\u003dTrue"},{"line_number":83,"context_line":"    ) -\u003e \u0027ResourceRequest\u0027:"},{"line_number":84,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"078c49b2_667046f9","line":82,"range":{"start_line":82,"start_character":8,"end_line":82,"end_character":37},"updated":"2021-01-11 11:53:20.000000000","message":"nit:\n\n  enable_pinning_translate: bool \u003d  True,","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a8e8bd3881f2a67f638142716313edb595a7e911","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    def from_request_spec("},{"line_number":80,"context_line":"        cls: ty.Type[\u0027ResourceRequest\u0027],"},{"line_number":81,"context_line":"        request_spec: \u0027objects.RequestSpec\u0027,"},{"line_number":82,"context_line":"        enable_pinning_translate\u003dTrue"},{"line_number":83,"context_line":"    ) -\u003e \u0027ResourceRequest\u0027:"},{"line_number":84,"context_line":"        \"\"\"Create a new instance of ResourceRequest from a RequestSpec."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"69e7d56a_e5fa0d73","line":82,"range":{"start_line":82,"start_character":8,"end_line":82,"end_character":37},"in_reply_to":"078c49b2_667046f9","updated":"2021-01-11 13:47:50.000000000","message":"Done","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0692b7e7d5c247c2eb37d473d7b22f39e80e7a86","unresolved":true,"context_lines":[{"line_number":127,"context_line":"            should be translated to placement resources and traits."},{"line_number":128,"context_line":"        :return: a ResourceRequest instance"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        rr \u003d cls()"},{"line_number":131,"context_line":"        # root_required+\u003dthese"},{"line_number":132,"context_line":"        rr._root_required \u003d request_spec.root_required"},{"line_number":133,"context_line":"        # root_required+\u003d!these"}],"source_content_type":"text/x-python","patch_set":3,"id":"869ce1c1_af50aca4","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":10},"updated":"2021-01-11 11:53:20.000000000","message":"in hindsight, \u0027res_req\u0027 might have been a better idea seeing as that\u0027s what we use elsewhere, but this is fine","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a8e8bd3881f2a67f638142716313edb595a7e911","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            should be translated to placement resources and traits."},{"line_number":128,"context_line":"        :return: a ResourceRequest instance"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        rr \u003d cls()"},{"line_number":131,"context_line":"        # root_required+\u003dthese"},{"line_number":132,"context_line":"        rr._root_required \u003d request_spec.root_required"},{"line_number":133,"context_line":"        # root_required+\u003d!these"}],"source_content_type":"text/x-python","patch_set":3,"id":"a11f8adb_093b1db7","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":10},"in_reply_to":"869ce1c1_af50aca4","updated":"2021-01-11 13:47:50.000000000","message":"Done","commit_id":"039bcf8569ea22a899f1c6d1a2bae1e491d2cf3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a7b5580993ce8ac34b8e590e9dc5d80699986e5","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        self._limit \u003d CONF.scheduler.max_placement_results"},{"line_number":71,"context_line":"        self._root_required: ty.Set[str] \u003d set()"},{"line_number":72,"context_line":"        self._root_forbidden: ty.Set[str] \u003d set()"},{"line_number":73,"context_line":"        self.suffixed_groups_from_flavor \u003d 0"},{"line_number":74,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":75,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":76,"context_line":"        self.cpu_pinning_requested \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"8e261b0a_47fef6be","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":44},"updated":"2021-01-22 13:50:03.000000000","message":"this could be typed as int","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b75b6767275421fb9ad10b76bf236edc61ccc2bf","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self._limit \u003d CONF.scheduler.max_placement_results"},{"line_number":71,"context_line":"        self._root_required: ty.Set[str] \u003d set()"},{"line_number":72,"context_line":"        self._root_forbidden: ty.Set[str] \u003d set()"},{"line_number":73,"context_line":"        self.suffixed_groups_from_flavor \u003d 0"},{"line_number":74,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":75,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":76,"context_line":"        self.cpu_pinning_requested \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"e93a7e3e_c32b9e51","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":44},"in_reply_to":"8e261b0a_47fef6be","updated":"2021-01-26 12:27:27.000000000","message":"mypy is smart enough to deduce the type based on the type of the rvalue\n$ cat type.py\ndef main() -\u003e None:\n    a \u003d 0\n    b \u003d \u0027hello\u0027\n    c \u003d False\n    reveal_type(a)\n    reveal_type(b)\n    reveal_type(c)\ngibizer@riverbed:~/tmp (.venv)                                                                                                                                                  $ mypy type.py \ntype.py:5: note: Revealed type is \u0027builtins.int\u0027\ntype.py:6: note: Revealed type is \u0027builtins.str\u0027\ntype.py:7: note: Revealed type is \u0027builtins.bool\u0027\n\nhowever mypy cannot deduce a dict key and value type from an rvalue of {} so there we need the hints.","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"963c234ccfd10aaed075535c6d2e9f0a35260184","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self._limit \u003d CONF.scheduler.max_placement_results"},{"line_number":71,"context_line":"        self._root_required: ty.Set[str] \u003d set()"},{"line_number":72,"context_line":"        self._root_forbidden: ty.Set[str] \u003d set()"},{"line_number":73,"context_line":"        self.suffixed_groups_from_flavor \u003d 0"},{"line_number":74,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":75,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":76,"context_line":"        self.cpu_pinning_requested \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f5e6987_5264f2e7","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":44},"in_reply_to":"e93a7e3e_c32b9e51","updated":"2021-02-02 14:01:32.000000000","message":"/me is a sad panda... [mypy concerns]","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5a7b5580993ce8ac34b8e590e9dc5d80699986e5","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.suffixed_groups_from_flavor \u003d 0"},{"line_number":74,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":75,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":76,"context_line":"        self.cpu_pinning_requested \u003d False"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"},{"line_number":79,"context_line":"    def from_request_spec("}],"source_content_type":"text/x-python","patch_set":5,"id":"e79822e1_45e5b149","line":76,"range":{"start_line":76,"start_character":6,"end_line":76,"end_character":1},"updated":"2021-01-22 13:50:03.000000000","message":"and bool","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b75b6767275421fb9ad10b76bf236edc61ccc2bf","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.suffixed_groups_from_flavor \u003d 0"},{"line_number":74,"context_line":"        # TODO(stephenfin): Remove this parameter once we drop support for"},{"line_number":75,"context_line":"        # \u0027vcpu_pin_set\u0027"},{"line_number":76,"context_line":"        self.cpu_pinning_requested \u003d False"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"},{"line_number":79,"context_line":"    def from_request_spec("}],"source_content_type":"text/x-python","patch_set":5,"id":"ca669b48_292114d6","line":76,"range":{"start_line":76,"start_character":6,"end_line":76,"end_character":1},"in_reply_to":"e79822e1_45e5b149","updated":"2021-01-26 12:27:27.000000000","message":"ditto","commit_id":"c3804efd42f2d735ad48455705dfaa34e10f4cdf"}],"nova/tests/unit/scheduler/test_utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":834,"context_line":"        actual \u003d utils.resources_from_flavor(instance, flavor)"},{"line_number":835,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    def test_resource_request_init(self):"},{"line_number":838,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":839,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0)"},{"line_number":840,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fd26e459_84f6f89c","line":837,"range":{"start_line":837,"start_character":30,"end_line":837,"end_character":34},"updated":"2021-01-07 15:15:56.000000000","message":"Can you rename this?","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":834,"context_line":"        actual \u003d utils.resources_from_flavor(instance, flavor)"},{"line_number":835,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    def test_resource_request_init(self):"},{"line_number":838,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":839,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0)"},{"line_number":840,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"946fd1cd_a697d431","line":837,"range":{"start_line":837,"start_character":30,"end_line":837,"end_character":34},"in_reply_to":"fd26e459_84f6f89c","updated":"2021-01-08 15:36:08.000000000","message":"nice catch\nDone","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":851,"context_line":"        rr \u003d utils.ResourceRequest.from_request_spec(rs)"},{"line_number":852,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"    def test_resource_request_init_with_extra_specs(self):"},{"line_number":855,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":856,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":857,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":2,"id":"41f01cdf_8ca8597f","line":854,"range":{"start_line":854,"start_character":30,"end_line":854,"end_character":34},"updated":"2021-01-07 15:15:56.000000000","message":"ditto","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":851,"context_line":"        rr \u003d utils.ResourceRequest.from_request_spec(rs)"},{"line_number":852,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"    def test_resource_request_init_with_extra_specs(self):"},{"line_number":855,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":856,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":857,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":2,"id":"7758787e_b302cc3c","line":854,"range":{"start_line":854,"start_character":30,"end_line":854,"end_character":34},"in_reply_to":"41f01cdf_8ca8597f","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":"        self.assertEqual(expected_querystring, rr.to_querystring())"},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"    def _test_resource_request_init_with_legacy_extra_specs(self):"},{"line_number":953,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":954,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":955,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":2,"id":"c61e51f3_e135a632","line":952,"range":{"start_line":952,"start_character":31,"end_line":952,"end_character":35},"updated":"2021-01-07 15:15:56.000000000","message":"ditto","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":949,"context_line":"        )"},{"line_number":950,"context_line":"        self.assertEqual(expected_querystring, rr.to_querystring())"},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"    def _test_resource_request_init_with_legacy_extra_specs(self):"},{"line_number":953,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":954,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0,"},{"line_number":955,"context_line":"            extra_specs\u003d{"}],"source_content_type":"text/x-python","patch_set":2,"id":"5c31290c_0a026209","line":952,"range":{"start_line":952,"start_character":31,"end_line":952,"end_character":35},"in_reply_to":"c61e51f3_e135a632","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":960,"context_line":""},{"line_number":961,"context_line":"        return objects.RequestSpec(flavor\u003dflavor, is_bfv\u003dFalse)"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"    def test_resource_request_init_with_legacy_extra_specs(self):"},{"line_number":964,"context_line":"        expected \u003d FakeResourceRequest()"},{"line_number":965,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":966,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"b7b4694d_23d5d0b8","line":963,"range":{"start_line":963,"start_character":30,"end_line":963,"end_character":34},"updated":"2021-01-07 15:15:56.000000000","message":"ditto","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":960,"context_line":""},{"line_number":961,"context_line":"        return objects.RequestSpec(flavor\u003dflavor, is_bfv\u003dFalse)"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"    def test_resource_request_init_with_legacy_extra_specs(self):"},{"line_number":964,"context_line":"        expected \u003d FakeResourceRequest()"},{"line_number":965,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":966,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"beef060f_ead5928a","line":963,"range":{"start_line":963,"start_character":30,"end_line":963,"end_character":34},"in_reply_to":"b7b4694d_23d5d0b8","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":981,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":982,"context_line":"        self.assertTrue(rr.cpu_pinning_requested)"},{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def test_resource_request_init_with_legacy_extra_specs_no_translate(self):"},{"line_number":985,"context_line":"        expected \u003d FakeResourceRequest()"},{"line_number":986,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":987,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f91c89c1_2bd6a6b0","line":984,"range":{"start_line":984,"start_character":30,"end_line":984,"end_character":34},"updated":"2021-01-07 15:15:56.000000000","message":"ditto","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":981,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":982,"context_line":"        self.assertTrue(rr.cpu_pinning_requested)"},{"line_number":983,"context_line":""},{"line_number":984,"context_line":"    def test_resource_request_init_with_legacy_extra_specs_no_translate(self):"},{"line_number":985,"context_line":"        expected \u003d FakeResourceRequest()"},{"line_number":986,"context_line":"        expected._rg_by_id[None] \u003d objects.RequestGroup("},{"line_number":987,"context_line":"            use_same_provider\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"689c86da_f0a638ed","line":984,"range":{"start_line":984,"start_character":30,"end_line":984,"end_character":34},"in_reply_to":"f91c89c1_2bd6a6b0","updated":"2021-01-08 15:36:08.000000000","message":"Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae366e0e5a06ea4ef9e2a061385023441dc64511","unresolved":true,"context_lines":[{"line_number":1002,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":1003,"context_line":"        self.assertFalse(rr.cpu_pinning_requested)"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    def test_resource_request_init_with_image_props(self):"},{"line_number":1006,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1007,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0)"},{"line_number":1008,"context_line":"        image \u003d objects.ImageMeta.from_dict({"}],"source_content_type":"text/x-python","patch_set":2,"id":"652f08b9_bf9cc4d7","line":1005,"range":{"start_line":1005,"start_character":30,"end_line":1005,"end_character":34},"updated":"2021-01-07 15:15:56.000000000","message":"You get the point 😊","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"994652fc46250fb8638c2784529047881c9fa0e4","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"        self.assertResourceRequestsEqual(expected, rr)"},{"line_number":1003,"context_line":"        self.assertFalse(rr.cpu_pinning_requested)"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    def test_resource_request_init_with_image_props(self):"},{"line_number":1006,"context_line":"        flavor \u003d objects.Flavor("},{"line_number":1007,"context_line":"            vcpus\u003d1, memory_mb\u003d1024, root_gb\u003d10, ephemeral_gb\u003d5, swap\u003d0)"},{"line_number":1008,"context_line":"        image \u003d objects.ImageMeta.from_dict({"}],"source_content_type":"text/x-python","patch_set":2,"id":"b5358a7f_6b139cae","line":1005,"range":{"start_line":1005,"start_character":30,"end_line":1005,"end_character":34},"in_reply_to":"652f08b9_bf9cc4d7","updated":"2021-01-08 15:36:08.000000000","message":"got it, all Done","commit_id":"abc6b72f512184d43ec8b80e1be4b0d0e92c862e"}]}
