)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"ea3a2c1a2a0fb3172171ad3dd3812cfd6950068c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete post_test_hook.generate_test_logs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Log files as .txt files, don\u0027t zip them, and put them where"},{"line_number":10,"context_line":"they need to be instead of copy them there in the post gate"},{"line_number":11,"context_line":"hook. The benefit to doing this is that we\u0027ll get logs"},{"line_number":12,"context_line":"for tests even if the job timed out."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a122d0e_436ed600","line":9,"updated":"2016-05-04 19:23:02.000000000","message":"nit: IMHO the description needs a little more context.\n\nMaybe something like \"The generate_test_logs() compress files and move log files in /tmp/ folder for later copy of the post gate hook.  This extra step be avoided place all of the files in an unique folder like /opt/stack/logs\"","commit_id":"8adc737cd17bbc4244e235b4c9343c6e8a08a2ab"}],"TESTING.rst":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"313247be18b9ca22509fa135c2b58fef010af3a6","unresolved":false,"context_lines":[{"line_number":502,"context_line":"When running full-stack tests on a clean VM for the first time, we"},{"line_number":503,"context_line":"advise to run ./stack.sh successfully to make sure all Neutron\u0027s"},{"line_number":504,"context_line":"dependencies are met. Full-stack based Neutron daemons produce logs to a"},{"line_number":505,"context_line":"sub-folder in /opt/stack/logs/dsvm-fullstack-logs (for example, a test named"},{"line_number":506,"context_line":"\"test_example\" will produce logs to /opt/stack/logs/dsvm-fullstack-logs/test_example/),"},{"line_number":507,"context_line":"so that will be a good place to look if your test is failing."},{"line_number":508,"context_line":"Logging from the test infrastructure itself is placed in:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_414c5d76","line":505,"updated":"2016-04-08 21:43:14.000000000","message":"what if the directory doesn\u0027t exist locally? Will this be created? If so I wonder if subsequent stack.sh may end up screw up permissions? If not since this is supposed to be owned by the \u0027stack\u0027 user?","commit_id":"1906a554878225a80225bfc56f9ce1f03792d2e5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ab3efa457098ddaa1b2279319a345e339d61d171","unresolved":false,"context_lines":[{"line_number":502,"context_line":"When running full-stack tests on a clean VM for the first time, we"},{"line_number":503,"context_line":"advise to run ./stack.sh successfully to make sure all Neutron\u0027s"},{"line_number":504,"context_line":"dependencies are met. Full-stack based Neutron daemons produce logs to a"},{"line_number":505,"context_line":"sub-folder in /opt/stack/logs/dsvm-fullstack-logs (for example, a test named"},{"line_number":506,"context_line":"\"test_example\" will produce logs to /opt/stack/logs/dsvm-fullstack-logs/test_example/),"},{"line_number":507,"context_line":"so that will be a good place to look if your test is failing."},{"line_number":508,"context_line":"Logging from the test infrastructure itself is placed in:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a1b2928_7ece7384","line":505,"updated":"2016-04-11 11:09:49.000000000","message":"Should we update here about OS_LOG_PATH variable? Not sure.","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"693c94906e69d68950e611878bbf6bf7bdc692fc","unresolved":false,"context_lines":[{"line_number":501,"context_line":"tools/configure_for_func_testing.sh is advised (As described above)."},{"line_number":502,"context_line":"When running full-stack tests on a clean VM for the first time, we"},{"line_number":503,"context_line":"advise to run ./stack.sh successfully to make sure all Neutron\u0027s"},{"line_number":504,"context_line":"dependencies are met. Full-stack based Neutron daemons produce logs to a"},{"line_number":505,"context_line":"sub-folder in /opt/stack/logs/dsvm-fullstack-logs (for example, a test named"},{"line_number":506,"context_line":"\"test_example\" will produce logs to /opt/stack/logs/dsvm-fullstack-logs/test_example/),"},{"line_number":507,"context_line":"so that will be a good place to look if your test is failing."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a1b2928_843e99b6","line":504,"range":{"start_line":504,"start_character":21,"end_line":504,"end_character":32},"updated":"2016-04-11 12:30:41.000000000","message":"and functional","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"693c94906e69d68950e611878bbf6bf7bdc692fc","unresolved":false,"context_lines":[{"line_number":502,"context_line":"When running full-stack tests on a clean VM for the first time, we"},{"line_number":503,"context_line":"advise to run ./stack.sh successfully to make sure all Neutron\u0027s"},{"line_number":504,"context_line":"dependencies are met. Full-stack based Neutron daemons produce logs to a"},{"line_number":505,"context_line":"sub-folder in /opt/stack/logs/dsvm-fullstack-logs (for example, a test named"},{"line_number":506,"context_line":"\"test_example\" will produce logs to /opt/stack/logs/dsvm-fullstack-logs/test_example/),"},{"line_number":507,"context_line":"so that will be a good place to look if your test is failing."},{"line_number":508,"context_line":"Logging from the test infrastructure itself is placed in:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a1b2928_84acd9ee","line":505,"range":{"start_line":505,"start_character":14,"end_line":505,"end_character":29},"updated":"2016-04-11 12:30:41.000000000","message":"Maybe worth documenting that logs are saved to location defined by OS_PATH_LOG, by default to \u0027/tmp\u0027. And that when ran with tox we override the value to /opt/stack/logs.","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"7b22b424ab52e0959e6927fd358fe4e2c96c64fa","unresolved":false,"context_lines":[{"line_number":502,"context_line":"When running full-stack tests on a clean VM for the first time, we"},{"line_number":503,"context_line":"advise to run ./stack.sh successfully to make sure all Neutron\u0027s"},{"line_number":504,"context_line":"dependencies are met. Full-stack based Neutron daemons produce logs to a"},{"line_number":505,"context_line":"sub-folder in /opt/stack/logs/dsvm-fullstack-logs (for example, a test named"},{"line_number":506,"context_line":"\"test_example\" will produce logs to /opt/stack/logs/dsvm-fullstack-logs/test_example/),"},{"line_number":507,"context_line":"so that will be a good place to look if your test is failing."},{"line_number":508,"context_line":"Logging from the test infrastructure itself is placed in:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_fea9f0e0","line":505,"range":{"start_line":505,"start_character":14,"end_line":505,"end_character":29},"in_reply_to":"7a1b2928_84acd9ee","updated":"2016-04-12 03:06:10.000000000","message":"I agree. Would be worth to add this info to documentation.","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"}],"neutron/tests/common/helpers.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6845691b66c2637e97d43d8cf0accccb9bfaae7e","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def get_test_log_path():"},{"line_number":49,"context_line":"    return os.environ[\u0027OS_LOG_PATH\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class FakePlugin(common_db_mixin.CommonDbMixin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a1b2928_f95d7ded","line":49,"range":{"start_line":49,"start_character":11,"end_line":49,"end_character":36},"updated":"2016-04-11 11:26:09.000000000","message":"It\u0027s gonna crash when running without this env variable","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"adf24a880f38e0f95c0da9a6d8d9ec56b658af49","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def get_test_log_path():"},{"line_number":49,"context_line":"    return os.environ[\u0027OS_LOG_PATH\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class FakePlugin(common_db_mixin.CommonDbMixin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a1b2928_8b37cce2","line":49,"range":{"start_line":49,"start_character":11,"end_line":49,"end_character":36},"in_reply_to":"7a1b2928_992c49ad","updated":"2016-04-11 11:37:11.000000000","message":"Ah right, I would also need to set it for functional...","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f33e27ebd0ff6d2e9765e8d804e26e60fd7261c7","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def get_test_log_path():"},{"line_number":49,"context_line":"    return os.environ[\u0027OS_LOG_PATH\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class FakePlugin(common_db_mixin.CommonDbMixin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a1b2928_992c49ad","line":49,"range":{"start_line":49,"start_character":11,"end_line":49,"end_character":36},"in_reply_to":"7a1b2928_b9582558","updated":"2016-04-11 11:35:40.000000000","message":"Doesn\u0027t fullstack tox target set the variable for us?","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2445ca3d75abb29b3fe92524406d0015e07a0816","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def get_test_log_path():"},{"line_number":49,"context_line":"    return os.environ[\u0027OS_LOG_PATH\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class FakePlugin(common_db_mixin.CommonDbMixin,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a1b2928_b9582558","line":49,"range":{"start_line":49,"start_character":11,"end_line":49,"end_character":36},"in_reply_to":"7a1b2928_f95d7ded","updated":"2016-04-11 11:35:14.000000000","message":"Maybe \u0027/tmp\u0027 as default location would be the best given that it will occur most likely on local environments.\n\n return os.environ.get(\u0027OS_LOG_PATH\u0027, \u0027/tmp\u0027)","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"}],"neutron/tests/fullstack/base.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"313247be18b9ca22509fa135c2b58fef010af3a6","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# This is the directory from which infra fetches log files for fullstack tests"},{"line_number":26,"context_line":"DEFAULT_LOG_DIR \u003d \u0027/opt/stack/logs/dsvm-fullstack-logs/\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseFullStackTestCase(base.MySQLTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_a16459e5","line":26,"updated":"2016-04-08 21:43:14.000000000","message":"base directory /tmp is supposed to exist, though /opt/stack might not (on local boxes) I wonder if this is going to cause some problem on clean boxes. Have you considered this?","commit_id":"1906a554878225a80225bfc56f9ce1f03792d2e5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dd6d3c169b54cf9d40feb59947dd6f4e7969674c","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# This is the directory from which infra fetches log files for fullstack tests"},{"line_number":26,"context_line":"DEFAULT_LOG_DIR \u003d \u0027/opt/stack/logs/dsvm-fullstack-logs/\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseFullStackTestCase(base.MySQLTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a1b2928_78afabe3","line":26,"in_reply_to":"7a1b2928_6d3ecbb9","updated":"2016-04-11 10:27:14.000000000","message":"Oh! We could then allow to change it using an envvar that is pass thru the tox filter (using passenv directive) and read it from here. Then the var will have a default value of /opt/stack/logs, and we would be ok.","commit_id":"1906a554878225a80225bfc56f9ce1f03792d2e5"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"028171bd31cc2710fa8b7dfc680bfd64a6e6a031","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# This is the directory from which infra fetches log files for fullstack tests"},{"line_number":26,"context_line":"DEFAULT_LOG_DIR \u003d \u0027/opt/stack/logs/dsvm-fullstack-logs/\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseFullStackTestCase(base.MySQLTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a1b2928_6d3ecbb9","line":26,"in_reply_to":"7a1b2928_e4baf8bf","updated":"2016-04-11 10:12:02.000000000","message":"But /opt/stack is configurable for devstack while here it\u0027s hardcoded...","commit_id":"1906a554878225a80225bfc56f9ce1f03792d2e5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"468cd74787b1a0eda4d4cb37c225464312b39119","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"# This is the directory from which infra fetches log files for fullstack tests"},{"line_number":26,"context_line":"DEFAULT_LOG_DIR \u003d \u0027/opt/stack/logs/dsvm-fullstack-logs/\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class BaseFullStackTestCase(base.MySQLTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a1b2928_e4baf8bf","line":26,"in_reply_to":"9a061dce_a16459e5","updated":"2016-04-11 10:01:27.000000000","message":"I think there is no way to execute fullstack target without running devstack to prepare the environment (since it relies on things like rabbitmq or mariadb).","commit_id":"1906a554878225a80225bfc56f9ce1f03792d2e5"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"7b22b424ab52e0959e6927fd358fe4e2c96c64fa","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        super(BaseFullStackTestCase, self).setUp()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        tests_base.setup_test_logging("},{"line_number":40,"context_line":"            cfg.CONF, DEFAULT_LOG_DIR, \u0027%s.txt\u0027 % self.get_name())"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # NOTE(ihrachys): seed should be reset before environment fixture below"},{"line_number":43,"context_line":"        # since the latter starts services that may rely on generated port"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_de81944f","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":46},"updated":"2016-04-12 03:06:10.000000000","message":"Why the change from log to txt?","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"0735b578b61cf40e97b26dfd3f1d676203174a4b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        super(BaseFullStackTestCase, self).setUp()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        tests_base.setup_test_logging("},{"line_number":40,"context_line":"            cfg.CONF, DEFAULT_LOG_DIR, \u0027%s.txt\u0027 % self.get_name())"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # NOTE(ihrachys): seed should be reset before environment fixture below"},{"line_number":43,"context_line":"        # since the latter starts services that may rely on generated port"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_5e02a43f","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":46},"in_reply_to":"5a18252c_1e994c6f","updated":"2016-04-12 03:48:05.000000000","message":"Thanks Henry for explanation.\nNah, better to do this explicit than depends on external script (even though still correct :))","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ea49b801191f88a5ed7dcb83e8c3dd7396400053","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        super(BaseFullStackTestCase, self).setUp()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        tests_base.setup_test_logging("},{"line_number":40,"context_line":"            cfg.CONF, DEFAULT_LOG_DIR, \u0027%s.txt\u0027 % self.get_name())"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # NOTE(ihrachys): seed should be reset before environment fixture below"},{"line_number":43,"context_line":"        # since the latter starts services that may rely on generated port"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_1e994c6f","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":46},"in_reply_to":"5a18252c_de81944f","updated":"2016-04-12 03:35:57.000000000","message":"Here\u0027s some information:\nhttps://github.com/openstack-infra/devstack-gate/blob/master/functions.sh#L933-L941\n\nWe could just leave it, as .log is renamed to .txt anyway.","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"}],"neutron/tests/functional/base.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"7b22b424ab52e0959e6927fd358fe4e2c96c64fa","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def setUp(self):"},{"line_number":35,"context_line":"        super(BaseLoggingTestCase, self).setUp()"},{"line_number":36,"context_line":"        base.setup_test_logging("},{"line_number":37,"context_line":"            cfg.CONF, DEFAULT_LOG_DIR, \"%s.txt\" % self.id())"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class BaseSudoTestCase(BaseLoggingTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_be865863","line":37,"range":{"start_line":37,"start_character":43,"end_line":37,"end_character":46},"updated":"2016-04-12 03:06:10.000000000","message":"ditto","commit_id":"541ceb689703b971679c25cab4547efe519ee15f"}],"tox.ini":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bdd6139bf9dd789a85b7d781064455029bba2c7e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"         # workaround for DB teardown lock contention (bug/1541742)"},{"line_number":85,"context_line":"         OS_TEST_TIMEOUT\u003d600"},{"line_number":86,"context_line":"         OS_TEST_PATH\u003d./neutron/tests/fullstack"},{"line_number":87,"context_line":"         OS_LOG_PATH\u003d{env:OS_LOG_PATH:/opt/stack/logs}"},{"line_number":88,"context_line":"sitepackages\u003dTrue"},{"line_number":89,"context_line":"deps \u003d"},{"line_number":90,"context_line":"  {[testenv:functional]deps}"}],"source_content_type":"text/x-properties","patch_set":3,"id":"7a1b2928_7377ccd4","line":87,"updated":"2016-04-11 11:01:52.000000000","message":"I think passenv is needed only when we don\u0027t extract the variable here with env: So I don\u0027t add it to passenv.","commit_id":"d08f361929c74a93c68949a4ce73f1a5dbeab74e"}]}
