)]}'
{"releasenotes/notes/tempest-init-global-config-dir-location-changes-12260255871d3a2b.yaml":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"702acf1c1b3eecfafd56df7a0523f733fe792e57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3aaa91ec_7eafafe3","updated":"2016-06-21 20:39:28.000000000","message":"If I understood this right, I think we should also say that on a fresh install there is an extra step to be done before tempest init / workspace can be used successfully, that is copying config-generator.tempest.conf from where it was deployed by the tempest install process into one of the three known folders below.","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0f1e627fc55c4812bf8fe4ab50a7e9e9e71bd1fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3aaa91ec_fea0bfa7","in_reply_to":"3aaa91ec_7eafafe3","updated":"2016-06-21 21:30:14.000000000","message":"Err, so I want to have a followon change where we move that to live somewhere in repo, it\u0027s actually static and doesn\u0027t have to live in etc/ like it does now. I\u0027ll put that change under this one so we don\u0027t need an extra comment","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"702acf1c1b3eecfafd56df7a0523f733fe792e57","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The location on disk that the *tempest init* command looks for has changed."},{"line_number":4,"context_line":"    Previously it would attempt to use python packaging\u0027s data files to guess"},{"line_number":5,"context_line":"    where python was installing setuptools/distutils were installing data files,"},{"line_number":6,"context_line":"    which was incredibly unreliable and depended on how you installed tempest"},{"line_number":7,"context_line":"    and which versions of setuptools, distutils, and python you had installed."},{"line_number":8,"context_line":"    Instead, now it will use either /etc/tempest,"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_b862ceab","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":32},"updated":"2016-06-21 20:39:28.000000000","message":"this is redundant?","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0f1e627fc55c4812bf8fe4ab50a7e9e9e71bd1fb","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The location on disk that the *tempest init* command looks for has changed."},{"line_number":4,"context_line":"    Previously it would attempt to use python packaging\u0027s data files to guess"},{"line_number":5,"context_line":"    where python was installing setuptools/distutils were installing data files,"},{"line_number":6,"context_line":"    which was incredibly unreliable and depended on how you installed tempest"},{"line_number":7,"context_line":"    and which versions of setuptools, distutils, and python you had installed."},{"line_number":8,"context_line":"    Instead, now it will use either /etc/tempest,"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_c4589459","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":32},"in_reply_to":"3aaa91ec_b862ceab","updated":"2016-06-21 21:30:14.000000000","message":"yep","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"702acf1c1b3eecfafd56df7a0523f733fe792e57","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    and which versions of setuptools, distutils, and python you had installed."},{"line_number":8,"context_line":"    Instead, now it will use either /etc/tempest,"},{"line_number":9,"context_line":"    $XDG_CONFIG_PATH/.config/tempest, or ~/.tempest/etc (attempted in that"},{"line_number":10,"context_line":"    order) If none of these exist it will create an empty ~/.tempest/etc"},{"line_number":11,"context_line":"    directory. If you were relying on the previous behavior and none of these"},{"line_number":12,"context_line":"    directories were being used you will need to move the files to live in one"},{"line_number":13,"context_line":"    of these directories."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_f813b60b","line":10,"range":{"start_line":10,"start_character":9,"end_line":10,"end_character":10},"updated":"2016-06-21 20:39:28.000000000","message":". missing","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0f1e627fc55c4812bf8fe4ab50a7e9e9e71bd1fb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    and which versions of setuptools, distutils, and python you had installed."},{"line_number":8,"context_line":"    Instead, now it will use either /etc/tempest,"},{"line_number":9,"context_line":"    $XDG_CONFIG_PATH/.config/tempest, or ~/.tempest/etc (attempted in that"},{"line_number":10,"context_line":"    order) If none of these exist it will create an empty ~/.tempest/etc"},{"line_number":11,"context_line":"    directory. If you were relying on the previous behavior and none of these"},{"line_number":12,"context_line":"    directories were being used you will need to move the files to live in one"},{"line_number":13,"context_line":"    of these directories."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_0431fc0b","line":10,"range":{"start_line":10,"start_character":9,"end_line":10,"end_character":10},"in_reply_to":"3aaa91ec_f813b60b","updated":"2016-06-21 21:30:14.000000000","message":"yep","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"702acf1c1b3eecfafd56df7a0523f733fe792e57","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    directory. If you were relying on the previous behavior and none of these"},{"line_number":12,"context_line":"    directories were being used you will need to move the files to live in one"},{"line_number":13,"context_line":"    of these directories."},{"line_number":14,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_78e4e63a","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":4},"updated":"2016-06-21 20:39:28.000000000","message":"extra space","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0f1e627fc55c4812bf8fe4ab50a7e9e9e71bd1fb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    directory. If you were relying on the previous behavior and none of these"},{"line_number":12,"context_line":"    directories were being used you will need to move the files to live in one"},{"line_number":13,"context_line":"    of these directories."},{"line_number":14,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3aaa91ec_8425ecc3","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":4},"in_reply_to":"3aaa91ec_78e4e63a","updated":"2016-06-21 21:30:14.000000000","message":"meh, it\u0027s yaml nothing will fail because of this, but I\u0027ll fix it on the respin","commit_id":"d5bacd3bfe1aadbb5ae8c2bb1753eb5775d69564"}],"tempest/cmd/init.py":[{"author":{"_account_id":9364,"name":"Stephen Lowrie","email":"stephen.lowrie@rackspace.com","username":"step6829"},"change_message_id":"1bb60921168c3520659fffc8b501831b8ca0faf7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    elif os.path.isdir(user_global_path):"},{"line_number":59,"context_line":"        return user_global_path"},{"line_number":60,"context_line":"    else:"},{"line_number":61,"context_line":"        os.mkdir(user_global_path)"},{"line_number":62,"context_line":"        return user_global_path"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_29da1a79","line":61,"range":{"start_line":61,"start_character":8,"end_line":61,"end_character":34},"updated":"2016-06-21 18:54:19.000000000","message":"Is ~/.tempest guaranteed to exist? If not then this should be os.makedirs because os.mkdir will throw an error if the parent of the directory it\u0027s trying to make doesn\u0027t exist.","commit_id":"8fe9821a159887080ccabb67ebaeb9147901c99f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8f6215485ad89bec5ca9c7f79e81ae894b27c81c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    elif os.path.isdir(user_global_path):"},{"line_number":59,"context_line":"        return user_global_path"},{"line_number":60,"context_line":"    else:"},{"line_number":61,"context_line":"        os.mkdir(user_global_path)"},{"line_number":62,"context_line":"        return user_global_path"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_29e4da0b","line":61,"range":{"start_line":61,"start_character":8,"end_line":61,"end_character":34},"in_reply_to":"3aaa91ec_29da1a79","updated":"2016-06-21 18:57:09.000000000","message":"Yeah this should os.makedirs, there is no guarantee ~/.tempest will exist. I\u0027ll update this on the next respin","commit_id":"8fe9821a159887080ccabb67ebaeb9147901c99f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"3b6fc7be8e21229d84f420c5e7c3abdab465562d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def generate_sample_config(self, local_dir, config_dir):"},{"line_number":113,"context_line":"        conf_generator \u003d os.path.join(config_dir,"},{"line_number":114,"context_line":"                                      \u0027config-generator.tempest.conf\u0027)"},{"line_number":115,"context_line":"        if os.path.isfiledir(conf_generator):"},{"line_number":116,"context_line":"            subprocess.call([\u0027oslo-config-generator\u0027, \u0027--config-file\u0027,"},{"line_number":117,"context_line":"                             conf_generator],"},{"line_number":118,"context_line":"                            cwd\u003dlocal_dir)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_09b0fedc","line":115,"updated":"2016-06-21 18:59:51.000000000","message":"typo: should be os.path.isfile(...","commit_id":"8fe9821a159887080ccabb67ebaeb9147901c99f"},{"author":{"_account_id":10644,"name":"David Paterson","email":"davpat2112@yahoo.com","username":"dpaterson"},"change_message_id":"0f1ad5d9663540ad02fa507d9ab0a763e2191911","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    if os.path.isdir(global_conf_dir):"},{"line_number":56,"context_line":"        return global_conf_dir"},{"line_number":57,"context_line":"    elif os.path.isdir(user_xdg_global_path):"},{"line_number":58,"context_line":"        return user_global_path"},{"line_number":59,"context_line":"    elif os.path.isdir(user_global_path):"},{"line_number":60,"context_line":"        return user_global_path"},{"line_number":61,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_0d463f23","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":31},"updated":"2016-06-21 22:34:17.000000000","message":"Shouldn\u0027t this case be returning user_xdg_global_path?","commit_id":"e55e0128292e32448f341ae8c7ff09b4132e360b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"3b2ef0ff7fe32d722388d72dd98d29d3f72a2af7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    if os.path.isdir(global_conf_dir):"},{"line_number":56,"context_line":"        return global_conf_dir"},{"line_number":57,"context_line":"    elif os.path.isdir(user_xdg_global_path):"},{"line_number":58,"context_line":"        return user_global_path"},{"line_number":59,"context_line":"    elif os.path.isdir(user_global_path):"},{"line_number":60,"context_line":"        return user_global_path"},{"line_number":61,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_8daa2f6f","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":31},"in_reply_to":"3aaa91ec_0d463f23","updated":"2016-06-21 22:42:15.000000000","message":"oops, yep","commit_id":"e55e0128292e32448f341ae8c7ff09b4132e360b"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"14dae9031070b9a34192d85633dad779f47d1eb8","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    :return: default config dir"},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    global_conf_dir \u003d \u0027/etc/tempest\u0027"},{"line_number":52,"context_line":"    user_xdg_global_path \u003d os.path.isdir(os.environ.get("},{"line_number":53,"context_line":"        \u0027XDG_CONFIG_HOME\u0027, os.path.expanduser(\u0027~/.config/tempest\u0027)))"},{"line_number":54,"context_line":"    user_global_path \u003d os.path.join(os.path.expanduser(\u0027~\u0027), \u0027.tempest/etc\u0027)"},{"line_number":55,"context_line":"    if os.path.isdir(global_conf_dir):"},{"line_number":56,"context_line":"        return global_conf_dir"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_3b888ee7","line":53,"range":{"start_line":52,"start_character":0,"end_line":53,"end_character":68},"updated":"2016-06-22 01:39:36.000000000","message":"os.path.isdir() returns a boolean value :)\n\nand I think you wanted this to be \n\n user_xdg_global_path \u003d os.path.join(\n        os.environ.get(\u0027XDG_CONFIG_HOME\u0027,\n                                 os.path.expanduser(\u0027~/.config\u0027)),\n        \u0027tempest\u0027)\n\nOtherwise, copy_config() copies all of the config files to local_dir.","commit_id":"678dc5ebb94d27e7aab970efe3634543c73c2ab0"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"91842e64a944f11e65bd7dcd54980a767ca29e0c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    :return: default config dir"},{"line_number":50,"context_line":"    \"\"\""},{"line_number":51,"context_line":"    global_conf_dir \u003d \u0027/etc/tempest\u0027"},{"line_number":52,"context_line":"    user_xdg_global_path \u003d os.path.isdir(os.environ.get("},{"line_number":53,"context_line":"        \u0027XDG_CONFIG_HOME\u0027, os.path.expanduser(\u0027~/.config/tempest\u0027)))"},{"line_number":54,"context_line":"    user_global_path \u003d os.path.join(os.path.expanduser(\u0027~\u0027), \u0027.tempest/etc\u0027)"},{"line_number":55,"context_line":"    if os.path.isdir(global_conf_dir):"},{"line_number":56,"context_line":"        return global_conf_dir"}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_2f5fa873","line":53,"range":{"start_line":52,"start_character":0,"end_line":53,"end_character":68},"in_reply_to":"3aaa91ec_3b888ee7","updated":"2016-06-22 03:05:10.000000000","message":"d\u0027oh I was sloppy, that was from an earlier rev where this was right in the if. I\u0027ll respin it quickly","commit_id":"678dc5ebb94d27e7aab970efe3634543c73c2ab0"}]}
