)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"f2274100bb68b56a1c00aeb4ea5b9c64273dc3ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bb6aea02_0515b202","updated":"2022-01-11 02:28:22.000000000","message":"Good catch, we can record arq\u0027s deployable_id in the db.\nPlease add the releasenote and add it\u0027s benefit(friendly for users)","commit_id":"61160dcad262c4b84bf358391da8e2dfb4a338bc"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e0c4623bf9f32a56e6b4cb601bb34d62547cf063","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"22619931_70d82a2b","updated":"2022-01-19 08:44:53.000000000","message":"lgtm, but some nits inline.","commit_id":"a12a8ff97d20d127e731543509e5924f974e758b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0efdc9112e9360eed6dcdbd1abb32fd90674771d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d192b601_46c111c6","updated":"2022-01-20 00:18:53.000000000","message":"LGTM, thanks.","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"37412c390e3a7d91fbc6d3982359057466e41318","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"53e5bba9_70b55449","updated":"2022-01-20 06:04:07.000000000","message":"some nits, pls recheck","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e1cb35acfc14d55f6d676fc9d3928108c7e6f50b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"90f8666c_bfb5fe5b","updated":"2022-01-28 07:22:09.000000000","message":"LGTM","commit_id":"d159be7de898a49dcc42c3515084e824c5a5cea6"}],"cyborg/objects/ext_arq.py":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc0ac12c294d8f647628c8cafbcfe6af5f5abf","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        # For bound ARQs, we keep the attach handle ID and deployable ID here"},{"line_number":67,"context_line":"        # so that it is easy to deallocate on unbind or delete."},{"line_number":68,"context_line":"        \u0027attach_handle_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":69,"context_line":"        \u0027deployable_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def create(self, context, device_profile_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"86f5ed32_250a8ae3","line":69,"updated":"2022-01-13 00:45:53.000000000","message":"we should check the version whether support deployable_id, I mean we should add the version check, if (target_version \u003c 1.2)we should remove it from fields.","commit_id":"1d0ddbef996205fe4d85961329486948b4dc0e70"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"2fc063a6a339fa27e6508178f3eac96190358a92","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        # For bound ARQs, we keep the attach handle ID and deployable ID here"},{"line_number":67,"context_line":"        # so that it is easy to deallocate on unbind or delete."},{"line_number":68,"context_line":"        \u0027attach_handle_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":69,"context_line":"        \u0027deployable_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":70,"context_line":"    }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def create(self, context, device_profile_id\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"93e38a37_acadf0b6","line":69,"in_reply_to":"86f5ed32_250a8ae3","updated":"2022-01-15 11:56:07.000000000","message":"Done","commit_id":"1d0ddbef996205fe4d85961329486948b4dc0e70"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e8bc0ac12c294d8f647628c8cafbcfe6af5f5abf","unresolved":true,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def bind(self, context, deployable):"},{"line_number":220,"context_line":"        self._allocate_attach_handle(context, deployable)"},{"line_number":221,"context_line":"        self.deployable_id \u003d deployable.id"},{"line_number":222,"context_line":"        self.save(context)"},{"line_number":223,"context_line":"        # ARQ state changes get committed here"},{"line_number":224,"context_line":"        self.update_check_state(context, constants.ARQ_BOUND)"},{"line_number":225,"context_line":"        LOG.info(\u0027Update ARQ %s state to \"Bound\" successfully.\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d4a26461_4a7ebd62","line":222,"range":{"start_line":221,"start_character":0,"end_line":222,"end_character":26},"updated":"2022-01-13 00:45:53.000000000","message":"We should ensure the target verion is \"1.2\", otherwise it will be rejected.","commit_id":"1d0ddbef996205fe4d85961329486948b4dc0e70"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"2fc063a6a339fa27e6508178f3eac96190358a92","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def bind(self, context, deployable):"},{"line_number":220,"context_line":"        self._allocate_attach_handle(context, deployable)"},{"line_number":221,"context_line":"        self.deployable_id \u003d deployable.id"},{"line_number":222,"context_line":"        self.save(context)"},{"line_number":223,"context_line":"        # ARQ state changes get committed here"},{"line_number":224,"context_line":"        self.update_check_state(context, constants.ARQ_BOUND)"},{"line_number":225,"context_line":"        LOG.info(\u0027Update ARQ %s state to \"Bound\" successfully.\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c13ab4f9_39572e47","line":222,"range":{"start_line":221,"start_character":0,"end_line":222,"end_character":26},"in_reply_to":"d4a26461_4a7ebd62","updated":"2022-01-15 11:56:07.000000000","message":"Done","commit_id":"1d0ddbef996205fe4d85961329486948b4dc0e70"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"b983e1c5d151a1683850b2cb3109c80cf3f33e38","unresolved":true,"context_lines":[{"line_number":46,"context_line":"       or if the ARQ version changes."},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":"    # Version 1.0: Initial version"},{"line_number":49,"context_line":"    # 1.1: v2 API and Nova integration"},{"line_number":50,"context_line":"    # 1.2: Add deployable_id"},{"line_number":51,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"27eeb5cc_2071ad4d","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":38},"updated":"2022-01-19 08:54:43.000000000","message":"With v1.1 there is a big change of the fields [1] (after [1] there is also have some changes, lack of some parameters compared with [1] from now), it\u0027s better to have a judgement in obj_make_compatible(), may this need to add a TODO to record.\n\n[1]https://review.opendev.org/c/openstack/cyborg/+/670468","commit_id":"a12a8ff97d20d127e731543509e5924f974e758b"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"ce042b677429695ae29452aad1630d40127cbaa2","unresolved":true,"context_lines":[{"line_number":46,"context_line":"       or if the ARQ version changes."},{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":"    # Version 1.0: Initial version"},{"line_number":49,"context_line":"    # 1.1: v2 API and Nova integration"},{"line_number":50,"context_line":"    # 1.2: Add deployable_id"},{"line_number":51,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2d24b3a8_9460dca6","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":38},"in_reply_to":"27eeb5cc_2071ad4d","updated":"2022-01-19 23:58:34.000000000","message":"Add \u0027TODO\u0027 and will implement it later.","commit_id":"a12a8ff97d20d127e731543509e5924f974e758b"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"e0c4623bf9f32a56e6b4cb601bb34d62547cf063","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        \u0027deployable_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":71,"context_line":"    }"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":74,"context_line":"        super(ExtARQ, self).obj_make_compatible("},{"line_number":75,"context_line":"            primitive, target_version)"},{"line_number":76,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":4,"id":"cc3cb38a_cb6a9f37","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":27},"updated":"2022-01-19 08:44:53.000000000","message":"This is function lack of some unit tests to cover.","commit_id":"a12a8ff97d20d127e731543509e5924f974e758b"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"ce042b677429695ae29452aad1630d40127cbaa2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \u0027deployable_id\u0027: object_fields.IntegerField(nullable\u003dTrue),"},{"line_number":71,"context_line":"    }"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":74,"context_line":"        super(ExtARQ, self).obj_make_compatible("},{"line_number":75,"context_line":"            primitive, target_version)"},{"line_number":76,"context_line":"        target_version \u003d versionutils.convert_version_to_tuple(target_version)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7125cab1_53ef6da0","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":27},"in_reply_to":"cc3cb38a_cb6a9f37","updated":"2022-01-19 23:58:34.000000000","message":"Done","commit_id":"a12a8ff97d20d127e731543509e5924f974e758b"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"37412c390e3a7d91fbc6d3982359057466e41318","unresolved":true,"context_lines":[{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":"    # Version 1.0: Initial version"},{"line_number":49,"context_line":"    # 1.1: v2 API and Nova integration"},{"line_number":50,"context_line":"    # 1.2: Add deployable_id"},{"line_number":51,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    dbapi \u003d dbapi.get_instance()"}],"source_content_type":"text/x-python","patch_set":6,"id":"f2ebcd39_91487ba6","line":50,"range":{"start_line":50,"start_character":11,"end_line":50,"end_character":14},"updated":"2022-01-20 06:04:07.000000000","message":"nit: Fill the value of","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e7f872fc107bbab3fe870bd542d8e903b3b0ea2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \"\"\""},{"line_number":48,"context_line":"    # Version 1.0: Initial version"},{"line_number":49,"context_line":"    # 1.1: v2 API and Nova integration"},{"line_number":50,"context_line":"    # 1.2: Add deployable_id"},{"line_number":51,"context_line":"    VERSION \u003d \u00271.2\u0027"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    dbapi \u003d dbapi.get_instance()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7e4d421e_d55d5c4c","line":50,"range":{"start_line":50,"start_character":11,"end_line":50,"end_character":14},"in_reply_to":"f2ebcd39_91487ba6","updated":"2022-01-20 10:33:31.000000000","message":"Done","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"}],"cyborg/tests/unit/objects/test_extarq.py":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"37412c390e3a7d91fbc6d3982359057466e41318","unresolved":true,"context_lines":[{"line_number":175,"context_line":"            instance_uuid,"},{"line_number":176,"context_line":"            [(obj_extarq.arq.uuid, constants.ARQ_BIND_STATUS_FINISH)])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        self.assertEqual(obj_extarq.deployable_id, fake_dep.id)"},{"line_number":179,"context_line":"        mock_save.assert_called_once()"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @mock.patch(\u0027cyborg.objects.extarq.ext_arq_job.ExtARQJobMixin.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"5c249c68_be362222","line":178,"range":{"start_line":178,"start_character":25,"end_line":178,"end_character":62},"updated":"2022-01-20 06:04:07.000000000","message":"this is invalid, both them are null in the test data.","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e7f872fc107bbab3fe870bd542d8e903b3b0ea2","unresolved":true,"context_lines":[{"line_number":175,"context_line":"            instance_uuid,"},{"line_number":176,"context_line":"            [(obj_extarq.arq.uuid, constants.ARQ_BIND_STATUS_FINISH)])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        self.assertEqual(obj_extarq.deployable_id, fake_dep.id)"},{"line_number":179,"context_line":"        mock_save.assert_called_once()"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @mock.patch(\u0027cyborg.objects.extarq.ext_arq_job.ExtARQJobMixin.\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bca614d4_bab2e9be","line":178,"range":{"start_line":178,"start_character":25,"end_line":178,"end_character":62},"in_reply_to":"5c249c68_be362222","updated":"2022-01-20 10:33:31.000000000","message":"I don\u0027t think so.  Both of them is 1.","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"0cbc6f5e290dcd1eadd46262772c66df5fb487b0","unresolved":true,"context_lines":[{"line_number":140,"context_line":"        # bound_extarq \u003d copy.deepcopy(obj_extarq)"},{"line_number":141,"context_line":"        # bound_extarq.arq.state \u003d constants.ARQ_BOUND"},{"line_number":142,"context_line":"        # mock_get.side_effect \u003d [obj_extarq, bound_extarq]"},{"line_number":143,"context_line":"        mock_save.return_value \u003d self.fake_db_extarqs[0]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        mock_get.side_effect \u003d [obj_extarq] * 2"},{"line_number":146,"context_line":"        mock_list.return_value \u003d [obj_extarq]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f729768_1cae82d0","line":143,"range":{"start_line":143,"start_character":33,"end_line":143,"end_character":56},"updated":"2022-01-21 02:16:56.000000000","message":"this obj doesnot contain deployable_id, which is confused me on last PS.","commit_id":"41c6cead51a360d26f12a1a024cf61ab3af7a850"}],"releasenotes/notes/bug-1956406-fix_null_deployable_id-9a4e945c8a4adc50.yaml":[{"author":{"_account_id":31412,"name":"Wenping Song","email":"songwenping@inspur.com","username":"songwenping"},"change_message_id":"37412c390e3a7d91fbc6d3982359057466e41318","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix the error that the ``deployable_id`` field in the"},{"line_number":5,"context_line":"    ``extended_accelerator_requests`` table is always null, so that it can"},{"line_number":6,"context_line":"    be displayed in the arq API in future. `Bug 1956406`_"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    .. _Bug 1956406: https://bugs.launchpad.net/openstack-cyborg/+bug/1956406"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"91363940_5e0e6f81","line":6,"range":{"start_line":5,"start_character":68,"end_line":6,"end_character":41},"updated":"2022-01-20 06:04:07.000000000","message":"we can display deployable uuid in the arq.\nfrom these lines code[1], the deployable_id is transformed to deployable_uuid: https://review.opendev.org/plugins/gitiles/openstack/cyborg/+/refs/heads/master/cyborg/objects/ext_arq.py#267 -280","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"},{"author":{"_account_id":23950,"name":"Eric Xie","email":"eric_xiett@163.com","username":"ericxie"},"change_message_id":"4e7f872fc107bbab3fe870bd542d8e903b3b0ea2","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix the error that the ``deployable_id`` field in the"},{"line_number":5,"context_line":"    ``extended_accelerator_requests`` table is always null, so that it can"},{"line_number":6,"context_line":"    be displayed in the arq API in future. `Bug 1956406`_"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    .. _Bug 1956406: https://bugs.launchpad.net/openstack-cyborg/+bug/1956406"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"588875ba_1d8fd3d5","line":6,"range":{"start_line":5,"start_character":68,"end_line":6,"end_character":41},"in_reply_to":"91363940_5e0e6f81","updated":"2022-01-20 10:33:31.000000000","message":"I don\u0027t think so, the above codes is getting uuid by id.","commit_id":"9f87a3d381f79f12a197ef34786a27638140e93e"}]}
