)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"2df1927598909a6a0c1b81e499bfd56b6b024dfb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Reasons:"},{"line_number":10,"context_line":"- In absence of exception handling code, instance status used to be"},{"line_number":11,"context_line":"  always in BUILD state, even if heat code has error\u0027d out."},{"line_number":12,"context_line":"- status \"CREATE_FAILED\" of heat stack should also be candidate"},{"line_number":13,"context_line":"  of code failure and instead of executing next code,"},{"line_number":14,"context_line":"  exception should be raised for this status."},{"line_number":15,"context_line":"- Resource state should also be verified before keeping their IDs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATn%2F8ny8%3D","line":12,"updated":"2013-12-24 07:26:59.000000000","message":"status and action","commit_id":"ff9e7cfd49025c18809ffc1aff0d127f962c9881"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"2df1927598909a6a0c1b81e499bfd56b6b024dfb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Changes:"},{"line_number":18,"context_line":"- Exception handling code added, which would set instance status"},{"line_number":19,"context_line":"  to ERROR for any failures."},{"line_number":20,"context_line":"- If heat stack creation results in \"CREATE FAILED\" state,"},{"line_number":21,"context_line":"  an exception would be raise."},{"line_number":22,"context_line":"- Resource state has been verified and upon in-correct state,"},{"line_number":23,"context_line":"  would raise exception."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATn%2F8nyQ%3D","line":20,"updated":"2013-12-24 07:26:59.000000000","message":"if heat stack action is CREATE and status CREATE_FAILED, since you\u0027re examine both attributes.","commit_id":"ff9e7cfd49025c18809ffc1aff0d127f962c9881"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"e51d55d999480c36e18f261c91e51e88412f0331","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Changes:"},{"line_number":18,"context_line":"- Exception handling code added, which would set instance status"},{"line_number":19,"context_line":"  to ERROR for any failures."},{"line_number":20,"context_line":"- Added HEAT_STACK_SUCCESSFULL_STATUSES \u0026 HEAT_RESOURCE_SUCCESSFULL_STATES"},{"line_number":21,"context_line":"- Heat Stack status is verified with HEAT_STACK_SUCCESSFULL_STATUSES,"},{"line_number":22,"context_line":"  and raises exception on failure."},{"line_number":23,"context_line":"- Heat Resource state is verified with HEAT_RESOURCE_SUCCESSFULL_STATES,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"AAAAUH%2F%2BoU8%3D","line":20,"updated":"2014-01-23 18:29:56.000000000","message":"It\u0027s SUCCESSFUL, not SUCCESSFULL","commit_id":"9c443e186c3b95b179654744cb8a5fce419f7448"}],"trove/taskmanager/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"168382c3bf5303e41589d1c33124cc6a9badebd6","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rTg%3D","line":370,"updated":"2013-12-23 11:24:21.000000000","message":"Also you should cover poll until with try:except, similar as for trove instance status below.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aa3fe292094e80a3e5ca90a1be63645819f2d9bd","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rOc%3D","line":370,"in_reply_to":"AAAATn%2F8rQ0%3D","updated":"2013-12-23 11:48:45.000000000","message":"https://github.com/openstack/trove/blob/master/trove/taskmanager/models.py#L232","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"f19823c7df8acd12668aa30bd71852cbef6cec7d","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rQ0%3D","line":370,"in_reply_to":"AAAATn%2F8rTg%3D","updated":"2013-12-23 11:34:55.000000000","message":"did not get this.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4539008269d40bb66b6446b8e0a7be7894eb648e","unresolved":false,"context_lines":[{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rMc%3D","line":372,"updated":"2013-12-23 11:53:40.000000000","message":"there are several \"bad\" statuses, please mention them all,\nand would be nice to use stack_status in [..., ..., ...]","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"168382c3bf5303e41589d1c33124cc6a9badebd6","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"},{"line_number":376,"context_line":"            server \u003d novaclient.servers.get(resource.physical_resource_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rT8%3D","line":373,"updated":"2013-12-23 11:24:21.000000000","message":"raise TroveError with correct message","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aa3fe292094e80a3e5ca90a1be63645819f2d9bd","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"},{"line_number":376,"context_line":"            server \u003d novaclient.servers.get(resource.physical_resource_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rOA%3D","line":373,"in_reply_to":"AAAATn%2F8rRg%3D","updated":"2013-12-23 11:48:45.000000000","message":"But exception should not be common (Exception, BaseException)\nSince Trove follows common exception hierarchy - please avoid using Exception, instead use TroveError.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"f19823c7df8acd12668aa30bd71852cbef6cec7d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise Exception"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"},{"line_number":376,"context_line":"            server \u003d novaclient.servers.get(resource.physical_resource_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rRg%3D","line":373,"in_reply_to":"AAAATn%2F8rT8%3D","updated":"2013-12-23 11:34:55.000000000","message":"The message is take care by exception handling block at last in exception catching part.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"168382c3bf5303e41589d1c33124cc6a9badebd6","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        except UnicodeEncodeError:"},{"line_number":391,"context_line":"            LOG.error(_(\"heat template ascii encode issue\"))"},{"line_number":392,"context_line":"            raise TroveError(\"heat template ascii encode issue\")"},{"line_number":393,"context_line":"        except Exception as e:"},{"line_number":394,"context_line":"            msg \u003d \"Error creating stack using heat for instance %s\" % self.id"},{"line_number":395,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":396,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rTs%3D","line":393,"updated":"2013-12-23 11:24:21.000000000","message":"TroveError","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aa3fe292094e80a3e5ca90a1be63645819f2d9bd","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        except UnicodeEncodeError:"},{"line_number":391,"context_line":"            LOG.error(_(\"heat template ascii encode issue\"))"},{"line_number":392,"context_line":"            raise TroveError(\"heat template ascii encode issue\")"},{"line_number":393,"context_line":"        except Exception as e:"},{"line_number":394,"context_line":"            msg \u003d \"Error creating stack using heat for instance %s\" % self.id"},{"line_number":395,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":396,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rNo%3D","line":393,"in_reply_to":"AAAATn%2F8rRE%3D","updated":"2013-12-23 11:48:45.000000000","message":"Heat API doesn\u0027t raises any kind of exception inherited from Exception. Pease avoid using Exception, instead use TroveError.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"f19823c7df8acd12668aa30bd71852cbef6cec7d","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        except UnicodeEncodeError:"},{"line_number":391,"context_line":"            LOG.error(_(\"heat template ascii encode issue\"))"},{"line_number":392,"context_line":"            raise TroveError(\"heat template ascii encode issue\")"},{"line_number":393,"context_line":"        except Exception as e:"},{"line_number":394,"context_line":"            msg \u003d \"Error creating stack using heat for instance %s\" % self.id"},{"line_number":395,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":396,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8rRE%3D","line":393,"in_reply_to":"AAAATn%2F8rTs%3D","updated":"2013-12-23 11:34:55.000000000","message":"There could be any other exception also apart from TroveError, so this block handles all the exception occurring in the way.","commit_id":"7da1d79c1fbc072133cea79b9446154d21b181c7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        template_obj \u003d template.load_heat_template(datastore_manager)"},{"line_number":349,"context_line":"        heat_template_unicode \u003d template_obj.render()"},{"line_number":350,"context_line":"        try:"},{"line_number":351,"context_line":"            heat_template \u003d heat_template_unicode.encode(\u0027ascii\u0027)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"            parameters \u003d {\"Flavor\": flavor[\"name\"],"},{"line_number":354,"context_line":"                          \"VolumeSize\": volume_size,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q7o%3D","line":351,"updated":"2013-12-23 13:05:06.000000000","message":"except UnicodeEncodeError as e:","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                                 template\u003dheat_template,"},{"line_number":362,"context_line":"                                 parameters\u003dparameters)"},{"line_number":363,"context_line":"            stack \u003d client.stacks.get(stack_name)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"            utils.poll_until("},{"line_number":366,"context_line":"                lambda: client.stacks.get(stack_name),"},{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q8U%3D","line":364,"updated":"2013-12-23 13:05:06.000000000","message":"try:","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00b1328fdb1b1ac6ed8459f64eb248229e7ce08","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            utils.poll_until("},{"line_number":366,"context_line":"                lambda: client.stacks.get(stack_name),"},{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q2I%3D","line":368,"updated":"2013-12-23 13:18:07.000000000","message":"would be better to define stack statuses in one place - would be easier to re-use and fix it.","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":366,"context_line":"                lambda: client.stacks.get(stack_name),"},{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q7Y%3D","line":369,"updated":"2013-12-23 13:05:06.000000000","message":"sleep_time\u003dUSAGE_SLEEP_TIME","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                lambda stack: stack.stack_status in [\u0027CREATE_COMPLETE\u0027,"},{"line_number":368,"context_line":"                                                     \u0027CREATE_FAILED\u0027],"},{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise TroveError(\"Heat Stack Create Failed.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q8Q%3D","line":370,"updated":"2013-12-23 13:05:06.000000000","message":"except PollTimeOut as e:","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":369,"context_line":"                sleep_time\u003d2,"},{"line_number":370,"context_line":"                time_out\u003dHEAT_TIME_OUT)"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if client.stacks.get(stack_name).stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":373,"context_line":"                raise TroveError(\"Heat Stack Create Failed.\")"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q6k%3D","line":372,"updated":"2013-12-23 13:05:06.000000000","message":"stack \u003d client.stacks.get(stack_name)\n      if stack.stack_status in [\u0027CREATE_FAILED\u0027]:\n            msg \u003d \"Error creating stack using heat for instance %s\" % self.id\n            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)\n            raise TroveError(\"Heat Stack Create Failed.\")","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"fbb5b9fbb9ce83377e19b22755e05582558188ba","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            msg \u003d \"Timeout for creating stack for instance %s\" % self.id"},{"line_number":407,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":408,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"},{"line_number":409,"context_line":"            self._log_and_raise(e, msg, err)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":412,"context_line":"        return server, volume_info"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8q58%3D","line":409,"updated":"2013-12-23 13:05:06.000000000","message":"in this section would be better to leave except HTTPNotFound","commit_id":"c3a4efb18badceb5c6c6f6b3fceb7e964bbb19f4"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aae076d91b1ca09f4d5ea470616c437fc25368fd","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            heat_template_unicode \u003d template_obj.render()"},{"line_number":351,"context_line":"            try:"},{"line_number":352,"context_line":"                heat_template \u003d heat_template_unicode.encode(\u0027ascii\u0027)"},{"line_number":353,"context_line":"            except UnicodeEncodeError as e:"},{"line_number":354,"context_line":"                LOG.error(_(\"heat template ascii encode issue\"))"},{"line_number":355,"context_line":"                raise TroveError(\"heat template ascii encode issue\")"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8pmk%3D","line":353,"updated":"2013-12-23 18:02:07.000000000","message":"no need in \"as e\".","commit_id":"3757550fd464f8889ea1c1222b02bf9cc88d3522"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aae076d91b1ca09f4d5ea470616c437fc25368fd","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                raise TroveError(\"Timeout occured in tracking stack status\")"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"            stack \u003d client.stacks.get(stack_name)"},{"line_number":380,"context_line":"            if stack.action \u003d\u003d \u0027CREATE\u0027 or stack.stack_status \u003d\u003d \u0027CREATE_FAILED\u0027:"},{"line_number":381,"context_line":"                raise TroveError(\"Heat Stack Create Failed.\")"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8pl4%3D","line":380,"updated":"2013-12-23 18:02:07.000000000","message":"if not (stack. action, stack.stack_status) in (\u0027CREATE\u0027, \u0027CREATE_FAILED\u0027)","commit_id":"3757550fd464f8889ea1c1222b02bf9cc88d3522"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aae076d91b1ca09f4d5ea470616c437fc25368fd","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                volume_info \u003d self._build_volume_info(volume_size)"},{"line_number":396,"context_line":"                self.update_db(compute_instance_id\u003dserver.id)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"         except Exception as e:"},{"line_number":399,"context_line":"            msg \u003d \"Error during createing stack for instance %s\" % self.id"},{"line_number":400,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":401,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8plg%3D","line":398,"updated":"2013-12-23 18:02:07.000000000","message":"(TroveError, HTTPNotFound) as e","commit_id":"3757550fd464f8889ea1c1222b02bf9cc88d3522"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"eeb773aff9d5af69b2d793f31c2348ccb386418c","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                raise TroveError(\"Heat Stack Create Failed.\")"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"},{"line_number":385,"context_line":"            server \u003d novaclient.servers.get(resource.physical_resource_id)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            if CONF.trove_volume_support:"},{"line_number":388,"context_line":"                cinderclient \u003d create_cinder_client(self.context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8peo%3D","line":385,"updated":"2013-12-23 18:29:26.000000000","message":"Would be better to examine resource state here, because stack status do not give an insurance that all resources are fine. And if resource state is not (\u0027CREATE\u0027, \u0027COMPLETE\u0027) then we taskmanager should raise TroveError","commit_id":"cd28b04d4a7dd7e2fe3308ebc1ff6cd0f6534247"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"eeb773aff9d5af69b2d793f31c2348ccb386418c","unresolved":false,"context_lines":[{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            if CONF.trove_volume_support:"},{"line_number":388,"context_line":"                cinderclient \u003d create_cinder_client(self.context)"},{"line_number":389,"context_line":"                resource \u003d client.resources.get(stack.id, \u0027DataVolume\u0027)"},{"line_number":390,"context_line":"                volume \u003d cinderclient.volumes.get("},{"line_number":391,"context_line":"                    resource.physical_resource_id)"},{"line_number":392,"context_line":"                volume_info \u003d self._build_volume(volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8peg%3D","line":389,"updated":"2013-12-23 18:29:26.000000000","message":"same here","commit_id":"cd28b04d4a7dd7e2fe3308ebc1ff6cd0f6534247"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"5c1945b4f2dd23c1b0f021f80bd5203c8fb268e7","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            if CONF.trove_volume_support:"},{"line_number":390,"context_line":"                cinderclient \u003d create_cinder_client(self.context)"},{"line_number":391,"context_line":"                resource \u003d client.resources.get(stack.id, \u0027DataVolume\u0027)"},{"line_number":392,"context_line":"                if resource.state not in (\u0027CREATE\u0027, \u0027COMPLETE\u0027):"},{"line_number":393,"context_line":"                    raise TroveError(\"Heat Resource Provisioning Failed.\")"},{"line_number":394,"context_line":"                volume \u003d cinderclient.volumes.get("},{"line_number":395,"context_line":"                    resource.physical_resource_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F8pAs%3D","line":392,"updated":"2013-12-23 21:10:16.000000000","message":"seems like you used a lot (\u0027CREATE\u0027, \u0027COMPLETE\u0027), it would be better to make its own variable with module-accessable scope,\nsomething like \nHEAT_SUCCESSFUL_STATE \u003d (\u0027CREATE\u0027, \u0027COMPLETE\u0027)\nif we would need to fix - we would need to update only in one place.","commit_id":"4921e872ea74c83cd9500c78e1a6566640b9944d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"dc333702fbbe49d2ed620edca238cf2781f73de6","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            stack \u003d client.stacks.get(stack_name)"},{"line_number":381,"context_line":"            if ((stack.action, stack.stack_status)"},{"line_number":382,"context_line":"                    not in (\u0027CREATE\u0027, \u0027CREATE_FAILED\u0027)):"},{"line_number":383,"context_line":"                raise TroveError(\"Heat Stack Create Failed.\")"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"            resource \u003d client.resources.get(stack.id, \u0027BaseInstance\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F8n0A%3D","line":382,"updated":"2013-12-24 07:12:53.000000000","message":"seems like this one also deserves for it\u0027s own variable with module-accessable scope.","commit_id":"ff9e7cfd49025c18809ffc1aff0d127f962c9881"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"9bfe40ef224df517f6a002cdf2183660330549c9","unresolved":false,"context_lines":[{"line_number":403,"context_line":"                self.update_db(compute_instance_id\u003dserver.id)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        except (TroveError, HTTPNotFound) as e:"},{"line_number":406,"context_line":"            msg \u003d \"Error during createing stack for instance %s\" % self.id"},{"line_number":407,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":408,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"},{"line_number":409,"context_line":"            self._log_and_raise(e, msg, err)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAT3%2F%2Fqc4%3D","line":406,"updated":"2014-01-03 21:36:16.000000000","message":"(sp) \"creating\"","commit_id":"944867c3c8c578bd0eb90c573b42cde4de33f160"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8b7de5ac0bc54c138fa15158be8610be369fc1bb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"HEAT_TIME_OUT \u003d CONF.heat_time_out  # seconds."},{"line_number":58,"context_line":"USAGE_SLEEP_TIME \u003d CONF.usage_sleep_time  # seconds."},{"line_number":59,"context_line":"USAGE_TIMEOUT \u003d CONF.usage_timeout  # seconds."},{"line_number":60,"context_line":"HEAT_STACK_SUCCESSFULL_STATUS \u003d (\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027)"},{"line_number":61,"context_line":"HEAT_RESOURCE_SUCCESSFULL_STATE \u003d (\u0027CREATE\u0027, \u0027COMPLETE\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"use_nova_server_volume \u003d CONF.use_nova_server_volume"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FGRQ%3D","line":60,"updated":"2014-01-17 13:37:01.000000000","message":"HEAT_STACK_SUCCESSFULL_STATUSES \u003d [(\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027), ]\nIt look more meaningful because there so need to compare two values with \"in\" statement, \"in\" is more accepable for clarifying if item in list or not.","commit_id":"9a8fc5bd563b27c46a95a673fa652ed086ef1875"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8b7de5ac0bc54c138fa15158be8610be369fc1bb","unresolved":false,"context_lines":[{"line_number":58,"context_line":"USAGE_SLEEP_TIME \u003d CONF.usage_sleep_time  # seconds."},{"line_number":59,"context_line":"USAGE_TIMEOUT \u003d CONF.usage_timeout  # seconds."},{"line_number":60,"context_line":"HEAT_STACK_SUCCESSFULL_STATUS \u003d (\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027)"},{"line_number":61,"context_line":"HEAT_RESOURCE_SUCCESSFULL_STATE \u003d (\u0027CREATE\u0027, \u0027COMPLETE\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"use_nova_server_volume \u003d CONF.use_nova_server_volume"},{"line_number":64,"context_line":"use_heat \u003d CONF.use_heat"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FGRI%3D","line":61,"updated":"2014-01-17 13:37:01.000000000","message":"HEAT_RESOURCE_SUCCESSFULL_STATES \u003d [(\u0027CREATE\u0027, \u0027COMPLETE\u0027), ]\nIt look more meaningful because there so need to compare two values with \"in\" statement, \"in\" is more accepable for clarifying if item in list or not.","commit_id":"9a8fc5bd563b27c46a95a673fa652ed086ef1875"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8b7de5ac0bc54c138fa15158be8610be369fc1bb","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        except (TroveError, HTTPNotFound) as e:"},{"line_number":401,"context_line":"            msg \u003d \"Error during creating stack for instance %s\" % self.id"},{"line_number":402,"context_line":"            LOG.debug(_(\"end _create_server_volume_heat for id: %s\") % self.id)"},{"line_number":403,"context_line":"            err \u003d inst_models.InstanceTasks.BUILDING_ERROR_SERVER"},{"line_number":404,"context_line":"            self._log_and_raise(e, msg, err)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2FGP0%3D","line":402,"updated":"2014-01-17 13:37:01.000000000","message":"LOG.debug(msg) is more meaningful because given message is more acceptable for successful execution.","commit_id":"9a8fc5bd563b27c46a95a673fa652ed086ef1875"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a9ebe5a81c2a2fdaf95f233c16a0f98f0660b353","unresolved":false,"context_lines":[{"line_number":57,"context_line":"HEAT_TIME_OUT \u003d CONF.heat_time_out  # seconds."},{"line_number":58,"context_line":"USAGE_SLEEP_TIME \u003d CONF.usage_sleep_time  # seconds."},{"line_number":59,"context_line":"USAGE_TIMEOUT \u003d CONF.usage_timeout  # seconds."},{"line_number":60,"context_line":"HEAT_STACK_SUCCESSFULL_STATUS \u003d [(\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027)]"},{"line_number":61,"context_line":"HEAT_RESOURCE_SUCCESSFULL_STATE \u003d [(\u0027CREATE\u0027, \u0027COMPLETE\u0027)]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"use_nova_server_volume \u003d CONF.use_nova_server_volume"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FGGk%3D","line":60,"updated":"2014-01-17 14:04:36.000000000","message":"HEAT_STACK_SUCCESSFULL_STATUSES","commit_id":"6cd84ded1a9bb354ee0a21e927bd7902f6fb2f88"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a9ebe5a81c2a2fdaf95f233c16a0f98f0660b353","unresolved":false,"context_lines":[{"line_number":58,"context_line":"USAGE_SLEEP_TIME \u003d CONF.usage_sleep_time  # seconds."},{"line_number":59,"context_line":"USAGE_TIMEOUT \u003d CONF.usage_timeout  # seconds."},{"line_number":60,"context_line":"HEAT_STACK_SUCCESSFULL_STATUS \u003d [(\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027)]"},{"line_number":61,"context_line":"HEAT_RESOURCE_SUCCESSFULL_STATE \u003d [(\u0027CREATE\u0027, \u0027COMPLETE\u0027)]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"use_nova_server_volume \u003d CONF.use_nova_server_volume"},{"line_number":64,"context_line":"use_heat \u003d CONF.use_heat"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FGGc%3D","line":61,"updated":"2014-01-17 14:04:36.000000000","message":"HEAT_RESOURCE_SUCCESSFULL_STATES","commit_id":"6cd84ded1a9bb354ee0a21e927bd7902f6fb2f88"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b0c19884adf1bcab88590ee3b7c23951b9052235","unresolved":false,"context_lines":[{"line_number":48,"context_line":"from trove.openstack.common import timeutils"},{"line_number":49,"context_line":"import trove.common.remote as remote"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"from webob.exc import HTTPNotFound"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":54,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUH%2F%2B9wA%3D","line":51,"updated":"2014-01-20 10:36:11.000000000","message":"this one should be heatclient.exception.NotFound\n\nhttps://github.com/openstack/python-heatclient/blob/master/heatclient/openstack/common/apiclient/exceptions.py","commit_id":"f40df1cd2c8a46382baa99f0422fe2f5dc9be462"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"6417d7ce866a3c283b5c81a7ae4a71f8a67f5d6d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import traceback"},{"line_number":16,"context_line":"import os.path"},{"line_number":17,"context_line":"from heatclient import exceptions as heat_exceptions"},{"line_number":18,"context_line":"from cinderclient import exceptions as cinder_exceptions"},{"line_number":19,"context_line":"from eventlet import greenthread"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUH%2F%2B9kE%3D","line":16,"updated":"2014-01-20 11:25:04.000000000","message":"blank line","commit_id":"9305d75b22eba4efb1cc692642bac80fcee384a9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"cd2f9ef6ae30efc7aac906a7917e19f7eae1f020","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from cinderclient import exceptions as cinder_exceptions"},{"line_number":20,"context_line":"from eventlet import greenthread"},{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":"from swiftclient.client import ClientException"},{"line_number":23,"context_line":"from trove.backup import models as bkup_models"},{"line_number":24,"context_line":"from trove.common import cfg"},{"line_number":25,"context_line":"from trove.common import template"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUH%2F%2B9aQ%3D","line":22,"updated":"2014-01-20 11:56:07.000000000","message":"If you making such changes you need to follow next rule:\n\nsystem imports -\u003e project imports -\u003e side imports\n\nOtherwise no need to move L#22","commit_id":"4b07fc4828583cdcf988efca7e51577c2bbb7076"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"2d927a77ae044ddd5598cc9dcfc413fd3c14e12a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import traceback"},{"line_number":16,"context_line":"import os.path"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from heatclient.openstack.common.apiclient import exceptions as heat_exceptions"},{"line_number":19,"context_line":"from cinderclient import exceptions as cinder_exceptions"},{"line_number":20,"context_line":"from eventlet import greenthread"},{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAUH%2F%2B83o%3D","line":18,"updated":"2014-01-20 13:53:45.000000000","message":"from heatclient import exc as heat_exceptions","commit_id":"ddc6ab61ba25f4db9a185a0df489dc4871206497"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"e51d55d999480c36e18f261c91e51e88412f0331","unresolved":false,"context_lines":[{"line_number":60,"context_line":"USAGE_SLEEP_TIME \u003d CONF.usage_sleep_time  # seconds."},{"line_number":61,"context_line":"USAGE_TIMEOUT \u003d CONF.usage_timeout  # seconds."},{"line_number":62,"context_line":"HEAT_STACK_SUCCESSFULL_STATUSES \u003d [(\u0027CREATE\u0027, \u0027CREATE_COMPLETE\u0027)]"},{"line_number":63,"context_line":"HEAT_RESOURCE_SUCCESSFULL_STATES \u003d [(\u0027CREATE\u0027, \u0027COMPLETE\u0027)]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"use_nova_server_volume \u003d CONF.use_nova_server_volume"},{"line_number":66,"context_line":"use_heat \u003d CONF.use_heat"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2BoUw%3D","line":63,"updated":"2014-01-23 18:29:56.000000000","message":"It\u0027s SUCCESSFUL, not SUCCESSFULL","commit_id":"9c443e186c3b95b179654744cb8a5fce419f7448"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"ec77f265af0855a38925f10dfeb210e3a6001cbf","unresolved":false,"context_lines":[{"line_number":351,"context_line":"            heat_template_unicode \u003d template_obj.render("},{"line_number":352,"context_line":"                volume_support\u003dCONF.trove_volume_support)"},{"line_number":353,"context_line":"            try:"},{"line_number":354,"context_line":"                heat_template \u003d heat_template_unicode.encode(\u0027ascii\u0027)"},{"line_number":355,"context_line":"            except UnicodeEncodeError:"},{"line_number":356,"context_line":"                LOG.error(_(\"heat template ascii encode issue\"))"},{"line_number":357,"context_line":"                raise TroveError(\"heat template ascii encode issue\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAUH%2F%2Bonw%3D","line":354,"updated":"2014-01-23 18:02:26.000000000","message":"why is this not utf8? Maybe we should log a bug for that since you didnt update it.","commit_id":"9c443e186c3b95b179654744cb8a5fce419f7448"}]}
