)]}'
{"heat/engine/resources/stack_resource.py":[{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"cba385628f100179b9b0705b1c918f40dc73c2b5","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import copy"},{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":35,"id":"9a80dd14_e697e438","line":16,"updated":"2015-03-17 09:26:43.000000000","message":"from oslo_serialization import jsonutils","commit_id":"5a7588930f7f4ac9823c009d43b1aa57c1a6e539"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"cba385628f100179b9b0705b1c918f40dc73c2b5","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                adopt_data[\u0027environment\u0027] \u003d child_env.user_env_as_dict()"},{"line_number":242,"context_line":"            if \u0027template\u0027 not in adopt_data:"},{"line_number":243,"context_line":"                adopt_data[\u0027template\u0027] \u003d child_template"},{"line_number":244,"context_line":"            adopt_data_str \u003d json.dumps(adopt_data)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        args \u003d {rpc_api.PARAM_TIMEOUT: timeout_mins,"},{"line_number":247,"context_line":"                rpc_api.PARAM_DISABLE_ROLLBACK: True,"}],"source_content_type":"text/x-python","patch_set":35,"id":"9a80dd14_0602386f","line":244,"updated":"2015-03-17 09:26:43.000000000","message":"And use jsonutils.dumps here.","commit_id":"5a7588930f7f4ac9823c009d43b1aa57c1a6e539"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a29917939ae150fc5ffa6966c1c6ed07c58f823d","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        if isinstance(ex, exception.HeatException):"},{"line_number":280,"context_line":"            message \u003d ex.message"},{"line_number":281,"context_line":"        local_ex \u003d copy.copy(getattr(exception, ex_type))"},{"line_number":282,"context_line":"        local_ex.msg_fmt \u003d \"%(message)s\""},{"line_number":283,"context_line":"        raise local_ex(message\u003dmessage)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a41bdd9_93391044","line":281,"updated":"2015-07-13 23:12:56.000000000","message":"This does NOT make a copy of the class! See bug 1474153 for details.","commit_id":"2c2ae1145600cc4ad972ef1a70d337a1eef1e3cd"}],"heat/engine/stack_resource.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"92c986d49fea3ae80e756367c4b2bc0251c1f627","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._engine_client \u003d None"},{"line_number":46,"context_line":"        self._nested \u003d None"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @property"},{"line_number":49,"context_line":"    def engine_client(self):"},{"line_number":50,"context_line":"        if self._engine_client is None:"},{"line_number":51,"context_line":"            self._engine_client \u003d rpc_client.EngineClient()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_b1ccb5bc","line":48,"updated":"2014-08-29 01:48:08.000000000","message":"I can\u0027t see any reason to make this a property; it\u0027s not like we need backwards compatibility with a previously-existing engine_client property.","commit_id":"abbff11a160f934e24fe28741bd23258349cc63a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"075eca05af8d319ea9438054d76f09383e719193","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def check_create_complete(self, stack_identity):"},{"line_number":206,"context_line":"        return self.nested(force_reload\u003dTrue).state \u003d\u003d ("},{"line_number":207,"context_line":"            resource.Resource.CREATE, resource.Resource.COMPLETE)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def update_with_template(self, child_template, user_params,"},{"line_number":210,"context_line":"                             timeout_mins\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_114649c0","line":207,"updated":"2014-08-29 01:53:32.000000000","message":"This is going to loop forever if the create fails. We need to raise an exception in that case.","commit_id":"abbff11a160f934e24fe28741bd23258349cc63a"},{"author":{"_account_id":10787,"name":"Michal Jastrzebski (inc0)","email":"michal.jastrzebski@intel.com","username":"inc0"},"change_message_id":"34ec3f52d402a7b35095811f9d43a2553dbdf806","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                             timeout_mins\u003dNone, adopt_data\u003dNone):"},{"line_number":191,"context_line":"        \"\"\"Create the nested stack with the given template.\"\"\""},{"line_number":192,"context_line":"        name \u003d self.physical_resource_name()"},{"line_number":193,"context_line":"        if timeout_mins is None:"},{"line_number":194,"context_line":"            timeout_mins \u003d self.stack.timeout_mins"},{"line_number":195,"context_line":"        stack_user_project_id \u003d self.stack.stack_user_project_id"},{"line_number":196,"context_line":"        parsed_template \u003d self._child_parsed_template(child_template)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_c4d96e57","line":193,"updated":"2014-12-03 16:08:16.000000000","message":"why mins not seconds? Usually timeouts are set to seconds.","commit_id":"7910ef4ec153ed410def16da88fc6b4278721808"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"808e5d3adee6e7b6e6b585971a5299eefa700923","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                             timeout_mins\u003dNone, adopt_data\u003dNone):"},{"line_number":191,"context_line":"        \"\"\"Create the nested stack with the given template.\"\"\""},{"line_number":192,"context_line":"        name \u003d self.physical_resource_name()"},{"line_number":193,"context_line":"        if timeout_mins is None:"},{"line_number":194,"context_line":"            timeout_mins \u003d self.stack.timeout_mins"},{"line_number":195,"context_line":"        stack_user_project_id \u003d self.stack.stack_user_project_id"},{"line_number":196,"context_line":"        parsed_template \u003d self._child_parsed_template(child_template)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_71607935","line":193,"in_reply_to":"5a890539_c4d96e57","updated":"2014-12-03 17:17:54.000000000","message":"All timeouts are specified in minutes, from the RPC API definition, e.g PARAM_TIMEOUT below expects minutes, so it makes sense to just consistently deal in minutes everywhere.\n\nWe could change that, but it\u0027d be a backwards incompatible change, so I\u0027m not sure it\u0027s worth it considering it\u0027s a cosmetic change.\n\nAlso, such a change would not be appropriate in this patch, as it\u0027s not logically related to this change.\n\nReally this is just some historical cruft from our AWS-ish initial implementation - I don\u0027t see fixing it as super high priority right now, but you\u0027re welcome to look into it if you wish.","commit_id":"7910ef4ec153ed410def16da88fc6b4278721808"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"d675087527b7fe9304019696d330622fac118278","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from heat.engine import template"},{"line_number":33,"context_line":"from heat.rpc import api as rpc_api"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"cfg.CONF.import_opt(\u0027error_wait_time\u0027, \u0027heat.common.config\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba7be1f8_8a1ebd0a","line":35,"updated":"2015-03-03 03:32:47.000000000","message":"seems it\u0027s not in use","commit_id":"25cda29d57f6f01fc098ad2d18b648a638ffdc65"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"cfdd19549895b774af4d8dd1dccb73547c7b49b6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from heat.engine import template"},{"line_number":33,"context_line":"from heat.rpc import api as rpc_api"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"cfg.CONF.import_opt(\u0027error_wait_time\u0027, \u0027heat.common.config\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"ba7be1f8_dd70440a","line":35,"in_reply_to":"ba7be1f8_8a1ebd0a","updated":"2015-03-04 02:21:12.000000000","message":"done, sorry missed your comment first time around.","commit_id":"25cda29d57f6f01fc098ad2d18b648a638ffdc65"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"d675087527b7fe9304019696d330622fac118278","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        stack_identity \u003d identifier.HeatIdentifier("},{"line_number":367,"context_line":"            self.context.tenant_id,"},{"line_number":368,"context_line":"            self.physical_resource_name(),"},{"line_number":369,"context_line":"            self.resource_id)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        try:"},{"line_number":372,"context_line":"            self.rpc_client().delete_stack(self.context, stack_identity)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba7be1f8_8ad95df5","line":369,"updated":"2015-03-03 03:32:47.000000000","message":"Will be good to add a public method to get the nested stack_identity.","commit_id":"25cda29d57f6f01fc098ad2d18b648a638ffdc65"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"802032433f3ed038c40fd939e4ecc4a3a9acf6d4","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import copy"},{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba7be1f8_b46834bb","line":16,"updated":"2015-03-03 11:14:26.000000000","message":"Can we just use oslo jsonutils instead of directly importing json?","commit_id":"8701f86b9519651ccd34645f2ce6b38500049627"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"2552d2ce7e0ea10421ed669a957b8b74ac7a361c","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import copy"},{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba7be1f8_003433fa","line":16,"in_reply_to":"ba7be1f8_b46834bb","updated":"2015-03-04 02:21:02.000000000","message":"Done","commit_id":"8701f86b9519651ccd34645f2ce6b38500049627"}],"heat/tests/test_stack_resource.py":[{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"d675087527b7fe9304019696d330622fac118278","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        self.nested.status \u003d \u0027IN_PROGRESS\u0027"},{"line_number":740,"context_line":"        complete \u003d getattr(self.parent_resource,"},{"line_number":741,"context_line":"                           \u0027check_%s_complete\u0027 % self.action)"},{"line_number":742,"context_line":"        self.assertIs(False, complete())"},{"line_number":743,"context_line":"        self.parent_resource.nested.assert_called_once_with("},{"line_number":744,"context_line":"            show_deleted\u003dself.show_deleted, force_reload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba7be1f8_8a75ddcc","line":742,"updated":"2015-03-03 03:32:47.000000000","message":"use assertFalse","commit_id":"25cda29d57f6f01fc098ad2d18b648a638ffdc65"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"cfdd19549895b774af4d8dd1dccb73547c7b49b6","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        self.nested.status \u003d \u0027IN_PROGRESS\u0027"},{"line_number":740,"context_line":"        complete \u003d getattr(self.parent_resource,"},{"line_number":741,"context_line":"                           \u0027check_%s_complete\u0027 % self.action)"},{"line_number":742,"context_line":"        self.assertIs(False, complete())"},{"line_number":743,"context_line":"        self.parent_resource.nested.assert_called_once_with("},{"line_number":744,"context_line":"            show_deleted\u003dself.show_deleted, force_reload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba7be1f8_bd4c70c9","line":742,"in_reply_to":"ba7be1f8_8a75ddcc","updated":"2015-03-04 02:21:12.000000000","message":"Done","commit_id":"25cda29d57f6f01fc098ad2d18b648a638ffdc65"}]}
