)]}'
{"samples/tasks/contexts/keypair.json":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"            }"},{"line_number":19,"context_line":"        }"},{"line_number":20,"context_line":"    ]"},{"line_number":21,"context_line":"} "}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_c6125962","line":21,"range":{"start_line":21,"start_character":1,"end_line":21,"end_character":2},"updated":"2017-04-12 07:57:40.000000000","message":"trailing whitespace","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/manila-security-services.json":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                }"},{"line_number":57,"context_line":"            }"},{"line_number":58,"context_line":"        }"},{"line_number":59,"context_line":"    ]      "},{"line_number":60,"context_line":"}"}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_66226dbb","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":11},"updated":"2017-04-12 07:57:40.000000000","message":"trailing whitespace","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/manila-security-services.yaml":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":19,"context_line":"          use_share_networks: True"},{"line_number":20,"context_line":"        manila_security_services:"},{"line_number":21,"context_line":"          security_services:"},{"line_number":22,"context_line":"            -"},{"line_number":23,"context_line":"              type: \"ldap\""},{"line_number":24,"context_line":"              server: \"LDAP server address\""},{"line_number":25,"context_line":"              user: \"User that will be used\""},{"line_number":26,"context_line":"              password: \"Password for specified user\""},{"line_number":27,"context_line":"            -"},{"line_number":28,"context_line":"             type: \"kerberos\""},{"line_number":29,"context_line":"             dns_ip: \"IP address of DNS service to be used\""},{"line_number":30,"context_line":"             server: \"Kerberos server address\""},{"line_number":31,"context_line":"             domain: \"Kerberos realm\""},{"line_number":32,"context_line":"             user: \"User that will be used\""},{"line_number":33,"context_line":"             password: \"Password for specified user\""},{"line_number":34,"context_line":"            -"},{"line_number":35,"context_line":"              type: \"active_directory\""},{"line_number":36,"context_line":"              dns_ip: \"IP address of DNS service to be used\""},{"line_number":37,"context_line":"              domain: \"Domain from \u0027Active Directory\u0027\""},{"line_number":38,"context_line":"              user: \"User from \u0027Active Directory\u0027\""},{"line_number":39,"context_line":"              password: \"password for specified user\""},{"line_number":40,"context_line":"      sla:"},{"line_number":41,"context_line":"        failure_rate:"},{"line_number":42,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"bff0334d_8407aa18","line":39,"range":{"start_line":22,"start_character":0,"end_line":39,"end_character":53},"updated":"2017-04-12 07:57:40.000000000","message":"please fix indentation","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/manila-shares.json":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                }"},{"line_number":38,"context_line":"            }"},{"line_number":39,"context_line":"        }"},{"line_number":40,"context_line":"    ]      "},{"line_number":41,"context_line":"}"}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_2410de4d","line":40,"range":{"start_line":40,"start_character":5,"end_line":40,"end_character":11},"updated":"2017-04-12 07:57:40.000000000","message":"trailing whitespace","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/monasca-metrics.yaml":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"         - \"monasca-user\""},{"line_number":16,"context_line":"        monasca_metrics:"},{"line_number":17,"context_line":"          dimensions:"},{"line_number":18,"context_line":"              region:  \"RegionOne\""},{"line_number":19,"context_line":"              service: \"identity\""},{"line_number":20,"context_line":"              hostname: \"fake_host\""},{"line_number":21,"context_line":"              url: \"http://fake_host:5000/v2.0\""}],"source_content_type":"text/x-yaml","patch_set":26,"id":"bff0334d_e42e768a","line":18,"range":{"start_line":18,"start_character":10,"end_line":18,"end_character":14},"updated":"2017-04-12 07:57:40.000000000","message":"please fix indentation","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/profiles.json":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"                    \"tenants\": 1,"},{"line_number":15,"context_line":"                    \"users_per_tenant\": 1"},{"line_number":16,"context_line":"                },"},{"line_number":17,"context_line":"               \"profiles\": {"},{"line_number":18,"context_line":"                   \"type\": \"os.nova.server\","},{"line_number":19,"context_line":"                   \"version\": \"1.0\","},{"line_number":20,"context_line":"                   \"properties\": {"}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_2467beeb","line":17,"range":{"start_line":17,"start_character":12,"end_line":17,"end_character":15},"updated":"2017-04-12 07:57:40.000000000","message":"please fix indentation","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"samples/tasks/contexts/sahara-job-binaries.json":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"                },"},{"line_number":17,"context_line":"                \"sahara_job_binaries\": {"},{"line_number":18,"context_line":"                    \"libs\": [{"},{"line_number":19,"context_line":"                        \"name\": \"tests.jar\", "},{"line_number":20,"context_line":"                        \"download_url\": \"http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-hdfs/2.6.0/hadoop-hdfs-2.6.0-tests.jar\""},{"line_number":21,"context_line":"                    }]"},{"line_number":22,"context_line":"                },"}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_a4ee2e1f","line":19,"range":{"start_line":19,"start_character":44,"end_line":19,"end_character":45},"updated":"2017-04-12 07:57:40.000000000","message":"trailing whitespace","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"7b89e42f3106dde3ab9dfeb3c7f70949c74b2ab0","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                        \"download_url\": \"https://raw.githubusercontent.com/openstack/sahara/master/etc/edp-examples/pig-job/example.pig\""},{"line_number":44,"context_line":"                    }],"},{"line_number":45,"context_line":"                    \"libs\": [{"},{"line_number":46,"context_line":"                        \"name\": \"udf.jar\", "},{"line_number":47,"context_line":"                        \"download_url\": \"https://github.com/openstack/sahara/blob/master/etc/edp-examples/pig-job/udf.jar?raw\u003dtrue\""},{"line_number":48,"context_line":"                    }]"},{"line_number":49,"context_line":"                },"}],"source_content_type":"application/json","patch_set":26,"id":"bff0334d_84f1ea03","line":46,"range":{"start_line":46,"start_character":42,"end_line":46,"end_character":43},"updated":"2017-04-12 07:57:40.000000000","message":"trailing whitespace","commit_id":"558eade741c9a12dca118880e64487a5e46b6a14"}],"tests/functional/test_task_samples.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9793f2bda5a4b55613fae090de8475c12731ab24","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        rally(\"deployment create --name MAIN --filename %s\" % deployment_cfg,"},{"line_number":90,"context_line":"              write_report\u003dFalse)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        samples_path \u003d os.path.join("},{"line_number":93,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":94,"context_line":"            \"samples\", \"tasks\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        for dirname, dirnames, filenames in os.walk(samples_path):"},{"line_number":97,"context_line":"            # NOTE(rvasilets): Skip by suggest of boris-42 because in"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_db9e3262","line":94,"range":{"start_line":92,"start_character":8,"end_line":94,"end_character":31},"updated":"2017-04-07 10:24:07.000000000","message":"I do not like such obtaining of the path. It will be broken in case if we move that test file to another dir. Let\u0027s make it relative to the constant file: \n\n     import rally\n     \n     SAMPLES_PATH \u003d os.path.join(os.path.dirname(rally.__file__), os.pardir, \"samples\", tasks)","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"61d327d6b6999ddd759cb9f80377993acf553a27","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        rally(\"deployment create --name MAIN --filename %s\" % deployment_cfg,"},{"line_number":90,"context_line":"              write_report\u003dFalse)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        samples_path \u003d os.path.join("},{"line_number":93,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":94,"context_line":"            \"samples\", \"tasks\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        for dirname, dirnames, filenames in os.walk(samples_path):"},{"line_number":97,"context_line":"            # NOTE(rvasilets): Skip by suggest of boris-42 because in"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_1c73544f","line":94,"range":{"start_line":92,"start_character":8,"end_line":94,"end_character":31},"in_reply_to":"bff0334d_db9e3262","updated":"2017-04-08 08:00:59.000000000","message":"Done","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9793f2bda5a4b55613fae090de8475c12731ab24","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"                # NOTE(hughsaunders): Skip non config files"},{"line_number":105,"context_line":"                # (bug https://bugs.launchpad.net/rally/+bug/1314369)"},{"line_number":106,"context_line":"                if os.path.splitext(filename)[1] not in (\".json\", \".yaml\"):"},{"line_number":107,"context_line":"                    continue"},{"line_number":108,"context_line":"                with open(full_path) as task_file:"},{"line_number":109,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_5b2222a6","line":106,"range":{"start_line":106,"start_character":16,"end_line":106,"end_character":75},"updated":"2017-04-07 10:24:07.000000000","message":"there is no need to check both json and yaml, we have a unit test[*] that checks that pairs of yaml and json are equal.\n\n[*] - https://github.com/openstack/rally/blob/master/tests/unit/doc/test_task_samples.py#L112","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"61d327d6b6999ddd759cb9f80377993acf553a27","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"                # NOTE(hughsaunders): Skip non config files"},{"line_number":105,"context_line":"                # (bug https://bugs.launchpad.net/rally/+bug/1314369)"},{"line_number":106,"context_line":"                if os.path.splitext(filename)[1] not in (\".json\", \".yaml\"):"},{"line_number":107,"context_line":"                    continue"},{"line_number":108,"context_line":"                with open(full_path) as task_file:"},{"line_number":109,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_dc928c4b","line":106,"range":{"start_line":106,"start_character":16,"end_line":106,"end_character":75},"in_reply_to":"bff0334d_5b2222a6","updated":"2017-04-08 08:00:59.000000000","message":"Done","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9793f2bda5a4b55613fae090de8475c12731ab24","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":126,"context_line":"            \"samples\", \"tasks\", \"contexts\")"},{"line_number":127,"context_line":"        for p in all_plugins:"},{"line_number":128,"context_line":"            if p._get_base().__name__ \u003d\u003d \"Context\":"},{"line_number":129,"context_line":"                file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":130,"context_line":"                file_path \u003d os.path.join(samples_path, file_name)"},{"line_number":131,"context_line":"                if not os.path.exists(\"%s.json\" % file_path):"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_bba7eea7","line":128,"range":{"start_line":128,"start_character":12,"end_line":128,"end_character":51},"updated":"2017-04-07 10:24:07.000000000","message":"If you import base class of context, you can call get_all() on it and it will return only contexts","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"61d327d6b6999ddd759cb9f80377993acf553a27","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":126,"context_line":"            \"samples\", \"tasks\", \"contexts\")"},{"line_number":127,"context_line":"        for p in all_plugins:"},{"line_number":128,"context_line":"            if p._get_base().__name__ \u003d\u003d \"Context\":"},{"line_number":129,"context_line":"                file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":130,"context_line":"                file_path \u003d os.path.join(samples_path, file_name)"},{"line_number":131,"context_line":"                if not os.path.exists(\"%s.json\" % file_path):"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_7ca3809f","line":128,"range":{"start_line":128,"start_character":12,"end_line":128,"end_character":51},"in_reply_to":"bff0334d_bba7eea7","updated":"2017-04-08 08:00:59.000000000","message":"Done","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9793f2bda5a4b55613fae090de8475c12731ab24","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                  full_path)"},{"line_number":119,"context_line":"                            raise"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @plugins.ensure_plugins_are_loaded"},{"line_number":122,"context_line":"    def test_context_samples_found(self):"},{"line_number":123,"context_line":"        all_plugins \u003d plugin.Plugin.get_all()"},{"line_number":124,"context_line":"        samples_path \u003d os.path.join("},{"line_number":125,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":126,"context_line":"            \"samples\", \"tasks\", \"contexts\")"},{"line_number":127,"context_line":"        for p in all_plugins:"},{"line_number":128,"context_line":"            if p._get_base().__name__ \u003d\u003d \"Context\":"},{"line_number":129,"context_line":"                file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":130,"context_line":"                file_path \u003d os.path.join(samples_path, file_name)"},{"line_number":131,"context_line":"                if not os.path.exists(\"%s.json\" % file_path):"},{"line_number":132,"context_line":"                    raise Exception(\"There is no json sample file of %s\" %"},{"line_number":133,"context_line":"                                    p.get_name())"},{"line_number":134,"context_line":"                if not os.path.exists(\"%s.yaml\" % file_path):"},{"line_number":135,"context_line":"                    raise Exception(\"There is no yaml sample file of %s\" %"},{"line_number":136,"context_line":"                                    p.get_name())"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_1b7eda18","line":136,"range":{"start_line":121,"start_character":4,"end_line":136,"end_character":49},"updated":"2017-04-07 10:24:07.000000000","message":"let\u0027s do it in the unit tests - https://github.com/openstack/rally/blob/master/tests/unit/doc/test_task_samples.py","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"61d327d6b6999ddd759cb9f80377993acf553a27","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                  full_path)"},{"line_number":119,"context_line":"                            raise"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @plugins.ensure_plugins_are_loaded"},{"line_number":122,"context_line":"    def test_context_samples_found(self):"},{"line_number":123,"context_line":"        all_plugins \u003d plugin.Plugin.get_all()"},{"line_number":124,"context_line":"        samples_path \u003d os.path.join("},{"line_number":125,"context_line":"            os.path.dirname(__file__), os.pardir, os.pardir,"},{"line_number":126,"context_line":"            \"samples\", \"tasks\", \"contexts\")"},{"line_number":127,"context_line":"        for p in all_plugins:"},{"line_number":128,"context_line":"            if p._get_base().__name__ \u003d\u003d \"Context\":"},{"line_number":129,"context_line":"                file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":130,"context_line":"                file_path \u003d os.path.join(samples_path, file_name)"},{"line_number":131,"context_line":"                if not os.path.exists(\"%s.json\" % file_path):"},{"line_number":132,"context_line":"                    raise Exception(\"There is no json sample file of %s\" %"},{"line_number":133,"context_line":"                                    p.get_name())"},{"line_number":134,"context_line":"                if not os.path.exists(\"%s.yaml\" % file_path):"},{"line_number":135,"context_line":"                    raise Exception(\"There is no yaml sample file of %s\" %"},{"line_number":136,"context_line":"                                    p.get_name())"}],"source_content_type":"text/x-python","patch_set":22,"id":"bff0334d_5c9e7c54","line":136,"range":{"start_line":121,"start_character":4,"end_line":136,"end_character":49},"in_reply_to":"bff0334d_1b7eda18","updated":"2017-04-08 08:00:59.000000000","message":"Done","commit_id":"c32eca08f208bb1837a95d70a29c7e27909cde51"}],"tests/unit/doc/test_task_samples.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6349c6f18f49380e40945476d37e8dd96cba0afe","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":158,"context_line":"            file_path \u003d os.path.join(context_samples_path, file_name)"},{"line_number":159,"context_line":"            if not os.path.exists(\"%s.json\" % file_path):"},{"line_number":160,"context_line":"                raise Exception(\"There is no json sample file of %s\" %"},{"line_number":161,"context_line":"                                p.get_name())"}],"source_content_type":"text/x-python","patch_set":24,"id":"bff0334d_5dc9ba23","line":161,"range":{"start_line":160,"start_character":16,"end_line":161,"end_character":45},"updated":"2017-04-10 14:57:00.000000000","message":"it is better to use `self.fail(\"msg\")`","commit_id":"02877d6c42b96cdce2027df8a9a44bf4dcbc1f3c"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0228c5c673c09a5eb757400fd3fee7a788a14865","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        context_samples_path \u003d os.path.join(self.samples_path, \"contexts\")"},{"line_number":153,"context_line":"        for p in all_plugins:"},{"line_number":154,"context_line":"            # except contexts which belongs to tests module"},{"line_number":155,"context_line":"            if p.__module__.split(\".\")[0] \u003d\u003d \"tests\":"},{"line_number":156,"context_line":"                continue"},{"line_number":157,"context_line":"            file_name \u003d p.get_name().replace(\"_\", \"-\")"},{"line_number":158,"context_line":"            file_path \u003d os.path.join(context_samples_path, file_name)"}],"source_content_type":"text/x-python","patch_set":25,"id":"bff0334d_62b95213","line":155,"range":{"start_line":155,"start_character":12,"end_line":155,"end_character":53},"updated":"2017-04-11 15:26:00.000000000","message":"let\u0027s try another check:\n\n    import inspect\n    import os\n    import rally\n\n    if not inspect.getfile(p).startswith(os.path.dirname(rally.__file__))","commit_id":"28bf5c276b1de03f8a52b05d591fcc4dee00f450"}]}
