)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"4bfc339188c1ade16c3b7d18251395f9fc69eea3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Roman Vasilets \u003crvasilets@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-09 19:53:46 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add murano benchmarks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8312527ee4a6aa164a9545e52c8bd5f0381ebeb8"},{"line_number":10,"context_line":"Co-Authored-By: Roman Vasilets \u003crvasilets@mirantis.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9aa53dc9_afc12a56","line":7,"updated":"2015-04-09 17:00:39.000000000","message":"I guess murano benchmarks are already added. \nPlease add little more description here.","commit_id":"857d4b194039e3f34eb489a271bfed3d79b78dfa"}],"rally-jobs/rally-murano.yaml":[{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"3b0f8f0223b9678f119bd8611976f46001252d24","unresolved":false,"context_lines":[{"line_number":40,"context_line":"          tenants: 2"},{"line_number":41,"context_line":"          users_per_tenant: 2"},{"line_number":42,"context_line":"        murano:"},{"line_number":43,"context_line":"          app_name: \"HelloReporter\""},{"line_number":44,"context_line":"          app_package: \"/home/jenkins/.rally/extra/murano/applications/io.murano.apps.HelloReporter.zip\""},{"line_number":45,"context_line":"      sla:"},{"line_number":46,"context_line":"        failure_rate:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5ad0253b_9cdd0d17","line":43,"updated":"2015-04-29 10:17:58.000000000","message":"app_name is not needed","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"544faccb8f1f450bffc3cfe044b576ec982acf1e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"          tenants: 2"},{"line_number":41,"context_line":"          users_per_tenant: 2"},{"line_number":42,"context_line":"        murano:"},{"line_number":43,"context_line":"          app_name: \"HelloReporter\""},{"line_number":44,"context_line":"          app_package: \"/home/jenkins/.rally/extra/murano/applications/io.murano.apps.HelloReporter.zip\""},{"line_number":45,"context_line":"      sla:"},{"line_number":46,"context_line":"        failure_rate:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5ad0253b_02786fc3","line":43,"in_reply_to":"5ad0253b_9cdd0d17","updated":"2015-04-29 13:42:24.000000000","message":"Done","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8459552df318a72fcd35627b8d87547611403adc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        users:"},{"line_number":40,"context_line":"          tenants: 2"},{"line_number":41,"context_line":"          users_per_tenant: 2"},{"line_number":42,"context_line":"        murano:"},{"line_number":43,"context_line":"          app_package: \"/home/jenkins/.rally/extra/murano/applications/HelloReporter/io.murano.apps.HelloReporter.zip\""},{"line_number":44,"context_line":"      sla:"},{"line_number":45,"context_line":"        failure_rate:"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"1aca2d91_f383cc54","line":42,"updated":"2015-05-08 00:37:24.000000000","message":"You need to add \"roles\": [\"admin\"] to make this work","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"cf8cefd8c2df8030b6a146ee9769c4803b3d0184","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        users:"},{"line_number":40,"context_line":"          tenants: 2"},{"line_number":41,"context_line":"          users_per_tenant: 2"},{"line_number":42,"context_line":"        murano:"},{"line_number":43,"context_line":"          app_package: \"/home/jenkins/.rally/extra/murano/applications/HelloReporter/io.murano.apps.HelloReporter.zip\""},{"line_number":44,"context_line":"      sla:"},{"line_number":45,"context_line":"        failure_rate:"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"1aca2d91_d79b0e71","line":42,"in_reply_to":"1aca2d91_f383cc54","updated":"2015-05-08 22:06:56.000000000","message":"Done","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"}],"rally/benchmark/scenarios/murano/environments.py":[{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        environment \u003d self._create_environment()"},{"line_number":67,"context_line":"        session \u003d self._create_session(environment.id)"},{"line_number":68,"context_line":"        collect_temp \u003d []"},{"line_number":69,"context_line":"        try:"},{"line_number":70,"context_line":"            for package in self.clients(\"murano\").packages.list():"},{"line_number":71,"context_line":"                if package.name \u003d\u003d \"Core library\":"},{"line_number":72,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_55de0412","line":69,"updated":"2015-04-21 09:33:38.000000000","message":"As the logic of this scenario is fairly complex, it is not so clear why you need this try..finally statement here, and what is the exception that you\u0027re trying to catch in this way. Could you please add here a NOTE that would explain it?","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            deployment \u003d self._get_deployments_list(environment.id)[0]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            self._check_deployment_status(deployment)"},{"line_number":90,"context_line":"        finally:"},{"line_number":91,"context_line":"            for temp_dir in collect_temp:"},{"line_number":92,"context_line":"                try:"},{"line_number":93,"context_line":"                    shutil.rmtree(temp_dir)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_b5f44087","line":90,"updated":"2015-04-21 09:33:38.000000000","message":"By the way, don\u0027t you really need the \u0027except ..\u0027 block? Shouldn\u0027t you LOG exceptions that occur inside \u0027try ..\u0027?","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"3b0f8f0223b9678f119bd8611976f46001252d24","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            collect_temp.append(temp_json)"},{"line_number":71,"context_line":"            json_file_path \u003d os.path.join("},{"line_number":72,"context_line":"                temp_json,"},{"line_number":73,"context_line":"                self.context[\"config\"][\"murano\"][\"app_package\"].split(\".\")[-2]"},{"line_number":74,"context_line":"            )"},{"line_number":75,"context_line":"            package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_fc3c0131","line":73,"updated":"2015-04-29 10:17:58.000000000","message":"what are you getting here?\nplease, leave a comment\n\nremember, that you have access to the uploaded package (line below)","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"544faccb8f1f450bffc3cfe044b576ec982acf1e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            collect_temp.append(temp_json)"},{"line_number":71,"context_line":"            json_file_path \u003d os.path.join("},{"line_number":72,"context_line":"                temp_json,"},{"line_number":73,"context_line":"                self.context[\"config\"][\"murano\"][\"app_package\"].split(\".\")[-2]"},{"line_number":74,"context_line":"            )"},{"line_number":75,"context_line":"            package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_8526c9b8","line":73,"in_reply_to":"5ad0253b_fc3c0131","updated":"2015-04-29 13:42:24.000000000","message":"ok","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"3b0f8f0223b9678f119bd8611976f46001252d24","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            data \u003d {\"?\": {}}"},{"line_number":78,"context_line":"            data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":79,"context_line":"            with open(json_file_path, \"w\") as json_file:"},{"line_number":80,"context_line":"                json.dump(data, json_file)"},{"line_number":81,"context_line":"            for package in xrange(packages_per_env):"},{"line_number":82,"context_line":"                self._add_app(environment, session,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_7c091195","line":79,"updated":"2015-04-29 10:17:58.000000000","message":"what is the purpose of saving data to file?\n\nfor sending task to engine json file itself is not needed.\nyou can store all necessary data in your code","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"544faccb8f1f450bffc3cfe044b576ec982acf1e","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            data \u003d {\"?\": {}}"},{"line_number":78,"context_line":"            data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":79,"context_line":"            with open(json_file_path, \"w\") as json_file:"},{"line_number":80,"context_line":"                json.dump(data, json_file)"},{"line_number":81,"context_line":"            for package in xrange(packages_per_env):"},{"line_number":82,"context_line":"                self._add_app(environment, session,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_250ed534","line":79,"in_reply_to":"5ad0253b_7c091195","updated":"2015-04-29 13:42:24.000000000","message":"Ok","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"3b0f8f0223b9678f119bd8611976f46001252d24","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":79,"context_line":"            with open(json_file_path, \"w\") as json_file:"},{"line_number":80,"context_line":"                json.dump(data, json_file)"},{"line_number":81,"context_line":"            for package in xrange(packages_per_env):"},{"line_number":82,"context_line":"                self._add_app(environment, session,"},{"line_number":83,"context_line":"                              json_path\u003djson_file_path)"},{"line_number":84,"context_line":"            self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_dcf2659a","line":81,"updated":"2015-04-29 10:17:58.000000000","message":"is it a common practice to add logging to tests?","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6ff8ed4c63f15d00cd59911331ec18dca134a6da","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":79,"context_line":"            with open(json_file_path, \"w\") as json_file:"},{"line_number":80,"context_line":"                json.dump(data, json_file)"},{"line_number":81,"context_line":"            for package in xrange(packages_per_env):"},{"line_number":82,"context_line":"                self._add_app(environment, session,"},{"line_number":83,"context_line":"                              json_path\u003djson_file_path)"},{"line_number":84,"context_line":"            self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_1b733ab3","line":81,"in_reply_to":"5ad0253b_624f2393","updated":"2015-04-29 13:55:06.000000000","message":"add some logging","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"544faccb8f1f450bffc3cfe044b576ec982acf1e","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":79,"context_line":"            with open(json_file_path, \"w\") as json_file:"},{"line_number":80,"context_line":"                json.dump(data, json_file)"},{"line_number":81,"context_line":"            for package in xrange(packages_per_env):"},{"line_number":82,"context_line":"                self._add_app(environment, session,"},{"line_number":83,"context_line":"                              json_path\u003djson_file_path)"},{"line_number":84,"context_line":"            self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_624f2393","line":81,"in_reply_to":"5ad0253b_dcf2659a","updated":"2015-04-29 13:42:24.000000000","message":"What type of logging you want?","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"57fa0d032086bbd717f02f6e9d4aac6e2f1e6059","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        data \u003d {\"?\": {}}"},{"line_number":66,"context_line":"        data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":67,"context_line":"        for i in xrange(packages_per_env):"},{"line_number":68,"context_line":"            self._add_app(environment, session,"},{"line_number":69,"context_line":"                          package.fully_qualified_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5ad0253b_dbaca2ef","line":66,"updated":"2015-04-29 14:00:09.000000000","message":"2 lines above are handled by _get_app function, please remove","commit_id":"9a6b1b667fb0ed68808261f765dc2aa026dede1e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"83b5699263e79b5bb53e691e151176c3b08e04d8","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        data \u003d {\"?\": {}}"},{"line_number":66,"context_line":"        data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":67,"context_line":"        for i in xrange(packages_per_env):"},{"line_number":68,"context_line":"            self._add_app(environment, session,"},{"line_number":69,"context_line":"                          package.fully_qualified_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5ad0253b_3b827601","line":66,"in_reply_to":"5ad0253b_dbaca2ef","updated":"2015-04-29 14:03:19.000000000","message":"Done","commit_id":"9a6b1b667fb0ed68808261f765dc2aa026dede1e"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"57fa0d032086bbd717f02f6e9d4aac6e2f1e6059","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        data \u003d {\"?\": {}}"},{"line_number":66,"context_line":"        data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":67,"context_line":"        for i in xrange(packages_per_env):"},{"line_number":68,"context_line":"            self._add_app(environment, session,"},{"line_number":69,"context_line":"                          package.fully_qualified_name)"},{"line_number":70,"context_line":"            LOG.info(_LI(\"Murano package with name %s was added\")"},{"line_number":71,"context_line":"                     % package.fully_qualified_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5ad0253b_7b2c6e4a","line":68,"updated":"2015-04-29 14:00:09.000000000","message":"where  image_name is passed?","commit_id":"9a6b1b667fb0ed68808261f765dc2aa026dede1e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"83b5699263e79b5bb53e691e151176c3b08e04d8","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        data \u003d {\"?\": {}}"},{"line_number":66,"context_line":"        data[\"?\"][\"type\"] \u003d package.fully_qualified_name"},{"line_number":67,"context_line":"        for i in xrange(packages_per_env):"},{"line_number":68,"context_line":"            self._add_app(environment, session,"},{"line_number":69,"context_line":"                          package.fully_qualified_name)"},{"line_number":70,"context_line":"            LOG.info(_LI(\"Murano package with name %s was added\")"},{"line_number":71,"context_line":"                     % package.fully_qualified_name)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5ad0253b_9b9cea6a","line":68,"in_reply_to":"5ad0253b_7b2c6e4a","updated":"2015-04-29 14:03:19.000000000","message":"Do we need this name? In this app we don\u0027t have it. Its optional parameter.","commit_id":"9a6b1b667fb0ed68808261f765dc2aa026dede1e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f585107e1a7aac6d8aa304e6e3b1d5ab302b91cf","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        session \u003d self._create_session(environment.id)"},{"line_number":62,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        for i in xrange(packages_per_env):"},{"line_number":65,"context_line":"            self._add_app(environment, session,"},{"line_number":66,"context_line":"                          package.fully_qualified_name)"},{"line_number":67,"context_line":"            LOG.info(_LI(\"Murano package with name %s was added\")"}],"source_content_type":"text/x-python","patch_set":18,"id":"3acd31a7_bf8bb067","line":64,"updated":"2015-05-05 05:21:16.000000000","message":"There is no xrange in python34. Why didn\u0027t you fix this before?","commit_id":"478af1bb91264a990bfc7ca7419106051101f46d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"23850a3b5391c68be97f57904fd344b7825ee2a5","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":50,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":51,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":52,"context_line":"    def deploy_environment(self, packages_per_env\u003d1):"},{"line_number":53,"context_line":"        \"\"\"Check that murano deploys app correctly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        Create environment, create session, add app to environment"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_f9aadd84","line":52,"updated":"2015-05-06 12:14:04.000000000","message":"create_deploye_enivroment","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":50,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":51,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":52,"context_line":"    def deploy_environment(self, packages_per_env\u003d1):"},{"line_number":53,"context_line":"        \"\"\"Check that murano deploys app correctly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        Create environment, create session, add app to environment"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_41cbf353","line":52,"in_reply_to":"1aca2d91_f9aadd84","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f25559c850728de87a08801e91a6dffd56345e1b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":51,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":52,"context_line":"    def deploy_environment(self, packages_per_env\u003d1):"},{"line_number":53,"context_line":"        \"\"\"Check that murano deploys app correctly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        Create environment, create session, add app to environment"},{"line_number":56,"context_line":"        send environment to deploy, check deployment status, and check that"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_68037474","line":53,"updated":"2015-05-07 07:12:03.000000000","message":"Create and check deploy environment.","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":51,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":52,"context_line":"    def deploy_environment(self, packages_per_env\u003d1):"},{"line_number":53,"context_line":"        \"\"\"Check that murano deploys app correctly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        Create environment, create session, add app to environment"},{"line_number":56,"context_line":"        send environment to deploy, check deployment status, and check that"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_61b5cfcb","line":53,"in_reply_to":"1aca2d91_68037474","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        Create environment, create session, add app to environment"},{"line_number":56,"context_line":"        send environment to deploy, check deployment status, and check that"},{"line_number":57,"context_line":"        needed port is opened."},{"line_number":58,"context_line":"        :param packages_per_env: number of packages per environment"},{"line_number":59,"context_line":"        \"\"\""},{"line_number":60,"context_line":"        environment \u003d self._create_environment()"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_81b0ebde","line":57,"updated":"2015-05-07 12:00:53.000000000","message":"Also need to update comment","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"23850a3b5391c68be97f57904fd344b7825ee2a5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        for i in range(packages_per_env):"},{"line_number":65,"context_line":"            self._add_app(environment, session,"},{"line_number":66,"context_line":"                          package.fully_qualified_name)"},{"line_number":67,"context_line":"            LOG.info(_LI(\"Murano package with name %s was added\")"},{"line_number":68,"context_line":"                     % package.fully_qualified_name)"},{"line_number":69,"context_line":"        self._deploy_environment(environment, session)"},{"line_number":70,"context_line":"        LOG.info(_LI(\"Murano environment %s was deployed\") % environment.id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_59ee71ed","line":67,"updated":"2015-05-06 12:14:04.000000000","message":"Remove logs","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        for i in range(packages_per_env):"},{"line_number":65,"context_line":"            self._add_app(environment, session,"},{"line_number":66,"context_line":"                          package.fully_qualified_name)"},{"line_number":67,"context_line":"            LOG.info(_LI(\"Murano package with name %s was added\")"},{"line_number":68,"context_line":"                     % package.fully_qualified_name)"},{"line_number":69,"context_line":"        self._deploy_environment(environment, session)"},{"line_number":70,"context_line":"        LOG.info(_LI(\"Murano environment %s was deployed\") % environment.id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_01c5fb3a","line":67,"in_reply_to":"1aca2d91_59ee71ed","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"23850a3b5391c68be97f57904fd344b7825ee2a5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        LOG.info(_LI(\"Murano environment %s was deployed\") % environment.id)"},{"line_number":71,"context_line":"        deployment \u003d self._get_deployments_list(environment.id)[0]"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        self._check_deployment_status(deployment)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_b9ca254e","line":73,"updated":"2015-05-06 12:14:04.000000000","message":"No this is wrong organized code. \n\nHere we should have only 1 method: \n\n  self._deploy_eniviroment()\n\nthat sends request to deploy and waits until everything is done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        LOG.info(_LI(\"Murano environment %s was deployed\") % environment.id)"},{"line_number":71,"context_line":"        deployment \u003d self._get_deployments_list(environment.id)[0]"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        self._check_deployment_status(deployment)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_c131430d","line":73,"in_reply_to":"1aca2d91_b9ca254e","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8459552df318a72fcd35627b8d87547611403adc","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._create_session(environment.id)"},{"line_number":46,"context_line":"        self._delete_environment(environment)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":49,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":50,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":51,"context_line":"    def create_and_deploy_environment(self, packages_per_env\u003d1):"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_b37d5470","line":48,"updated":"2015-05-08 00:37:24.000000000","message":"You should add here that we are requiring to context: \n\n  murano and roles","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"cf8cefd8c2df8030b6a146ee9769c4803b3d0184","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._create_session(environment.id)"},{"line_number":46,"context_line":"        self._delete_environment(environment)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @validation.required_clients(\"murano\")"},{"line_number":49,"context_line":"    @validation.required_services(consts.Service.MURANO)"},{"line_number":50,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"murano\"]})"},{"line_number":51,"context_line":"    def create_and_deploy_environment(self, packages_per_env\u003d1):"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_e51e5462","line":48,"in_reply_to":"1aca2d91_b37d5470","updated":"2015-05-08 22:06:56.000000000","message":"Done","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8459552df318a72fcd35627b8d87547611403adc","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for i in range(packages_per_env):"},{"line_number":64,"context_line":"            self._create_service(environment, session,"},{"line_number":65,"context_line":"                                 package.fully_qualified_name)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_b342f40e","line":64,"updated":"2015-05-08 00:37:24.000000000","message":"This is the wrong way to use atomic actions \n\nYou should use here: \n\n  with AtomicAction(....):\n    for i in range(...):\n      self._create_serivce(, atomic_action\u003dFalse)","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"cf8cefd8c2df8030b6a146ee9769c4803b3d0184","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for i in range(packages_per_env):"},{"line_number":64,"context_line":"            self._create_service(environment, session,"},{"line_number":65,"context_line":"                                 package.fully_qualified_name)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_a5273cb5","line":64,"in_reply_to":"1aca2d91_b342f40e","updated":"2015-05-08 22:06:56.000000000","message":"Done","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"de30153ce8bd9af11993c7ede654c2cf9130a5b8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        package \u003d self.context[\"tenant\"][\"packages\"][0]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        with base.AtomicAction("},{"line_number":65,"context_line":"                self, \"murano.create_and_deploy_environment\"):"},{"line_number":66,"context_line":"            for i in range(packages_per_env):"},{"line_number":67,"context_line":"                self._create_service(environment, session,"},{"line_number":68,"context_line":"                                     package.fully_qualified_name)"}],"source_content_type":"text/x-python","patch_set":26,"id":"1aca2d91_5867194d","line":65,"updated":"2015-05-08 22:26:15.000000000","message":"You are creating here services... not create_and_deploy enviorment you did this step on 60 line. \n\nBy the way nested atomic_actions are not supported","commit_id":"3cb60d7df8415276c582febd46a1b73df5f58017"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c5014e9f9cf25b51b33f22dfb3cb203110d991e1","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":67,"context_line":"            for i in range(packages_per_env):"},{"line_number":68,"context_line":"                app_id \u003d str(uuid.uuid4())"},{"line_number":69,"context_line":"                data \u003d {\"?\": {\"id\": app_id,"},{"line_number":70,"context_line":"                              \"type\": package.fully_qualified_name},"},{"line_number":71,"context_line":"                        \"name\": \"app%s\" % app_id}"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_183b5aed","line":68,"updated":"2015-05-12 14:33:34.000000000","message":"Why lines 67-71 can\u0027t be moved inside the _create_service","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7c8355dc370cb5306fee25e26106828856b9770f","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":67,"context_line":"            for i in range(packages_per_env):"},{"line_number":68,"context_line":"                app_id \u003d str(uuid.uuid4())"},{"line_number":69,"context_line":"                data \u003d {\"?\": {\"id\": app_id,"},{"line_number":70,"context_line":"                              \"type\": package.fully_qualified_name},"},{"line_number":71,"context_line":"                        \"name\": \"app%s\" % app_id}"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_63a066f5","line":68,"in_reply_to":"9a0c5dc1_183b5aed","updated":"2015-05-12 15:45:36.000000000","message":"Done","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c5014e9f9cf25b51b33f22dfb3cb203110d991e1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                app_id \u003d str(uuid.uuid4())"},{"line_number":69,"context_line":"                data \u003d {\"?\": {\"id\": app_id,"},{"line_number":70,"context_line":"                              \"type\": package.fully_qualified_name},"},{"line_number":71,"context_line":"                        \"name\": \"app%s\" % app_id}"},{"line_number":72,"context_line":"                self._create_service(environment, session, data)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_98818a92","line":71,"updated":"2015-05-12 14:33:34.000000000","message":"Imho name should be generated using _generate_random_name()","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7c8355dc370cb5306fee25e26106828856b9770f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                app_id \u003d str(uuid.uuid4())"},{"line_number":69,"context_line":"                data \u003d {\"?\": {\"id\": app_id,"},{"line_number":70,"context_line":"                              \"type\": package.fully_qualified_name},"},{"line_number":71,"context_line":"                        \"name\": \"app%s\" % app_id}"},{"line_number":72,"context_line":"                self._create_service(environment, session, data)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self._deploy_environment(environment, session)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_23aa6ed5","line":71,"in_reply_to":"9a0c5dc1_98818a92","updated":"2015-05-12 15:45:36.000000000","message":"Done","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"}],"rally/benchmark/scenarios/murano/utils.py":[{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        return self.clients(\"murano\").sessions.configure(environment_id)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @base.atomic_action_timer(\"murano.create_service\")"},{"line_number":73,"context_line":"    def _add_app(self, environment, session, json_path\u003dNone, image_name\u003dNone,"},{"line_number":74,"context_line":"                 flavor_name\u003dNone):"},{"line_number":75,"context_line":"        \"\"\"Create Murano service."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_15a08c42","line":73,"updated":"2015-04-21 09:33:38.000000000","message":"Shouldn\u0027t \u0027json_path\u0027 be a required parameter? It is actually required in _get_app()","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        :param environment: Environment instance"},{"line_number":78,"context_line":"        :param session: Session instance"},{"line_number":79,"context_line":"        :param json_path: Path to app json file"},{"line_number":80,"context_line":"        :param image_name: Image name"},{"line_number":81,"context_line":"        :param flavor_name: Flavor name"},{"line_number":82,"context_line":"        :returns: Service instance"},{"line_number":83,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_35c030e0","line":80,"updated":"2015-04-21 09:33:38.000000000","message":"What happens if image_name is None? Could you please add that information to the docstring?","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        :param session: Session instance"},{"line_number":79,"context_line":"        :param json_path: Path to app json file"},{"line_number":80,"context_line":"        :param image_name: Image name"},{"line_number":81,"context_line":"        :param flavor_name: Flavor name"},{"line_number":82,"context_line":"        :returns: Service instance"},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        app \u003d self._get_app(json_path\u003djson_path,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_15b76c87","line":81,"updated":"2015-04-21 09:33:38.000000000","message":"Same here","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"014648954819bec83be15011fa422f557915699a","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        :param json_path: path to app json file"},{"line_number":112,"context_line":"        :param image: Image instance"},{"line_number":113,"context_line":"        :param flavor: Flavor instance"},{"line_number":114,"context_line":"        :param instance: is instance flag"},{"line_number":115,"context_line":"        :returns: Application instance"},{"line_number":116,"context_line":"        \"\"\""},{"line_number":117,"context_line":"        with open(json_path) as app_json:"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_5564c420","line":114,"updated":"2015-04-21 09:33:38.000000000","message":"I just wonder why you need this \u0027instance\u0027 parameter. It is not used anywhere outside this method. Also seems like it should be False when image\u003dNone or flavor\u003dNone, so it\u0027s value can be determined automatically?","commit_id":"7c187bdadfc92f7bf0291245fbd3135fa7f4e483"},{"author":{"_account_id":7549,"name":"Ekaterina Chernova","email":"katyafervent@yandex.ru","username":"efedorova"},"change_message_id":"3b0f8f0223b9678f119bd8611976f46001252d24","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        data[\"name\"] \u003d \"app{0}\".format(uuid.uuid4().hex[:5])"},{"line_number":126,"context_line":"        data[\"?\"][\"id\"] \u003d str(uuid.uuid4())"},{"line_number":127,"context_line":"        data \u003d json.dumps(data)"},{"line_number":128,"context_line":"        data \u003d json.loads(data)"},{"line_number":129,"context_line":"        return data"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_5c41b50a","line":128,"updated":"2015-04-29 10:17:58.000000000","message":"why are you doing that?\nremove those two lines and you\u0027ll get the same redult","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"544faccb8f1f450bffc3cfe044b576ec982acf1e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        data[\"name\"] \u003d \"app{0}\".format(uuid.uuid4().hex[:5])"},{"line_number":126,"context_line":"        data[\"?\"][\"id\"] \u003d str(uuid.uuid4())"},{"line_number":127,"context_line":"        data \u003d json.dumps(data)"},{"line_number":128,"context_line":"        data \u003d json.loads(data)"},{"line_number":129,"context_line":"        return data"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"5ad0253b_985f500e","line":128,"in_reply_to":"5ad0253b_5c41b50a","updated":"2015-04-29 13:42:24.000000000","message":"Done","commit_id":"aa30024fe46319857168b2542a07957ad2d0352e"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f25559c850728de87a08801e91a6dffd56345e1b","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @base.atomic_action_timer(\"murano.create_service\")"},{"line_number":72,"context_line":"    def _add_app(self, environment, session, full_package_name,"},{"line_number":73,"context_line":"                 image_name\u003dNone, flavor_name\u003dNone):"},{"line_number":74,"context_line":"        \"\"\"Create Murano service."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_a8174ca2","line":73,"updated":"2015-05-07 07:12:03.000000000","message":"why not _create_service?","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @base.atomic_action_timer(\"murano.create_service\")"},{"line_number":72,"context_line":"    def _add_app(self, environment, session, full_package_name,"},{"line_number":73,"context_line":"                 image_name\u003dNone, flavor_name\u003dNone):"},{"line_number":74,"context_line":"        \"\"\"Create Murano service."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_bc742a9c","line":73,"in_reply_to":"1aca2d91_a8174ca2","updated":"2015-05-07 12:00:53.000000000","message":"because this is call application not service and we add application to environment not create.","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a5cb0520674735359cbbe9a8971040bacfad01a8","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @base.atomic_action_timer(\"murano.create_service\")"},{"line_number":72,"context_line":"    def _add_app(self, environment, session, full_package_name,"},{"line_number":73,"context_line":"                 image_name\u003dNone, flavor_name\u003dNone):"},{"line_number":74,"context_line":"        \"\"\"Create Murano service."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_15588c31","line":73,"in_reply_to":"1aca2d91_bc742a9c","updated":"2015-05-07 12:17:04.000000000","message":"Sorry, I am agree with you","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f25559c850728de87a08801e91a6dffd56345e1b","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        :param environment: Environment instance"},{"line_number":94,"context_line":"        :param session: Session instance"},{"line_number":95,"context_line":"        :returns: Deploy instance"},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        self.clients(\"murano\").sessions.deploy(environment.id,"},{"line_number":98,"context_line":"                                               session.id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_688814e8","line":95,"updated":"2015-05-07 07:12:03.000000000","message":"Seems no return for this method.","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        :param environment: Environment instance"},{"line_number":94,"context_line":"        :param session: Session instance"},{"line_number":95,"context_line":"        :returns: Deploy instance"},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        self.clients(\"murano\").sessions.deploy(environment.id,"},{"line_number":98,"context_line":"                                               session.id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_3c3b7ad3","line":95,"in_reply_to":"1aca2d91_688814e8","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"cbe107119a1d7c5095fc46acc5e61b362d3da8e0","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _get_app(self, full_package_name):"},{"line_number":107,"context_line":"        \"\"\"Get application from json file."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        :param full_package_name: fully_qualified_name of Murano package"},{"line_number":110,"context_line":"        :returns: Application instance"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_87e49f3b","line":107,"updated":"2015-05-06 15:00:59.000000000","message":"1) Where is json file here? I guess that `full_package_name\u0027 is a str name - if that is something different, then `:param full_package_name:\u0027 must be updated\n\n2) Whay `Get application\u0027 - where is getter here?  I only see simple composing of dict. Is that dict an application?","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _get_app(self, full_package_name):"},{"line_number":107,"context_line":"        \"\"\"Get application from json file."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        :param full_package_name: fully_qualified_name of Murano package"},{"line_number":110,"context_line":"        :returns: Application instance"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_fc5502c6","line":107,"in_reply_to":"1aca2d91_87e49f3b","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"cbe107119a1d7c5095fc46acc5e61b362d3da8e0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        data[\"?\"][\"type\"] \u003d full_package_name"},{"line_number":114,"context_line":"        data[\"?\"][\"id\"] \u003d str(uuid.uuid4())"},{"line_number":115,"context_line":"        data[\"name\"] \u003d \"app{0}\".format(data[\"?\"][\"id\"])"},{"line_number":116,"context_line":"        return data"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"},{"line_number":119,"context_line":"    def _get_deployments_list(self, environment_id):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_67a183a9","line":116,"updated":"2015-05-06 15:00:59.000000000","message":"IMO this looks simplier:\n\n app_id \u003d str(uuid.uuid4())\n return {\"?\": {\"id\": app_id, \"type\": full_package_name},\n         \"name\": \"app%s\" % app_id}","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        data[\"?\"][\"type\"] \u003d full_package_name"},{"line_number":114,"context_line":"        data[\"?\"][\"id\"] \u003d str(uuid.uuid4())"},{"line_number":115,"context_line":"        data[\"name\"] \u003d \"app{0}\".format(data[\"?\"][\"id\"])"},{"line_number":116,"context_line":"        return data"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"},{"line_number":119,"context_line":"    def _get_deployments_list(self, environment_id):"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_fc76223d","line":116,"in_reply_to":"1aca2d91_67a183a9","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8459552df318a72fcd35627b8d87547611403adc","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"},{"line_number":109,"context_line":"    def _get_deployments_list(self, environment_id):"},{"line_number":110,"context_line":"        \"\"\"Return list of deployments in specified environment."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        :param environment_id: Environment id"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_d36210ad","line":109,"updated":"2015-05-08 00:37:24.000000000","message":"I don\u0027t see any usage of this method","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"cf8cefd8c2df8030b6a146ee9769c4803b3d0184","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        )"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @base.atomic_action_timer(\"murano.get_deployments_list\")"},{"line_number":109,"context_line":"    def _get_deployments_list(self, environment_id):"},{"line_number":110,"context_line":"        \"\"\"Return list of deployments in specified environment."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        :param environment_id: Environment id"}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_b7b772d7","line":109,"in_reply_to":"1aca2d91_d36210ad","updated":"2015-05-08 22:06:56.000000000","message":"Done","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8459552df318a72fcd35627b8d87547611403adc","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        return self.clients(\"murano\").deployments.list(environment_id)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _get_app_register_data(self, full_package_name, image\u003dNone,"},{"line_number":119,"context_line":"                               flavor\u003dNone, instance\u003dFalse):"},{"line_number":120,"context_line":"        \"\"\"Composing dict from full package name"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_935c98ee","line":118,"updated":"2015-05-08 00:37:24.000000000","message":"I don\u0027t see any usage of this method","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"cf8cefd8c2df8030b6a146ee9769c4803b3d0184","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        return self.clients(\"murano\").deployments.list(environment_id)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _get_app_register_data(self, full_package_name, image\u003dNone,"},{"line_number":119,"context_line":"                               flavor\u003dNone, instance\u003dFalse):"},{"line_number":120,"context_line":"        \"\"\"Composing dict from full package name"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"1aca2d91_5786de13","line":118,"in_reply_to":"1aca2d91_935c98ee","updated":"2015-05-08 22:06:56.000000000","message":"line 82","commit_id":"a8a698ac3e9489a18e5722fc1b2c64b633cb0428"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"de30153ce8bd9af11993c7ede654c2cf9130a5b8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        :param flavor_name: Flavor name"},{"line_number":80,"context_line":"        :returns: Service instance"},{"line_number":81,"context_line":"        \"\"\""},{"line_number":82,"context_line":"        data \u003d self._get_app_register_data(full_package_name)"},{"line_number":83,"context_line":"        if atomic_action:"},{"line_number":84,"context_line":"            with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":85,"context_line":"                return self.clients(\"murano\").services.post("}],"source_content_type":"text/x-python","patch_set":26,"id":"1aca2d91_2c71c2a8","line":82,"updated":"2015-05-08 22:26:15.000000000","message":"Why we are running this each time when we are creating service. \n\nIt can be call only once.","commit_id":"3cb60d7df8415276c582febd46a1b73df5f58017"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c5014e9f9cf25b51b33f22dfb3cb203110d991e1","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _create_service(self, environment, session, data,"},{"line_number":69,"context_line":"                        image_name\u003dNone, flavor_name\u003dNone,"},{"line_number":70,"context_line":"                        atomic_action\u003dFalse):"},{"line_number":71,"context_line":"        \"\"\"Create Murano service."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_b8220eb8","line":70,"updated":"2015-05-12 14:33:34.000000000","message":"by default it should be true","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7c8355dc370cb5306fee25e26106828856b9770f","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _create_service(self, environment, session, data,"},{"line_number":69,"context_line":"                        image_name\u003dNone, flavor_name\u003dNone,"},{"line_number":70,"context_line":"                        atomic_action\u003dFalse):"},{"line_number":71,"context_line":"        \"\"\"Create Murano service."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_63874662","line":70,"in_reply_to":"9a0c5dc1_b8220eb8","updated":"2015-05-12 15:45:36.000000000","message":"Done","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c5014e9f9cf25b51b33f22dfb3cb203110d991e1","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @base.atomic_action_timer(\"murano.deploy_environment\")"},{"line_number":91,"context_line":"    def _deploy_environment(self, environment, session,"},{"line_number":92,"context_line":"                            timeout\u003d1200, check_interval\u003d5):"},{"line_number":93,"context_line":"        \"\"\"Deploy environment."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_7b1a5070","line":92,"updated":"2015-05-12 14:33:34.000000000","message":"this should be passed via CONF variables like in rest rally.","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7c8355dc370cb5306fee25e26106828856b9770f","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @base.atomic_action_timer(\"murano.deploy_environment\")"},{"line_number":91,"context_line":"    def _deploy_environment(self, environment, session,"},{"line_number":92,"context_line":"                            timeout\u003d1200, check_interval\u003d5):"},{"line_number":93,"context_line":"        \"\"\"Deploy environment."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a0c5dc1_23814e4b","line":92,"in_reply_to":"9a0c5dc1_7b1a5070","updated":"2015-05-12 15:45:36.000000000","message":"Done","commit_id":"47d273b6a2ddeaa6e654f7e4b31ae751334485c1"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"91d3c916cd934184309d017795293c9f9883e241","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _create_service(self, environment, session, full_package_name,"},{"line_number":87,"context_line":"                        image_name\u003dNone, flavor_name\u003dNone,"},{"line_number":88,"context_line":"                        atomic_action\u003dTrue):"},{"line_number":89,"context_line":"        \"\"\"Create Murano service."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_d76228d8","line":88,"updated":"2015-05-12 17:13:28.000000000","message":"Do you really need this \u0027atomic_action\u0027 parameter? The only call to this method sends atomic_action\u003dFalse anyway. Seems like we can throw it out","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"1216b781fee28d56491ca3e377c7b7b0835c914a","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _create_service(self, environment, session, full_package_name,"},{"line_number":87,"context_line":"                        image_name\u003dNone, flavor_name\u003dNone,"},{"line_number":88,"context_line":"                        atomic_action\u003dTrue):"},{"line_number":89,"context_line":"        \"\"\"Create Murano service."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        :param environment: Environment instance"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_1727a013","line":88,"in_reply_to":"9a0c5dc1_d76228d8","updated":"2015-05-12 17:31:23.000000000","message":"Mikhail, \n\nThese are utils they are expected to be called many times in different cases. IMHO","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"91d3c916cd934184309d017795293c9f9883e241","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        :param environment: Environment instance"},{"line_number":92,"context_line":"        :param session: Session instance"},{"line_number":93,"context_line":"        :param data: json content needed to deploy app"},{"line_number":94,"context_line":"        :param image_name: Image name"},{"line_number":95,"context_line":"        :param flavor_name: Flavor name"},{"line_number":96,"context_line":"        :returns: Service instance"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_77a01cf5","line":93,"updated":"2015-05-12 17:13:28.000000000","message":"Please update the docstring: the \"data\" parameter is no longer in the signature. Also the \"atomic_action\" parameter has no description (but anyway I\u0027d prefer to remove this parameter).","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b5f3695437ff7dfae461a2cb0372d01532d544fe","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        :param environment: Environment instance"},{"line_number":92,"context_line":"        :param session: Session instance"},{"line_number":93,"context_line":"        :param data: json content needed to deploy app"},{"line_number":94,"context_line":"        :param image_name: Image name"},{"line_number":95,"context_line":"        :param flavor_name: Flavor name"},{"line_number":96,"context_line":"        :returns: Service instance"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_77301c57","line":93,"in_reply_to":"9a0c5dc1_77a01cf5","updated":"2015-05-12 17:33:03.000000000","message":"Done","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"8059dd5819dcc2183283d8842bffa7fc14563c2a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                \"name\": self._generate_random_name(\"rally_\")}"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if atomic_action:"},{"line_number":104,"context_line":"            with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":105,"context_line":"                return self.clients(\"murano\").services.post("},{"line_number":106,"context_line":"                    environment_id\u003denvironment.id, path\u003d\"/\", data\u003ddata,"},{"line_number":107,"context_line":"                    session_id\u003dsession.id)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_d7e7c83e","line":104,"updated":"2015-05-12 17:15:50.000000000","message":"In fact I dislike that this \u0027atomic_action\u0027 parameter introduces copy-paste in lines 104-111.\n\nI think the user of this method can wrap anyway its call into this \"with base.AtomicAction(self, \"murano.create_service\")\" statement, instead of passing atomic_action\u003dFalse","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"1216b781fee28d56491ca3e377c7b7b0835c914a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                \"name\": self._generate_random_name(\"rally_\")}"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if atomic_action:"},{"line_number":104,"context_line":"            with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":105,"context_line":"                return self.clients(\"murano\").services.post("},{"line_number":106,"context_line":"                    environment_id\u003denvironment.id, path\u003d\"/\", data\u003ddata,"},{"line_number":107,"context_line":"                    session_id\u003dsession.id)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_d777c800","line":104,"in_reply_to":"9a0c5dc1_d7e7c83e","updated":"2015-05-12 17:31:23.000000000","message":"Copy paste is bad, but this approach is already used in Rally \n\nhttps://github.com/openstack/rally/blob/master/rally/benchmark/scenarios/swift/utils.py#L68-L75\n\n\nIn any case we can do the next here: \n\n\n  def action():\n      self.clients(\"murano\").services.post(\n                    environment_id\u003denvironment.id, path\u003d\"/\", data\u003ddata,\n                    session_id\u003dsession.id)\n\n  if atomic_action: \n     with base.AtomicAction(...):\n         return action()\n \n   return action()","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b5f3695437ff7dfae461a2cb0372d01532d544fe","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                \"name\": self._generate_random_name(\"rally_\")}"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        if atomic_action:"},{"line_number":104,"context_line":"            with base.AtomicAction(self, \"murano.create_service\"):"},{"line_number":105,"context_line":"                return self.clients(\"murano\").services.post("},{"line_number":106,"context_line":"                    environment_id\u003denvironment.id, path\u003d\"/\", data\u003ddata,"},{"line_number":107,"context_line":"                    session_id\u003dsession.id)"}],"source_content_type":"text/x-python","patch_set":32,"id":"9a0c5dc1_178a00c0","line":104,"in_reply_to":"9a0c5dc1_d7e7c83e","updated":"2015-05-12 17:33:03.000000000","message":"https://review.openstack.org/#/c/171625/24/rally/benchmark/scenarios/murano/environments.py please look here","commit_id":"6d8a64fa6d663aee5439ccd91e0b9d2de30354b1"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"86f0887da2a759ad910144b60cc712e56ddb753d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from rally.benchmark.scenarios import base"},{"line_number":21,"context_line":"from rally.benchmark import utils as bench_utils"},{"line_number":22,"context_line":"from rally.common import log as logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9a0c5dc1_20edb78b","line":23,"updated":"2015-05-12 21:19:37.000000000","message":"you don\u0027t use logging here, why do you import it","commit_id":"a5cdc2d99f68269cf3b15490a16ee9c32104d412"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b94ebe0dbeca0d5c1549d4311c6ffcd9b05f6b93","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from rally.benchmark.scenarios import base"},{"line_number":21,"context_line":"from rally.benchmark import utils as bench_utils"},{"line_number":22,"context_line":"from rally.common import log as logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9a0c5dc1_154c2e6f","line":23,"in_reply_to":"9a0c5dc1_20edb78b","updated":"2015-05-12 21:52:42.000000000","message":"Done","commit_id":"a5cdc2d99f68269cf3b15490a16ee9c32104d412"}],"tests/unit/benchmark/scenarios/murano/test_environments.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"cbe107119a1d7c5095fc46acc5e61b362d3da8e0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        mock_session.assert_called_once_with(fake_environment.id)"},{"line_number":67,"context_line":"        mock_delete.assert_called_once_with(fake_environment)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @mock.patch(\"six.moves.builtins.open\", side_effect\u003dmock.mock_open(),"},{"line_number":70,"context_line":"                create\u003dTrue)"},{"line_number":71,"context_line":"    @mock.patch(\"shutil.copy\")"},{"line_number":72,"context_line":"    @mock.patch(\"shutil.rmtree\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_9d62acd7","line":69,"updated":"2015-05-06 15:00:59.000000000","message":"The following mocks are not used and should be removed from the test:\n\n mock_open\n mock_copy, \n mock_rmtree\n mock_file\n mock_dump\n mock_json_load\n mock_random_name","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        mock_session.assert_called_once_with(fake_environment.id)"},{"line_number":67,"context_line":"        mock_delete.assert_called_once_with(fake_environment)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @mock.patch(\"six.moves.builtins.open\", side_effect\u003dmock.mock_open(),"},{"line_number":70,"context_line":"                create\u003dTrue)"},{"line_number":71,"context_line":"    @mock.patch(\"shutil.copy\")"},{"line_number":72,"context_line":"    @mock.patch(\"shutil.rmtree\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_fc06221f","line":69,"in_reply_to":"1aca2d91_9d62acd7","updated":"2015-05-07 12:00:53.000000000","message":"Even bigger, done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"3f2a4bbb0d8c11d2ad654311f427c5bf7eae8c4f","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(MuranoEnvironmentsTestCase, self).setUp()"},{"line_number":30,"context_line":"        self.context \u003d {"},{"line_number":31,"context_line":"            \"tenant\": {"},{"line_number":32,"context_line":"                \"packages\": [mock.MagicMock(fully_qualified_name\u003d\"fake\")]"},{"line_number":33,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a0c5dc1_cc761f3e","line":30,"updated":"2015-05-12 16:57:37.000000000","message":"I already told you about this antipattern. You shouldn\u0027t create variables using setUp and self.\n\nCreate method get_context()","commit_id":"7e4d33c852857fdbb8690c9cdeb2d002c4113063"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b5fd8cc814dfba8f42b7508162cff43933a24c55","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super(MuranoEnvironmentsTestCase, self).setUp()"},{"line_number":30,"context_line":"        self.context \u003d {"},{"line_number":31,"context_line":"            \"tenant\": {"},{"line_number":32,"context_line":"                \"packages\": [mock.MagicMock(fully_qualified_name\u003d\"fake\")]"},{"line_number":33,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a0c5dc1_2cedbb8b","line":30,"in_reply_to":"9a0c5dc1_cc761f3e","updated":"2015-05-12 17:03:39.000000000","message":"Done","commit_id":"7e4d33c852857fdbb8690c9cdeb2d002c4113063"}],"tests/unit/benchmark/scenarios/murano/test_utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"cbe107119a1d7c5095fc46acc5e61b362d3da8e0","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    @mock.patch(MRN_UTILS + \".MuranoScenario.clients\")"},{"line_number":96,"context_line":"    def test__add_app(self, mock_clients, get_app):"},{"line_number":97,"context_line":"        mock_clients(\"murano\").services.post.return_value \u003d \"app\""},{"line_number":98,"context_line":"        mock_env \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":99,"context_line":"        mock_sess \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":100,"context_line":"        scenario \u003d utils.MuranoScenario()"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_fdce40b3","line":98,"updated":"2015-05-06 15:00:59.000000000","message":"s/_ip/_id/  - \"fake_id\" is better value for `id\u0027","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    @mock.patch(MRN_UTILS + \".MuranoScenario.clients\")"},{"line_number":96,"context_line":"    def test__add_app(self, mock_clients, get_app):"},{"line_number":97,"context_line":"        mock_clients(\"murano\").services.post.return_value \u003d \"app\""},{"line_number":98,"context_line":"        mock_env \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":99,"context_line":"        mock_sess \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":100,"context_line":"        scenario \u003d utils.MuranoScenario()"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_8a047bc0","line":98,"in_reply_to":"1aca2d91_fdce40b3","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"cbe107119a1d7c5095fc46acc5e61b362d3da8e0","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    def test__add_app(self, mock_clients, get_app):"},{"line_number":97,"context_line":"        mock_clients(\"murano\").services.post.return_value \u003d \"app\""},{"line_number":98,"context_line":"        mock_env \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":99,"context_line":"        mock_sess \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":100,"context_line":"        scenario \u003d utils.MuranoScenario()"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        create_app \u003d scenario._add_app(mock_env, mock_sess, \"json_path\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_7dbb500f","line":99,"updated":"2015-05-06 15:00:59.000000000","message":"ditto","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"57c1172bde3835ea662f26056d00f23d077f78a3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    def test__add_app(self, mock_clients, get_app):"},{"line_number":97,"context_line":"        mock_clients(\"murano\").services.post.return_value \u003d \"app\""},{"line_number":98,"context_line":"        mock_env \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":99,"context_line":"        mock_sess \u003d mock.Mock(id\u003d\"fake_ip\")"},{"line_number":100,"context_line":"        scenario \u003d utils.MuranoScenario()"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        create_app \u003d scenario._add_app(mock_env, mock_sess, \"json_path\")"}],"source_content_type":"text/x-python","patch_set":19,"id":"1aca2d91_2a30c79d","line":99,"in_reply_to":"1aca2d91_7dbb500f","updated":"2015-05-07 12:00:53.000000000","message":"Done","commit_id":"d21f49666300839b2a8ce1213827b600d3617c0d"}]}
