)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4c1f2e884bdb2b13191cc252b2f1c9fb44dd68e7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Evgeny Ivanov \u003ceivanov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-15 16:31:51 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rework create_deploy_environment Murano scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- modified list-environment scenario to make it more useful"},{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a710552_5c13a066","line":7,"updated":"2015-12-16 11:05:37.000000000","message":"Also you modified context not only scenario","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Evgeny Ivanov \u003ceivanov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-15 16:31:51 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rework create_deploy_environment Murano scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- modified list-environment scenario to make it more useful"},{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a7b0d38_2a977349","line":7,"in_reply_to":"5a710552_5c13a066","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4c1f2e884bdb2b13191cc252b2f1c9fb44dd68e7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rework create_deploy_environment Murano scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- modified list-environment scenario to make it more useful"},{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"},{"line_number":11,"context_line":"of applications to the Murano before scenario under the \u0027admin\u0027 user and"},{"line_number":12,"context_line":"do not do it in every tenant"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a710552_770d5736","line":9,"updated":"2015-12-16 11:05:37.000000000","message":"Its not modified. You add new scenario.","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Rework create_deploy_environment Murano scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- modified list-environment scenario to make it more useful"},{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"},{"line_number":11,"context_line":"of applications to the Murano before scenario under the \u0027admin\u0027 user and"},{"line_number":12,"context_line":"do not do it in every tenant"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a7b0d38_aa892328","line":9,"in_reply_to":"5a710552_770d5736","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4c1f2e884bdb2b13191cc252b2f1c9fb44dd68e7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"},{"line_number":11,"context_line":"of applications to the Murano before scenario under the \u0027admin\u0027 user and"},{"line_number":12,"context_line":"do not do it in every tenant"},{"line_number":13,"context_line":"- added additional parameter \u0027deployment_data\u0027 to the \u0027create_deploy_environment\u0027"},{"line_number":14,"context_line":"scenario that is needed for passing applications configuration"},{"line_number":15,"context_line":"(e.g instance parameters, password). This parameter is a path to json file with"},{"line_number":16,"context_line":"the list of application configurations (it will allow to set configuration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5a710552_d71e8b62","line":13,"updated":"2015-12-16 11:05:37.000000000","message":"deployment_config not deployment_data","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- rewrote \u0027murano_packages\u0027 context to have an ability to upload desired list"},{"line_number":11,"context_line":"of applications to the Murano before scenario under the \u0027admin\u0027 user and"},{"line_number":12,"context_line":"do not do it in every tenant"},{"line_number":13,"context_line":"- added additional parameter \u0027deployment_data\u0027 to the \u0027create_deploy_environment\u0027"},{"line_number":14,"context_line":"scenario that is needed for passing applications configuration"},{"line_number":15,"context_line":"(e.g instance parameters, password). This parameter is a path to json file with"},{"line_number":16,"context_line":"the list of application configurations (it will allow to set configuration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a7b0d38_ca8caf37","line":13,"in_reply_to":"5a710552_d71e8b62","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"}],"rally-jobs/rally-murano.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b7fc8030e8ad17bc1a3ad6195f863ffdd95d4731","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"  MuranoEnvironments.create_and_list_environments:"},{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1a7b0d38_f372bf48","line":2,"range":{"start_line":2,"start_character":2,"end_line":2,"end_character":20},"updated":"2015-12-25 10:59:13.000000000","message":"You forgot to leave list_environment and to ad create_and_list_environments","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"  MuranoEnvironments.create_and_list_environments:"},{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""}],"source_content_type":"text/x-yaml","patch_set":11,"id":"da6ed579_9469378e","line":2,"range":{"start_line":2,"start_character":2,"end_line":2,"end_character":20},"in_reply_to":"1a7b0d38_f372bf48","updated":"2016-01-12 15:24:07.000000000","message":"Done","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"}],"rally/plugins/openstack/context/murano/murano_packages.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        super(PackageGenerator, self).__init__(ctx)"},{"line_number":53,"context_line":"        self.murano \u003d osclients.Clients("},{"line_number":54,"context_line":"            self.context[\"admin\"][\"endpoint\"]"},{"line_number":55,"context_line":"        ).murano()"},{"line_number":56,"context_line":"        self.tmp_pckg_paths \u003d []"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Murano packages`\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_65737b16","line":55,"updated":"2015-11-25 17:10:18.000000000","message":"Its not good idea to use admin endpoint for all murano scenarios that use package context. Its better to discuss this.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c094edb1a69a03ca0a293350b3775086286bdba3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        super(PackageGenerator, self).__init__(ctx)"},{"line_number":53,"context_line":"        self.murano \u003d osclients.Clients("},{"line_number":54,"context_line":"            self.context[\"admin\"][\"endpoint\"]"},{"line_number":55,"context_line":"        ).murano()"},{"line_number":56,"context_line":"        self.tmp_pckg_paths \u003d []"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Murano packages`\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_18a30451","line":55,"in_reply_to":"9a8ffd7b_327273ae","updated":"2015-12-15 21:10:19.000000000","message":"We have role context and there is admin role. It was used previously in murano scenarios. Why not?","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"08f8b2627cccc6e144bbd33dccb0462b17673460","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        super(PackageGenerator, self).__init__(ctx)"},{"line_number":53,"context_line":"        self.murano \u003d osclients.Clients("},{"line_number":54,"context_line":"            self.context[\"admin\"][\"endpoint\"]"},{"line_number":55,"context_line":"        ).murano()"},{"line_number":56,"context_line":"        self.tmp_pckg_paths \u003d []"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Murano packages`\"))"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_327273ae","line":55,"in_reply_to":"9a8ffd7b_65737b16","updated":"2015-11-26 08:28:28.000000000","message":"I do not see another solution of how to upload murano package and make it public, I do not wont to upload the same package in all tenants, that\u0027s why we decided to do it under the admin user.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        try:"},{"line_number":61,"context_line":"            self.context[\"packages\"] \u003d []"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            for pckg in self.config:"},{"line_number":64,"context_line":"                if zipfile.is_zipfile(pckg[\"package\"]):"},{"line_number":65,"context_line":"                    zip_name \u003d pckg[\"package\"]"},{"line_number":66,"context_line":"                elif os.path.isdir(pckg[\"package\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_3807d61d","line":63,"updated":"2015-11-25 17:10:18.000000000","message":"Its not good to create packages by self.config. If I want to create lad. Say, to create 10k packages. How it would be done? You will create by hand 10k lines in config?","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"26e8e6e7185fa7beb29e63265772be79761acfff","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        try:"},{"line_number":61,"context_line":"            self.context[\"packages\"] \u003d []"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            for pckg in self.config:"},{"line_number":64,"context_line":"                if zipfile.is_zipfile(pckg[\"package\"]):"},{"line_number":65,"context_line":"                    zip_name \u003d pckg[\"package\"]"},{"line_number":66,"context_line":"                elif os.path.isdir(pckg[\"package\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_d3e9de1b","line":63,"in_reply_to":"5a710552_98a61452","updated":"2015-12-15 21:35:57.000000000","message":"Sorry for the first part. I will repeat correctly. Why you iterate with cycle throw one package?","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"08f8b2627cccc6e144bbd33dccb0462b17673460","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        try:"},{"line_number":61,"context_line":"            self.context[\"packages\"] \u003d []"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            for pckg in self.config:"},{"line_number":64,"context_line":"                if zipfile.is_zipfile(pckg[\"package\"]):"},{"line_number":65,"context_line":"                    zip_name \u003d pckg[\"package\"]"},{"line_number":66,"context_line":"                elif os.path.isdir(pckg[\"package\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_b2b50332","line":63,"in_reply_to":"9a8ffd7b_3807d61d","updated":"2015-11-26 08:28:28.000000000","message":"This context created to have an ability to upload one needed public package that will be used in deployment scenario","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c094edb1a69a03ca0a293350b3775086286bdba3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        try:"},{"line_number":61,"context_line":"            self.context[\"packages\"] \u003d []"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"            for pckg in self.config:"},{"line_number":64,"context_line":"                if zipfile.is_zipfile(pckg[\"package\"]):"},{"line_number":65,"context_line":"                    zip_name \u003d pckg[\"package\"]"},{"line_number":66,"context_line":"                elif os.path.isdir(pckg[\"package\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_98a61452","line":63,"in_reply_to":"9a8ffd7b_b2b50332","updated":"2015-12-15 21:10:19.000000000","message":"If so why self.context[\"packageS\"] and you iterate with cycle throw one package?","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                self.context[\"packages\"].append(murano_package.id)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":83,"context_line":"        except Exception as e:"},{"line_number":84,"context_line":"            msg \u003d \"Can\u0027t upload packages: %s\" % e"},{"line_number":85,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":86,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_c57ca774","line":83,"updated":"2015-11-25 17:10:18.000000000","message":"You hide all exceptions that would be raise in try block. For example exception in 72 line. Its not good. We don\u0027t need this try except block.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"7d67c0992e8a515bf48753a109f93103ca7b603d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                self.context[\"packages\"].append(murano_package.id)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"                LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":83,"context_line":"        except Exception as e:"},{"line_number":84,"context_line":"            msg \u003d \"Can\u0027t upload packages: %s\" % e"},{"line_number":85,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":86,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_b3e4773b","line":83,"in_reply_to":"9a8ffd7b_c57ca774","updated":"2015-12-15 13:34:17.000000000","message":"Done","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":83,"context_line":"        except Exception as e:"},{"line_number":84,"context_line":"            msg \u003d \"Can\u0027t upload packages: %s\" % e"},{"line_number":85,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":86,"context_line":"                LOG.exception(msg)"},{"line_number":87,"context_line":"            else:  # pragma: no cover"},{"line_number":88,"context_line":"                LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_131e7a63","line":85,"updated":"2015-11-25 17:10:18.000000000","message":"# pragma: no cover - why this lines here? Its not good to ignore them","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"7d67c0992e8a515bf48753a109f93103ca7b603d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":83,"context_line":"        except Exception as e:"},{"line_number":84,"context_line":"            msg \u003d \"Can\u0027t upload packages: %s\" % e"},{"line_number":85,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":86,"context_line":"                LOG.exception(msg)"},{"line_number":87,"context_line":"            else:  # pragma: no cover"},{"line_number":88,"context_line":"                LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_73d5af41","line":85,"in_reply_to":"9a8ffd7b_131e7a63","updated":"2015-12-15 13:34:17.000000000","message":"Done","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    def cleanup(self):"},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            for package_id in self.context[\"packages\"]:"},{"line_number":94,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":95,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":96,"context_line":"        except Exception as e:"},{"line_number":97,"context_line":"            msg \u003d \"Can\u0027t delete package: %s\" % e"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_05386f9f","line":94,"updated":"2015-11-25 17:10:18.000000000","message":"This need to be done in resource manager.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"08f8b2627cccc6e144bbd33dccb0462b17673460","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    def cleanup(self):"},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            for package_id in self.context[\"packages\"]:"},{"line_number":94,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":95,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":96,"context_line":"        except Exception as e:"},{"line_number":97,"context_line":"            msg \u003d \"Can\u0027t delete package: %s\" % e"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_12cbafa6","line":94,"in_reply_to":"9a8ffd7b_05386f9f","updated":"2015-11-26 08:28:28.000000000","message":"Why it should be in resource manager and not here? we do not need to call deletion under every tenant, we need to delete here only one package.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"c094edb1a69a03ca0a293350b3775086286bdba3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    def cleanup(self):"},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            for package_id in self.context[\"packages\"]:"},{"line_number":94,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":95,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":96,"context_line":"        except Exception as e:"},{"line_number":97,"context_line":"            msg \u003d \"Can\u0027t delete package: %s\" % e"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_58c0ace0","line":94,"in_reply_to":"9a8ffd7b_12cbafa6","updated":"2015-12-15 21:10:19.000000000","message":"Because we have such architecture. You could realize such logic in resource manager","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            for package_id in self.context[\"packages\"]:"},{"line_number":94,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":95,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":96,"context_line":"        except Exception as e:"},{"line_number":97,"context_line":"            msg \u003d \"Can\u0027t delete package: %s\" % e"},{"line_number":98,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":99,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_256253ae","line":96,"updated":"2015-11-25 17:10:18.000000000","message":"As well as in 83 line","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"7d67c0992e8a515bf48753a109f93103ca7b603d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            for package_id in self.context[\"packages\"]:"},{"line_number":94,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":95,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":96,"context_line":"        except Exception as e:"},{"line_number":97,"context_line":"            msg \u003d \"Can\u0027t delete package: %s\" % e"},{"line_number":98,"context_line":"            if logging.is_debug():  # pragma: no cover"},{"line_number":99,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_1341cb0b","line":96,"in_reply_to":"9a8ffd7b_256253ae","updated":"2015-12-15 13:34:17.000000000","message":"Done","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ad632a515e446234ffea6b1498904de25cf0d752","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                {\"categories\": [\"Web\"], \"is_public\": True},"},{"line_number":77,"context_line":"                {\"file\": open(zip_name)}"},{"line_number":78,"context_line":"            )"},{"line_number":79,"context_line":"            self.context[\"packages\"].append(murano_package.id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a710552_d3747e9d","line":79,"updated":"2015-12-15 21:36:36.000000000","message":"Its packages id. Not packges","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                {\"categories\": [\"Web\"], \"is_public\": True},"},{"line_number":77,"context_line":"                {\"file\": open(zip_name)}"},{"line_number":78,"context_line":"            )"},{"line_number":79,"context_line":"            self.context[\"packages\"].append(murano_package.id)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"            LOG.info(\"Package %s was uploaded\" % murano_package)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a7b0d38_aaa283ac","line":79,"in_reply_to":"5a710552_d3747e9d","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b7fc8030e8ad17bc1a3ad6195f863ffdd95d4731","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        super(PackageGenerator, self).__init__(ctx)"},{"line_number":54,"context_line":"        self.murano \u003d osclients.Clients("},{"line_number":55,"context_line":"            self.context[\"admin\"][\"endpoint\"]"},{"line_number":56,"context_line":"        ).murano()"},{"line_number":57,"context_line":"        self.tmp_pckg_paths \u003d []"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Murano packages`\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_13a50ba1","line":56,"updated":"2015-12-25 10:59:13.000000000","message":"You are not answer to the question in the 8th patchset here","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        super(PackageGenerator, self).__init__(ctx)"},{"line_number":54,"context_line":"        self.murano \u003d osclients.Clients("},{"line_number":55,"context_line":"            self.context[\"admin\"][\"endpoint\"]"},{"line_number":56,"context_line":"        ).murano()"},{"line_number":57,"context_line":"        self.tmp_pckg_paths \u003d []"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Murano packages`\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_a648d62e","line":56,"in_reply_to":"1a7b0d38_13a50ba1","updated":"2016-01-12 15:24:07.000000000","message":"We discussed this in slack","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4a73e300b0df37ba3b9a5b02c7dd42d8cd6f42fa","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def cleanup(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            for package_id in self.context[\"package_ids\"]:"},{"line_number":88,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":89,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if self.tmp_pckg_paths:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_33d847ef","line":88,"range":{"start_line":88,"start_character":20,"end_line":88,"end_character":21},"updated":"2015-12-25 11:10:10.000000000","message":"This should be done in resource manager","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def cleanup(self):"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            for package_id in self.context[\"package_ids\"]:"},{"line_number":88,"context_line":"                self.murano.packages.delete(package_id)"},{"line_number":89,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if self.tmp_pckg_paths:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_8287a760","line":88,"range":{"start_line":88,"start_character":20,"end_line":88,"end_character":21},"in_reply_to":"1a7b0d38_33d847ef","updated":"2016-01-12 15:24:07.000000000","message":"Done","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4a73e300b0df37ba3b9a5b02c7dd42d8cd6f42fa","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if self.tmp_pckg_paths:"},{"line_number":92,"context_line":"                for tmp_pckg_path in self.tmp_pckg_paths:"},{"line_number":93,"context_line":"                    os.remove(tmp_pckg_path)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_f302bf0a","line":92,"updated":"2015-12-25 11:10:10.000000000","message":"You are not use this variable. Please remove it.","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                LOG.info(\"Package %s was deleted\" % package_id)"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            if self.tmp_pckg_paths:"},{"line_number":92,"context_line":"                for tmp_pckg_path in self.tmp_pckg_paths:"},{"line_number":93,"context_line":"                    os.remove(tmp_pckg_path)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_d4924f57","line":92,"in_reply_to":"1a7b0d38_f302bf0a","updated":"2016-01-12 15:24:07.000000000","message":"Done","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"}],"rally/plugins/openstack/scenarios/murano/environments.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":30,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":31,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"]})"},{"line_number":32,"context_line":"    def create_list_environments(self):"},{"line_number":33,"context_line":"        \"\"\"Create environment and get list of environments."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        Measure the \"murano environment-create\" and \"murano environment-list\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_ed3af797","line":32,"updated":"2015-11-25 17:10:18.000000000","message":"create_and_list_environment name would be better. And as for backward compatibility. We don\u0027t want to delete old scenario. Better to create the new one. And not to change list_environment. Mark it with deprecation decorator if you want to delete it in the future.","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"7d67c0992e8a515bf48753a109f93103ca7b603d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":30,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":31,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"]})"},{"line_number":32,"context_line":"    def create_list_environments(self):"},{"line_number":33,"context_line":"        \"\"\"Create environment and get list of environments."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        Measure the \"murano environment-create\" and \"murano environment-list\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_d36d8333","line":32,"in_reply_to":"9a8ffd7b_ed3af797","updated":"2015-12-15 13:34:17.000000000","message":"Done","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"75bf705a9105cd00a7dd36df3b7641b0cdc934a5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    @validation.required_contexts(\"murano_packages\")"},{"line_number":54,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":55,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"],"},{"line_number":56,"context_line":"                                 \"roles\": [\"admin\"]})"},{"line_number":57,"context_line":"    def create_and_deploy_environment("},{"line_number":58,"context_line":"            self, deployment_config, package_copies_per_env\u003d1):"},{"line_number":59,"context_line":"        \"\"\"Create environment, session and deploy environment."}],"source_content_type":"text/x-python","patch_set":8,"id":"9a8ffd7b_4d78e3c4","line":56,"updated":"2015-11-25 17:10:18.000000000","message":"admin role was used to avoid writing @validation.required_openstack(admin\u003dTrue) I think we don\u0027t need both. And why you want to use with admin rule?","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"7d67c0992e8a515bf48753a109f93103ca7b603d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    @validation.required_contexts(\"murano_packages\")"},{"line_number":54,"context_line":"    @validation.required_openstack(admin\u003dTrue)"},{"line_number":55,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"],"},{"line_number":56,"context_line":"                                 \"roles\": [\"admin\"]})"},{"line_number":57,"context_line":"    def create_and_deploy_environment("},{"line_number":58,"context_line":"            self, deployment_config, package_copies_per_env\u003d1):"},{"line_number":59,"context_line":"        \"\"\"Create environment, session and deploy environment."}],"source_content_type":"text/x-python","patch_set":8,"id":"5a710552_73c12fe4","line":56,"in_reply_to":"9a8ffd7b_4d78e3c4","updated":"2015-12-15 13:34:17.000000000","message":"Done","commit_id":"b4ce06c550e95a65be248b40ff8898a65c4d36c0"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ad632a515e446234ffea6b1498904de25cf0d752","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":30,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":31,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"]})"},{"line_number":32,"context_line":"    @logging.log_deprecated(\"Use MuranoEnvironments.create_and_list_environments decorator instead.\","},{"line_number":33,"context_line":"                            \"0.1.2\")"},{"line_number":34,"context_line":"    def list_environments(self):"},{"line_number":35,"context_line":"        \"\"\"List the murano environments."}],"source_content_type":"text/x-python","patch_set":9,"id":"5a710552_b35f7340","line":32,"updated":"2015-12-15 21:36:36.000000000","message":"What Why you suggest to use to user use decorator? Its a scenario.","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":30,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":31,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"]})"},{"line_number":32,"context_line":"    @logging.log_deprecated(\"Use MuranoEnvironments.create_and_list_environments decorator instead.\","},{"line_number":33,"context_line":"                            \"0.1.2\")"},{"line_number":34,"context_line":"    def list_environments(self):"},{"line_number":35,"context_line":"        \"\"\"List the murano environments."}],"source_content_type":"text/x-python","patch_set":9,"id":"1a7b0d38_4acbdf72","line":32,"in_reply_to":"5a710552_b35f7340","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ad632a515e446234ffea6b1498904de25cf0d752","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":64,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":65,"context_line":"    @validation.required_contexts(\"murano_packages\")"},{"line_number":66,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"],"},{"line_number":67,"context_line":"                                 \"roles\": [\"admin\"]})"},{"line_number":68,"context_line":"    def create_and_deploy_environment("}],"source_content_type":"text/x-python","patch_set":9,"id":"5a710552_332ce301","line":65,"updated":"2015-12-15 21:36:36.000000000","message":"If you use admin credentials for murano in context. Then all scenarios with context should use required admin validator. But Think twice do you need it. Or rally admin role give you what you need.","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"816cc229426087b0420ef06b24ce3d76d85ccbe0","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":64,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":65,"context_line":"    @validation.required_contexts(\"murano_packages\")"},{"line_number":66,"context_line":"    @scenario.configure(context\u003d{\"cleanup\": [\"murano.environments\"],"},{"line_number":67,"context_line":"                                 \"roles\": [\"admin\"]})"},{"line_number":68,"context_line":"    def create_and_deploy_environment("}],"source_content_type":"text/x-python","patch_set":9,"id":"1a7b0d38_eac96b79","line":65,"in_reply_to":"5a710552_332ce301","updated":"2015-12-25 02:07:07.000000000","message":"Done","commit_id":"cb609ba5edd3ee627b37219137d429cd1dfff4ce"}],"rally/plugins/openstack/scenarios/murano/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b7fc8030e8ad17bc1a3ad6195f863ffdd95d4731","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        with open(os.path.expanduser(deployment_config), \"r\") as dc:"},{"line_number":95,"context_line":"            config_data \u003d dc.read()"},{"line_number":96,"context_line":"            dc.close()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        apps_config \u003d json.loads(config_data)"},{"line_number":99,"context_line":"        apps \u003d []"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_f3d71feb","line":96,"range":{"start_line":96,"start_character":20,"end_line":96,"end_character":22},"updated":"2015-12-25 10:59:13.000000000","message":"You don\u0027t need to close dc itself. It should be done by context manager","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        with open(os.path.expanduser(deployment_config), \"r\") as dc:"},{"line_number":95,"context_line":"            config_data \u003d dc.read()"},{"line_number":96,"context_line":"            dc.close()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        apps_config \u003d json.loads(config_data)"},{"line_number":99,"context_line":"        apps \u003d []"}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_b4d1dbfd","line":96,"range":{"start_line":96,"start_character":20,"end_line":96,"end_character":22},"in_reply_to":"1a7b0d38_f3d71feb","updated":"2016-01-12 15:24:07.000000000","message":"Done","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b7fc8030e8ad17bc1a3ad6195f863ffdd95d4731","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            config_data \u003d dc.read()"},{"line_number":96,"context_line":"            dc.close()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        apps_config \u003d json.loads(config_data)"},{"line_number":99,"context_line":"        apps \u003d []"},{"line_number":100,"context_line":"        for app_configuration in apps_config[\"services\"]:"},{"line_number":101,"context_line":"            app_configuration[\"name\"] \u003d common_utils.generate_random_name("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_d3c5433c","line":98,"range":{"start_line":98,"start_character":22,"end_line":98,"end_character":26},"updated":"2015-12-25 10:59:13.000000000","message":"If we don\u0027t have JSON object in file. Then we will get unclear msg.","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":19325,"name":"Evgeny Ivanov","email":"eivanov@mirantis.com","username":"eivanov"},"change_message_id":"49d9ad9aee076db79560b45caf67331d6c973b86","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            config_data \u003d dc.read()"},{"line_number":96,"context_line":"            dc.close()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        apps_config \u003d json.loads(config_data)"},{"line_number":99,"context_line":"        apps \u003d []"},{"line_number":100,"context_line":"        for app_configuration in apps_config[\"services\"]:"},{"line_number":101,"context_line":"            app_configuration[\"name\"] \u003d common_utils.generate_random_name("}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_68a13fa9","line":98,"range":{"start_line":98,"start_character":22,"end_line":98,"end_character":26},"in_reply_to":"1a7b0d38_d3c5433c","updated":"2016-01-12 15:24:07.000000000","message":"I think it\u0027s clear:\n\nTraceback (most recent call last):\n  File \"/home/evgeny/mirantis/rally/rally/task/runner.py\", line 66, in _run_scenario_once\n    deprecated_output \u003d getattr(scenario_inst, method_name)(**kwargs)\n  File \"/home/evgeny/mirantis/rally/rally/plugins/openstack/scenarios/murano/environments.py\", line 88, in create_and_deploy_environment\n    deployment_config\n  File \"/home/evgeny/mirantis/rally/rally/task/atomic.py\", line 113, in func_atomic_actions\n    f \u003d func(self, *args, **kwargs)\n  File \"/home/evgeny/mirantis/rally/rally/plugins/openstack/scenarios/murano/utils.py\", line 97, in _add_applications\n    apps_config \u003d json.loads(config_data)\n  File \"/usr/lib/python2.7/json/__init__.py\", line 338, in loads\n    return _default_decoder.decode(s)\n  File \"/usr/lib/python2.7/json/decoder.py\", line 366, in decode\n    obj, end \u003d self.raw_decode(s, idx\u003d_w(s, 0).end())\n  File \"/usr/lib/python2.7/json/decoder.py\", line 384, in raw_decode\n    raise ValueError(\"No JSON object could be decoded\")\nValueError: No JSON object could be decoded","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b50617010b27835a41bb7f10717710893e567199","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            config_data \u003d dc.read()"},{"line_number":96,"context_line":"            dc.close()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        apps_config \u003d json.loads(config_data)"},{"line_number":99,"context_line":"        apps \u003d []"},{"line_number":100,"context_line":"        for app_configuration in apps_config[\"services\"]:"},{"line_number":101,"context_line":"            app_configuration[\"name\"] \u003d common_utils.generate_random_name("}],"source_content_type":"text/x-python","patch_set":11,"id":"da6ed579_ba699d27","line":98,"range":{"start_line":98,"start_character":22,"end_line":98,"end_character":26},"in_reply_to":"da6ed579_68a13fa9","updated":"2016-01-12 23:33:04.000000000","message":"As a user I don\u0027t understand what this mean.I don\u0027t want to dig in the code. I just made pip install rally. So its bad to see it. Also I don\u0027t know what its mean that somewhere in the code json can\u0027t be decoded. You need to think from the view of user.","commit_id":"63250505aa04294d556af0484b1bd85e8c248f79"}]}
