)]}'
{"zun/api/controllers/v1/containers.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        :param container_ident: UUID or Name of a container."},{"line_number":589,"context_line":"        \"\"\""},{"line_number":590,"context_line":"        container \u003d utils.get_container(container_ident)"},{"line_number":591,"context_line":"        check_policy_on_container(container.as_dict(), \"container:rebuild\")"},{"line_number":592,"context_line":"        utils.validate_container_state(container, \u0027rebuild\u0027)"},{"line_number":593,"context_line":"        LOG.debug(\u0027Calling compute.container_rebuild with %s\u0027,"},{"line_number":594,"context_line":"                  container.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_75677126","line":591,"range":{"start_line":591,"start_character":8,"end_line":591,"end_character":33},"updated":"2018-02-27 00:31:47.000000000","message":"In order to make this work, I guess you need to add the policy to here: https://github.com/openstack/zun/blob/master/zun/common/policies/container.py","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        :param container_ident: UUID or Name of a container."},{"line_number":589,"context_line":"        \"\"\""},{"line_number":590,"context_line":"        container \u003d utils.get_container(container_ident)"},{"line_number":591,"context_line":"        check_policy_on_container(container.as_dict(), \"container:rebuild\")"},{"line_number":592,"context_line":"        utils.validate_container_state(container, \u0027rebuild\u0027)"},{"line_number":593,"context_line":"        LOG.debug(\u0027Calling compute.container_rebuild with %s\u0027,"},{"line_number":594,"context_line":"                  container.uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_63be8066","line":591,"range":{"start_line":591,"start_character":8,"end_line":591,"end_character":33},"in_reply_to":"3fa0c359_75677126","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":23829,"name":"weikeyou","email":"wei.keyou@zte.com.cn","username":"weikeyou"},"change_message_id":"f64abdd1c5c164ec48cf62f9fe6c5c06fa822dc9","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        LOG.debug(\u0027Calling compute.container_rebuild with %s\u0027,"},{"line_number":594,"context_line":"                  container.uuid)"},{"line_number":595,"context_line":"        context \u003d pecan.request.context"},{"line_number":596,"context_line":"        network_info \u003d self._get_network_info(context, container)"},{"line_number":597,"context_line":"        vol_info \u003d self._get_vol_info(context, container)"},{"line_number":598,"context_line":"        compute_api \u003d pecan.request.compute_api"},{"line_number":599,"context_line":"        compute_api.container_rebuild(context, container,"},{"line_number":600,"context_line":"                                      network_info, vol_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f9dbf25_7007431e","line":597,"range":{"start_line":596,"start_character":8,"end_line":597,"end_character":57},"updated":"2018-03-02 07:39:01.000000000","message":"I think we can put this function into the manager.py module:\n1. The vol and network information is not used until the manager.py module use them.\n2, Other Zun processes call rebuild() from compute.api, and if so, these information will be missing.","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                neutron_api.get_neutron_port(port_id)"},{"line_number":617,"context_line":"                network \u003d neutron_api.get_neutron_network(network_id)"},{"line_number":618,"context_line":"            except exception.PortNotFound:"},{"line_number":619,"context_line":"                LOG.exception(\"The port:%s used by the source container\""},{"line_number":620,"context_line":"                              \"does not exist, can not rebuild\", port_id)"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"            except exception.NetworkNotFound:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_f5686121","line":619,"range":{"start_line":619,"start_character":70,"end_line":619,"end_character":72},"updated":"2018-02-27 00:31:47.000000000","message":"nit: space between \u0027r\u0027 and \u0027\"\u0027","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                neutron_api.get_neutron_port(port_id)"},{"line_number":617,"context_line":"                network \u003d neutron_api.get_neutron_network(network_id)"},{"line_number":618,"context_line":"            except exception.PortNotFound:"},{"line_number":619,"context_line":"                LOG.exception(\"The port:%s used by the source container\""},{"line_number":620,"context_line":"                              \"does not exist, can not rebuild\", port_id)"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"            except exception.NetworkNotFound:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_83c154e7","line":619,"range":{"start_line":619,"start_character":70,"end_line":619,"end_character":72},"in_reply_to":"3fa0c359_f5686121","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                              \"does not exist, can not rebuild\", port_id)"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"            except exception.NetworkNotFound:"},{"line_number":623,"context_line":"                LOG.exception(\"The network:%s used by the source container\""},{"line_number":624,"context_line":"                              \"does not exist, can not rebuild\", network_id)"},{"line_number":625,"context_line":"                raise"},{"line_number":626,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_95731d16","line":623,"range":{"start_line":623,"start_character":73,"end_line":623,"end_character":75},"updated":"2018-02-27 00:31:47.000000000","message":"nit: space between \u0027r\u0027 and \u0027\"\u0027","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                              \"does not exist, can not rebuild\", port_id)"},{"line_number":621,"context_line":"                raise"},{"line_number":622,"context_line":"            except exception.NetworkNotFound:"},{"line_number":623,"context_line":"                LOG.exception(\"The network:%s used by the source container\""},{"line_number":624,"context_line":"                              \"does not exist, can not rebuild\", network_id)"},{"line_number":625,"context_line":"                raise"},{"line_number":626,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_43bb3c71","line":623,"range":{"start_line":623,"start_character":73,"end_line":623,"end_character":75},"in_reply_to":"3fa0c359_95731d16","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"}],"zun/compute/api.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    def container_show(self, context, container, *args):"},{"line_number":87,"context_line":"        return self.rpcapi.container_show(context, container, *args)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def container_rebuild(self, context, container, network_info, vol_info):"},{"line_number":90,"context_line":"        return self.rpcapi.container_rebuild(context, container,"},{"line_number":91,"context_line":"                                             network_info, vol_info)"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d041b33a","line":89,"range":{"start_line":89,"start_character":8,"end_line":89,"end_character":25},"updated":"2018-02-27 00:31:47.000000000","message":"We need to call _record_action_start() as container_start did.","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"fa46ca4de43efcbf702fecb2c7a36274cfa3039e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    def container_show(self, context, container, *args):"},{"line_number":87,"context_line":"        return self.rpcapi.container_show(context, container, *args)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def container_rebuild(self, context, container, network_info, vol_info):"},{"line_number":90,"context_line":"        return self.rpcapi.container_rebuild(context, container,"},{"line_number":91,"context_line":"                                             network_info, vol_info)"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_fe36a7e7","line":89,"range":{"start_line":89,"start_character":8,"end_line":89,"end_character":25},"in_reply_to":"3fa0c359_d041b33a","updated":"2018-03-12 01:09:21.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"}],"zun/compute/manager.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        ori_status \u003d container.status"},{"line_number":525,"context_line":"        if self.driver.check_container_exist(container):"},{"line_number":526,"context_line":"            for addr in container.addresses.values():"},{"line_number":527,"context_line":"                addr[0][\u0027preserve_on_delete\u0027] \u003d True"},{"line_number":528,"context_line":"            try:"},{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_753531f6","line":527,"range":{"start_line":527,"start_character":48,"end_line":527,"end_character":52},"updated":"2018-02-27 00:31:47.000000000","message":"I guess we need to record the original value in before and restore this value after a rebuild?","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        ori_status \u003d container.status"},{"line_number":525,"context_line":"        if self.driver.check_container_exist(container):"},{"line_number":526,"context_line":"            for addr in container.addresses.values():"},{"line_number":527,"context_line":"                addr[0][\u0027preserve_on_delete\u0027] \u003d True"},{"line_number":528,"context_line":"            try:"},{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_952b1d93","line":527,"range":{"start_line":527,"start_character":20,"end_line":527,"end_character":23},"updated":"2018-02-27 00:31:47.000000000","message":"Instead of processing the first element, we should process all elements.","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        ori_status \u003d container.status"},{"line_number":525,"context_line":"        if self.driver.check_container_exist(container):"},{"line_number":526,"context_line":"            for addr in container.addresses.values():"},{"line_number":527,"context_line":"                addr[0][\u0027preserve_on_delete\u0027] \u003d True"},{"line_number":528,"context_line":"            try:"},{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_e324d0c8","line":527,"range":{"start_line":527,"start_character":48,"end_line":527,"end_character":52},"in_reply_to":"3fa0c359_753531f6","updated":"2018-03-10 07:36:23.000000000","message":"It\u0027s just a temporary assignment, and it\u0027s not written to the database, so after the rebuild, the value is still the initial value.","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        ori_status \u003d container.status"},{"line_number":525,"context_line":"        if self.driver.check_container_exist(container):"},{"line_number":526,"context_line":"            for addr in container.addresses.values():"},{"line_number":527,"context_line":"                addr[0][\u0027preserve_on_delete\u0027] \u003d True"},{"line_number":528,"context_line":"            try:"},{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_831dd474","line":527,"range":{"start_line":527,"start_character":20,"end_line":527,"end_character":23},"in_reply_to":"3fa0c359_952b1d93","updated":"2018-03-10 07:36:23.000000000","message":"We still use the original container\u0027s database records, so we don\u0027t need to deal with all the elements","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"},{"line_number":531,"context_line":"                with excutils.save_and_reraise_exception(reraise\u003dTrue):"},{"line_number":532,"context_line":"                    LOG.error(\"Rebuild container:%s failed, \""},{"line_number":533,"context_line":"                              \"reason of failure is:%s\","},{"line_number":534,"context_line":"                              container.uuid,"},{"line_number":535,"context_line":"                              six.text_type(e))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_b5dc19e1","line":532,"range":{"start_line":532,"start_character":48,"end_line":532,"end_character":50},"updated":"2018-02-27 00:31:47.000000000","message":"nit: space between \u0027:\u0027 and \u0027%\u0027","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":529,"context_line":"                self.driver.delete(context, container, True)"},{"line_number":530,"context_line":"            except Exception as e:"},{"line_number":531,"context_line":"                with excutils.save_and_reraise_exception(reraise\u003dTrue):"},{"line_number":532,"context_line":"                    LOG.error(\"Rebuild container:%s failed, \""},{"line_number":533,"context_line":"                              \"reason of failure is:%s\","},{"line_number":534,"context_line":"                              container.uuid,"},{"line_number":535,"context_line":"                              six.text_type(e))"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_0320e4af","line":532,"range":{"start_line":532,"start_character":48,"end_line":532,"end_character":50},"in_reply_to":"3fa0c359_b5dc19e1","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        except Exception as e:"},{"line_number":543,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dTrue):"},{"line_number":544,"context_line":"                LOG.error(\"Rebuild container:%s failed, \""},{"line_number":545,"context_line":"                          \"reason of failure is:%s\", container.uuid, e)"},{"line_number":546,"context_line":"        LOG.info(\"rebuild container: %s success\", created_container.uuid)"},{"line_number":547,"context_line":"        if ori_status \u003d\u003d consts.RUNNING:"},{"line_number":548,"context_line":"            self._do_container_start(context, created_container)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_95e1dd9d","line":545,"range":{"start_line":545,"start_character":47,"end_line":545,"end_character":49},"updated":"2018-02-27 00:31:47.000000000","message":"nit: space between \u0027:\u0027 and \u0027%\u0027","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        except Exception as e:"},{"line_number":543,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dTrue):"},{"line_number":544,"context_line":"                LOG.error(\"Rebuild container:%s failed, \""},{"line_number":545,"context_line":"                          \"reason of failure is:%s\", container.uuid, e)"},{"line_number":546,"context_line":"        LOG.info(\"rebuild container: %s success\", created_container.uuid)"},{"line_number":547,"context_line":"        if ori_status \u003d\u003d consts.RUNNING:"},{"line_number":548,"context_line":"            self._do_container_start(context, created_container)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_a32ed8a2","line":545,"range":{"start_line":545,"start_character":47,"end_line":545,"end_character":49},"in_reply_to":"3fa0c359_95e1dd9d","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"}],"zun/compute/rpcapi.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0a4f67df6625fed60510745175a32a53ce641b93","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                          container\u003dcontainer)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def container_rebuild(self, context, container, network_info, vol_info):"},{"line_number":79,"context_line":"        return self.rpcapi.container_rebuild(context, container,"},{"line_number":80,"context_line":"                                             network_info, vol_info)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def container_reboot(self, context, container, timeout):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_356d6902","line":79,"range":{"start_line":79,"start_character":20,"end_line":79,"end_character":26},"updated":"2018-02-27 00:31:47.000000000","message":"This should be either a _call() or _cast() ?","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"},{"author":{"_account_id":21428,"name":"JiWei","email":"17366060309@163.com","username":"WeiJi"},"change_message_id":"8f6b9afef44fc49eeef3a0a51c1c5c9f91ced159","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                          container\u003dcontainer)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def container_rebuild(self, context, container, network_info, vol_info):"},{"line_number":79,"context_line":"        return self.rpcapi.container_rebuild(context, container,"},{"line_number":80,"context_line":"                                             network_info, vol_info)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def container_reboot(self, context, container, timeout):"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_2314084e","line":79,"range":{"start_line":79,"start_character":20,"end_line":79,"end_character":26},"in_reply_to":"3fa0c359_356d6902","updated":"2018-03-10 07:36:23.000000000","message":"Done","commit_id":"c27201852b86b1769c371ea3ecdaca0c4ea1e910"}]}
