)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"089ae587ef4bed3d8a3e4257be3ef9558cf02687","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It includes mistral action for generating clouds.yaml once"},{"line_number":10,"context_line":"overcloud deployment finishes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1719369"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie9004222ca5f77031795eaa4b4a757da8b409d05"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9fb8cfa7_adde3cd7","line":11,"updated":"2019-06-13 07:26:35.000000000","message":"nice where are we using it please?","commit_id":"261a8756039dcb3d3a2a70d8d9dab050653b0221"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"67ed4e444603b0bc7786f2ca8f7bd5f7e0b23f31","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It includes mistral action for generating clouds.yaml once"},{"line_number":10,"context_line":"overcloud deployment finishes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1719369"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie9004222ca5f77031795eaa4b4a757da8b409d05"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9fb8cfa7_37761640","line":11,"in_reply_to":"9fb8cfa7_adde3cd7","updated":"2019-06-13 09:45:43.000000000","message":"Here we are testing it to use overcloud clouds.yaml file for running tempest tests using os_tempest https://review.opendev.org/#/c/639324/","commit_id":"261a8756039dcb3d3a2a70d8d9dab050653b0221"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ac8a3409027cb4ad9415d6e405982d8fbe79d66a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  clouds_yaml file."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-Bug: #1719369"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ie9004222ca5f77031795eaa4b4a757da8b409d05"},{"line_number":18,"context_line":"Signed-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7faddb67_fb6c8909","line":16,"updated":"2019-07-08 07:05:06.000000000","message":"can you point back to the client review? used in https://review.opendev.org/#/c/664586/","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a1b86ac4c28ad9440cae2584d4bbe1dcf755c022","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  clouds_yaml file."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-Bug: #1719369"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ie9004222ca5f77031795eaa4b4a757da8b409d05"},{"line_number":18,"context_line":"Signed-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7faddb67_ac4a5524","line":16,"in_reply_to":"7faddb67_fb6c8909","updated":"2019-07-08 09:44:48.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"}],"setup.cfg":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ac8a3409027cb4ad9415d6e405982d8fbe79d66a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    tripleo.deployment.get_deployment_status \u003d tripleo_common.actions.deployment:DeploymentStatusAction"},{"line_number":100,"context_line":"    tripleo.deployment.convert_status \u003d tripleo_common.actions.deployment:ConvertStatusAction"},{"line_number":101,"context_line":"    tripleo.deployment.overcloudrc \u003d tripleo_common.actions.deployment:OvercloudRcAction"},{"line_number":102,"context_line":"    tripleo.deployment.createcloudyaml \u003d tripleo_common.actions.deployment:CreateCloudYamlAction"},{"line_number":103,"context_line":"    tripleo.derive_params.convert_number_to_range_list \u003d tripleo_common.actions.derive_params:ConvertNumberToRangeListAction"},{"line_number":104,"context_line":"    tripleo.derive_params.convert_range_to_number_list \u003d tripleo_common.actions.derive_params:ConvertRangeToNumberListAction"},{"line_number":105,"context_line":"    tripleo.derive_params.get_dpdk_nics_numa_info \u003d tripleo_common.actions.derive_params:GetDpdkNicsNumaInfoAction"}],"source_content_type":"text/x-ttcn-cfg","patch_set":20,"id":"7faddb67_5b9a7d14","line":102,"updated":"2019-07-08 07:05:06.000000000","message":"can we call it createcloudsyaml if you get an update please?","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a1b86ac4c28ad9440cae2584d4bbe1dcf755c022","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    tripleo.deployment.get_deployment_status \u003d tripleo_common.actions.deployment:DeploymentStatusAction"},{"line_number":100,"context_line":"    tripleo.deployment.convert_status \u003d tripleo_common.actions.deployment:ConvertStatusAction"},{"line_number":101,"context_line":"    tripleo.deployment.overcloudrc \u003d tripleo_common.actions.deployment:OvercloudRcAction"},{"line_number":102,"context_line":"    tripleo.deployment.createcloudyaml \u003d tripleo_common.actions.deployment:CreateCloudYamlAction"},{"line_number":103,"context_line":"    tripleo.derive_params.convert_number_to_range_list \u003d tripleo_common.actions.derive_params:ConvertNumberToRangeListAction"},{"line_number":104,"context_line":"    tripleo.derive_params.convert_range_to_number_list \u003d tripleo_common.actions.derive_params:ConvertRangeToNumberListAction"},{"line_number":105,"context_line":"    tripleo.derive_params.get_dpdk_nics_numa_info \u003d tripleo_common.actions.derive_params:GetDpdkNicsNumaInfoAction"}],"source_content_type":"text/x-ttcn-cfg","patch_set":20,"id":"7faddb67_2c84255e","line":102,"in_reply_to":"7faddb67_5b9a7d14","updated":"2019-07-08 09:44:48.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"}],"tripleo_common/actions/deployment.py":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"c3a1393c0e3c27a6387e12699077b5b28a226824","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                              region_name)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"class CreateCloudYamlAction(base.TripleoAction):"},{"line_number":327,"context_line":"    \"\"\"Generate the overcloud clouds.yaml for a plan"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Given the name of a container, generate the overcloud clouds.yaml"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fb8cfa7_8411e906","line":326,"range":{"start_line":326,"start_character":40,"end_line":326,"end_character":41},"updated":"2019-06-12 08:09:48.000000000","message":"TripleOAction","commit_id":"d4c27ee14b2436a649eefafb6220ef05595de9cd"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"708e9d62e1bb57cad8408eacf4c184be8ad7eb97","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Relative import for cloud_yaml.py script"},{"line_number":37,"context_line":"sys.path.append("},{"line_number":38,"context_line":"    \u0027/usr/share/openstack-tripleo-heat-templates/extraconfig/post_deploy\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"try:"},{"line_number":41,"context_line":"    import clouds_yaml"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_a1e57f0c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":74},"updated":"2019-06-19 14:55:20.000000000","message":"This line gives me headaches, is againt all python coding practices.","commit_id":"0efc343d4413e384c6f42c6eb81345246634ec42"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"c79f9239377d13e3a88dd7cfd984b9ef24cb09b0","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Relative import for cloud_yaml.py script"},{"line_number":37,"context_line":"sys.path.append("},{"line_number":38,"context_line":"    \u0027/usr/share/openstack-tripleo-heat-templates/extraconfig/post_deploy\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"try:"},{"line_number":41,"context_line":"    import clouds_yaml"}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_f75fb56f","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":74},"in_reply_to":"9fb8cfa7_a1e57f0c","updated":"2019-06-19 16:25:50.000000000","message":"Would\u0027nt it make more sense the other way around, the script in THT\u0027s extraconfig imports cloud_yaml from tripleo-common?","commit_id":"0efc343d4413e384c6f42c6eb81345246634ec42"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"708e9d62e1bb57cad8408eacf4c184be8ad7eb97","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \u0027/usr/share/openstack-tripleo-heat-templates/extraconfig/post_deploy\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"try:"},{"line_number":41,"context_line":"    import clouds_yaml"},{"line_number":42,"context_line":"except ImportError:"},{"line_number":43,"context_line":"    pass"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_a1cedf80","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":8},"updated":"2019-06-19 14:55:20.000000000","message":"Makes no sense because it will hide an import failure and later I see a class trying to return that. Code will clearly fail in an ugly way if we merge this.","commit_id":"0efc343d4413e384c6f42c6eb81345246634ec42"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"17b54d33641b9cdfef55e81a928137ec09805233","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \u0027/usr/share/openstack-tripleo-heat-templates/extraconfig/post_deploy\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"try:"},{"line_number":41,"context_line":"    import clouds_yaml"},{"line_number":42,"context_line":"except ImportError:"},{"line_number":43,"context_line":"    pass"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9fb8cfa7_61c46741","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":8},"in_reply_to":"9fb8cfa7_a1cedf80","updated":"2019-06-19 15:00:33.000000000","message":"Yes this is reversed. I would recommend you port the code from the post_deploy script into a tripleo-common module and then import it in the post_deploy script rather than the other way around","commit_id":"0efc343d4413e384c6f42c6eb81345246634ec42"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"fdc9d3f8bda60b4dc97a04e14b093bf3558b9030","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        auth_url \u003d auth_url.replace(\u0027/v2.0\u0027, \u0027\u0027)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        # Create a dict needed for creating clouds.yaml"},{"line_number":352,"context_line":"        CLOUD \u003d {cloud_name: {\u0027auth\u0027: {\u0027auth_url\u0027: auth_url,"},{"line_number":353,"context_line":"                                       \u0027project_name\u0027: \u0027admin\u0027,"},{"line_number":354,"context_line":"                                       \u0027project_domain_name\u0027: \u0027Default\u0027,"},{"line_number":355,"context_line":"                                       \u0027username\u0027: \u0027admin\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fb8cfa7_f2bb08e2","line":352,"range":{"start_line":352,"start_character":8,"end_line":352,"end_character":13},"updated":"2019-06-24 08:23:28.000000000","message":"use a lowercase var name, like \"cloud\", or \"data\". Uppercase is reserved to consts/globals.","commit_id":"36c7faf8cdf0e7eb6406e816f77c61658cabe3de"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"230c7e0a6f52bb9e767bd3f1759549c24e0e1c81","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        auth_url \u003d auth_url.replace(\u0027/v2.0\u0027, \u0027\u0027)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        # Create a dict needed for creating clouds.yaml"},{"line_number":352,"context_line":"        CLOUD \u003d {cloud_name: {\u0027auth\u0027: {\u0027auth_url\u0027: auth_url,"},{"line_number":353,"context_line":"                                       \u0027project_name\u0027: \u0027admin\u0027,"},{"line_number":354,"context_line":"                                       \u0027project_domain_name\u0027: \u0027Default\u0027,"},{"line_number":355,"context_line":"                                       \u0027username\u0027: \u0027admin\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fb8cfa7_264885ca","line":352,"range":{"start_line":352,"start_character":8,"end_line":352,"end_character":13},"in_reply_to":"9fb8cfa7_f2bb08e2","updated":"2019-06-25 15:32:07.000000000","message":"Done","commit_id":"36c7faf8cdf0e7eb6406e816f77c61658cabe3de"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ac8a3409027cb4ad9415d6e405982d8fbe79d66a","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                              region_name)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"class CreateCloudYamlAction(base.TripleOAction):"},{"line_number":327,"context_line":"    \"\"\"Generate the overcloud clouds.yaml for a plan"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Given the name of a container, generate the overcloud clouds.yaml"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_7b92d9f8","line":326,"updated":"2019-07-08 07:05:06.000000000","message":"CreateCloudsYamlAction? (edit not trying to be pedantic here but you\u0027ve called it cloudsyaml in other places (https://review.opendev.org/#/c/664568/20/tripleo_common/utils/clouds_yaml.py)","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a1b86ac4c28ad9440cae2584d4bbe1dcf755c022","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                                              region_name)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"class CreateCloudYamlAction(base.TripleOAction):"},{"line_number":327,"context_line":"    \"\"\"Generate the overcloud clouds.yaml for a plan"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Given the name of a container, generate the overcloud clouds.yaml"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_8c8e7976","line":326,"in_reply_to":"7faddb67_7b92d9f8","updated":"2019-07-08 09:44:48.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":326,"context_line":"class CreateCloudsYamlAction(base.TripleOAction):"},{"line_number":327,"context_line":"    \"\"\"Generate the overcloud clouds.yaml for a plan"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Given the name of a container, generate the overcloud clouds.yaml"},{"line_number":330,"context_line":"    files needed to access the overcloud via the CLI."},{"line_number":331,"context_line":"    \"\"\""},{"line_number":332,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_071342b7","line":329,"updated":"2019-07-08 12:33:32.000000000","message":"Description is not accurate because here there is no step of creating file only creating content of file","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":326,"context_line":"class CreateCloudsYamlAction(base.TripleOAction):"},{"line_number":327,"context_line":"    \"\"\"Generate the overcloud clouds.yaml for a plan"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    Given the name of a container, generate the overcloud clouds.yaml"},{"line_number":330,"context_line":"    files needed to access the overcloud via the CLI."},{"line_number":331,"context_line":"    \"\"\""},{"line_number":332,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_7d387b3c","line":329,"in_reply_to":"7faddb67_071342b7","updated":"2019-07-09 06:36:40.000000000","message":"Done","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        parameter_defaults \u003d env[\u0027parameter_defaults\u0027]"},{"line_number":343,"context_line":"        passwords \u003d env[\u0027passwords\u0027]"},{"line_number":344,"context_line":"        # Retrive values for cloud from a stack"},{"line_number":345,"context_line":"        admin_pass \u003d parameter_defaults.get(\u0027AdminPassword\u0027)"},{"line_number":346,"context_line":"        if admin_pass is None:"},{"line_number":347,"context_line":"            admin_pass \u003d passwords[\u0027AdminPassword\u0027]"},{"line_number":348,"context_line":"        region_name \u003d parameter_defaults.get(\u0027KeystoneRegion\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_47a61ac4","line":345,"updated":"2019-07-08 12:33:32.000000000","message":"nit: this can be one line without if-statement.\nadmin_pass \u003d parameter_defaults.get(\u0027AdminPassword\u0027, passwords[\u0027AdminPassword\u0027])","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        parameter_defaults \u003d env[\u0027parameter_defaults\u0027]"},{"line_number":343,"context_line":"        passwords \u003d env[\u0027passwords\u0027]"},{"line_number":344,"context_line":"        # Retrive values for cloud from a stack"},{"line_number":345,"context_line":"        admin_pass \u003d parameter_defaults.get(\u0027AdminPassword\u0027)"},{"line_number":346,"context_line":"        if admin_pass is None:"},{"line_number":347,"context_line":"            admin_pass \u003d passwords[\u0027AdminPassword\u0027]"},{"line_number":348,"context_line":"        region_name \u003d parameter_defaults.get(\u0027KeystoneRegion\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_9d2bf7e9","line":345,"in_reply_to":"7faddb67_47a61ac4","updated":"2019-07-09 06:36:40.000000000","message":"Done","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        admin_pass \u003d parameter_defaults.get(\u0027AdminPassword\u0027)"},{"line_number":346,"context_line":"        if admin_pass is None:"},{"line_number":347,"context_line":"            admin_pass \u003d passwords[\u0027AdminPassword\u0027]"},{"line_number":348,"context_line":"        region_name \u003d parameter_defaults.get(\u0027KeystoneRegion\u0027)"},{"line_number":349,"context_line":"        if region_name is None:"},{"line_number":350,"context_line":"            region_name \u003d \u0027regionOne\u0027"},{"line_number":351,"context_line":"        cloud_name \u003d stack.stack_name"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_07b022f4","line":348,"updated":"2019-07-08 12:33:32.000000000","message":"nit: simillar to code above: region_name \u003d parameter_defaults.get(\u0027KeystoneRegion\u0027, \u0027regionOne\u0027)","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        admin_pass \u003d parameter_defaults.get(\u0027AdminPassword\u0027)"},{"line_number":346,"context_line":"        if admin_pass is None:"},{"line_number":347,"context_line":"            admin_pass \u003d passwords[\u0027AdminPassword\u0027]"},{"line_number":348,"context_line":"        region_name \u003d parameter_defaults.get(\u0027KeystoneRegion\u0027)"},{"line_number":349,"context_line":"        if region_name is None:"},{"line_number":350,"context_line":"            region_name \u003d \u0027regionOne\u0027"},{"line_number":351,"context_line":"        cloud_name \u003d stack.stack_name"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_bd2ef3f7","line":348,"in_reply_to":"7faddb67_07b022f4","updated":"2019-07-09 06:36:40.000000000","message":"Done","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        if region_name is None:"},{"line_number":350,"context_line":"            region_name \u003d \u0027regionOne\u0027"},{"line_number":351,"context_line":"        cloud_name \u003d stack.stack_name"},{"line_number":352,"context_line":"        auth_url \u003d overcloudrc.get_overcloud_endpoint(stack)"},{"line_number":353,"context_line":"        auth_url \u003d auth_url.replace(\u0027/v2.0\u0027, \u0027\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # Create a dict needed for creating clouds.yaml"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_879bb270","line":352,"updated":"2019-07-08 12:33:32.000000000","message":"nit: can be one line: auth_url \u003d overcloudrc.get_overcloud_endpoint(stack).replace(\u0027/v2.0\u0027, \u0027\u0027)\nIMO improve readability","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        if region_name is None:"},{"line_number":350,"context_line":"            region_name \u003d \u0027regionOne\u0027"},{"line_number":351,"context_line":"        cloud_name \u003d stack.stack_name"},{"line_number":352,"context_line":"        auth_url \u003d overcloudrc.get_overcloud_endpoint(stack)"},{"line_number":353,"context_line":"        auth_url \u003d auth_url.replace(\u0027/v2.0\u0027, \u0027\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        # Create a dict needed for creating clouds.yaml"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_5d357f45","line":352,"in_reply_to":"7faddb67_879bb270","updated":"2019-07-09 06:36:40.000000000","message":"Done","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"}],"tripleo_common/utils/clouds_yaml.py":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"089ae587ef4bed3d8a3e4257be3ef9558cf02687","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        user_clouds \u003d _read_clouds_yaml(USER_CLOUDS_YAML)"},{"line_number":73,"context_line":"        global_clouds \u003d _read_clouds_yaml(GLOBAL_CLOUDS_YAML)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        user_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":76,"context_line":"        global_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        _write_clouds_yaml(USER_CLOUDS_YAML, user_clouds)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_4df30075","line":75,"updated":"2019-06-13 07:26:35.000000000","message":"do we really need to write to the global one too?","commit_id":"261a8756039dcb3d3a2a70d8d9dab050653b0221"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"67ed4e444603b0bc7786f2ca8f7bd5f7e0b23f31","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        user_clouds \u003d _read_clouds_yaml(USER_CLOUDS_YAML)"},{"line_number":73,"context_line":"        global_clouds \u003d _read_clouds_yaml(GLOBAL_CLOUDS_YAML)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        user_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":76,"context_line":"        global_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        _write_clouds_yaml(USER_CLOUDS_YAML, user_clouds)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_d7ac5aa0","line":75,"in_reply_to":"9fb8cfa7_4df30075","updated":"2019-06-13 09:45:43.000000000","message":"I think yes, openstacksdk generally looks for clouds.yaml file at two places: \u0027/etc/openstack and ~/.config/openstack\u0027. So we need to update the same at both places .","commit_id":"261a8756039dcb3d3a2a70d8d9dab050653b0221"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bf0b7216c470870afcb635717097b19e2cc24fe9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        user_clouds \u003d _read_clouds_yaml(USER_CLOUDS_YAML)"},{"line_number":73,"context_line":"        global_clouds \u003d _read_clouds_yaml(GLOBAL_CLOUDS_YAML)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        user_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":76,"context_line":"        global_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        _write_clouds_yaml(USER_CLOUDS_YAML, user_clouds)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_f765de1e","line":75,"in_reply_to":"9fb8cfa7_d7ac5aa0","updated":"2019-06-13 10:09:27.000000000","message":"+1 on updating the global one too.","commit_id":"261a8756039dcb3d3a2a70d8d9dab050653b0221"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"cacbf3252bf0b1c7257f0e8ff3bb6d7131cb19db","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":82,"context_line":"    except Exception:"},{"line_number":83,"context_line":"        print(\u0027ERROR: Create clouds.yaml failed.\u0027)"},{"line_number":84,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_96fb1246","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":50},"updated":"2019-06-17 08:31:00.000000000","message":"nit, we probably don\u0027t want to use print here.\n\nSuggest we change it to just raise the exception with a message?\n\nexcept Exception as e:\n    raise Exception(\u0027Create clouds.yaml failed: %s\u0027 % e)","commit_id":"8b30d47af4a0489b83307b8f702b5667eeac463f"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1af137c9c37aec146c85f9a41580017916787bac","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":82,"context_line":"    except Exception:"},{"line_number":83,"context_line":"        print(\u0027ERROR: Create clouds.yaml failed.\u0027)"},{"line_number":84,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_9690f2ef","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":50},"in_reply_to":"9fb8cfa7_96fb1246","updated":"2019-06-17 08:32:12.000000000","message":"Or we could use logging instead of print.","commit_id":"8b30d47af4a0489b83307b8f702b5667eeac463f"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"fdc9d3f8bda60b4dc97a04e14b093bf3558b9030","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def _get_cloud_config():"},{"line_number":39,"context_line":"    CLOUD_CONFIG \u003d {"},{"line_number":40,"context_line":"        os.environ[\u0027cloud_name\u0027]: {"},{"line_number":41,"context_line":"            \u0027auth\u0027: {"},{"line_number":42,"context_line":"                \u0027auth_url\u0027: os.environ[\u0027auth_url\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fb8cfa7_92cacc6b","line":39,"range":{"start_line":39,"start_character":4,"end_line":39,"end_character":16},"updated":"2019-06-24 08:23:28.000000000","message":"same, lowercase it, even if it is used for only two lines.","commit_id":"36c7faf8cdf0e7eb6406e816f77c61658cabe3de"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"fdc9d3f8bda60b4dc97a04e14b093bf3558b9030","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        yaml.dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def create(CLOUD\u003dNone):"},{"line_number":74,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    :param CLOUD: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fb8cfa7_b2aa7082","line":73,"range":{"start_line":73,"start_character":11,"end_line":73,"end_character":16},"updated":"2019-06-24 08:23:28.000000000","message":"do not user uppercase on param names. based on what it does i think using \"config\" or \"data\" var name would be more appropiate.","commit_id":"36c7faf8cdf0e7eb6406e816f77c61658cabe3de"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"49193d534ace2eafd831d9d71270ef825efb6389","unresolved":false,"context_lines":[{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _get_cloud_config():"},{"line_number":31,"context_line":"    cloud_config \u003d {"},{"line_number":32,"context_line":"        os.environ[\u0027cloud_name\u0027]: {"},{"line_number":33,"context_line":"            \u0027auth\u0027: {"},{"line_number":34,"context_line":"                \u0027auth_url\u0027: os.environ[\u0027auth_url\u0027],"},{"line_number":35,"context_line":"                \u0027project_name\u0027: os.environ[\u0027project_name\u0027],"},{"line_number":36,"context_line":"                \u0027project_domain_name\u0027: os.environ[\u0027project_domain_name\u0027],"},{"line_number":37,"context_line":"                \u0027username\u0027: os.environ[\u0027user_name\u0027],"},{"line_number":38,"context_line":"                \u0027user_domain_name\u0027: os.environ[\u0027user_domain_name\u0027],"},{"line_number":39,"context_line":"                \u0027password\u0027: os.environ[\u0027admin_password\u0027]},"},{"line_number":40,"context_line":"            \u0027region_name\u0027: os.environ[\u0027region_name\u0027],"},{"line_number":41,"context_line":"            \u0027identity_api_version\u0027: os.environ[\u0027identity_api_version\u0027]}}"},{"line_number":42,"context_line":"    return cloud_config"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def _create_clouds_yaml(clouds_yaml):"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_e4d07253","line":42,"range":{"start_line":30,"start_character":0,"end_line":42,"end_character":23},"updated":"2019-07-05 18:07:11.000000000","message":"It would make sense to move this part to the THT extraconfig python file and do this there?\n\n  cloud \u003d _get_cloud_config()\n  clouds_yaml.create(cloud\u003dcloud)\n\nThen we can drop L72 and L73 below, and make CLOUD a mandatory parameter got the create function in L65?","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"cd5d9a12d28eebeb34963b005e6cb9fc61641a5f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _get_cloud_config():"},{"line_number":31,"context_line":"    cloud_config \u003d {"},{"line_number":32,"context_line":"        os.environ[\u0027cloud_name\u0027]: {"},{"line_number":33,"context_line":"            \u0027auth\u0027: {"},{"line_number":34,"context_line":"                \u0027auth_url\u0027: os.environ[\u0027auth_url\u0027],"},{"line_number":35,"context_line":"                \u0027project_name\u0027: os.environ[\u0027project_name\u0027],"},{"line_number":36,"context_line":"                \u0027project_domain_name\u0027: os.environ[\u0027project_domain_name\u0027],"},{"line_number":37,"context_line":"                \u0027username\u0027: os.environ[\u0027user_name\u0027],"},{"line_number":38,"context_line":"                \u0027user_domain_name\u0027: os.environ[\u0027user_domain_name\u0027],"},{"line_number":39,"context_line":"                \u0027password\u0027: os.environ[\u0027admin_password\u0027]},"},{"line_number":40,"context_line":"            \u0027region_name\u0027: os.environ[\u0027region_name\u0027],"},{"line_number":41,"context_line":"            \u0027identity_api_version\u0027: os.environ[\u0027identity_api_version\u0027]}}"},{"line_number":42,"context_line":"    return cloud_config"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def _create_clouds_yaml(clouds_yaml):"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_cccc718b","line":42,"range":{"start_line":30,"start_character":0,"end_line":42,"end_character":23},"in_reply_to":"7faddb67_7b2e59a6","updated":"2019-07-08 09:51:22.000000000","message":"moved here https://review.opendev.org/#/c/665604/21/extraconfig/post_deploy/clouds_yaml.py@19","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ac8a3409027cb4ad9415d6e405982d8fbe79d66a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _get_cloud_config():"},{"line_number":31,"context_line":"    cloud_config \u003d {"},{"line_number":32,"context_line":"        os.environ[\u0027cloud_name\u0027]: {"},{"line_number":33,"context_line":"            \u0027auth\u0027: {"},{"line_number":34,"context_line":"                \u0027auth_url\u0027: os.environ[\u0027auth_url\u0027],"},{"line_number":35,"context_line":"                \u0027project_name\u0027: os.environ[\u0027project_name\u0027],"},{"line_number":36,"context_line":"                \u0027project_domain_name\u0027: os.environ[\u0027project_domain_name\u0027],"},{"line_number":37,"context_line":"                \u0027username\u0027: os.environ[\u0027user_name\u0027],"},{"line_number":38,"context_line":"                \u0027user_domain_name\u0027: os.environ[\u0027user_domain_name\u0027],"},{"line_number":39,"context_line":"                \u0027password\u0027: os.environ[\u0027admin_password\u0027]},"},{"line_number":40,"context_line":"            \u0027region_name\u0027: os.environ[\u0027region_name\u0027],"},{"line_number":41,"context_line":"            \u0027identity_api_version\u0027: os.environ[\u0027identity_api_version\u0027]}}"},{"line_number":42,"context_line":"    return cloud_config"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def _create_clouds_yaml(clouds_yaml):"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_7b2e59a6","line":42,"range":{"start_line":30,"start_character":0,"end_line":42,"end_character":23},"in_reply_to":"7faddb67_e4d07253","updated":"2019-07-08 07:05:06.000000000","message":"makes sense +1","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"5c81d7acaea69fa0078dce893174254dd97e8835","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        user_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":92,"context_line":"        _write_clouds_yaml(USER_CLOUDS_YAML, user_clouds)"},{"line_number":93,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":94,"context_line":"        print(\"The clouds.yaml file is at {0}\".format(USER_CLOUDS_YAML))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Undercloud deployment is done as a root user and overcloud"},{"line_number":97,"context_line":"        # deployment is done as a normal user. So clouds.yaml creation"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_646002d0","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":13},"updated":"2019-07-05 17:58:51.000000000","message":"Would make sense to use log instead. But this can be a follow up.","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"01a915b3f00ad56f3afc08e4ff956674299d79ac","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        user_clouds[\u0027clouds\u0027].update(CLOUD)"},{"line_number":92,"context_line":"        _write_clouds_yaml(USER_CLOUDS_YAML, user_clouds)"},{"line_number":93,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":94,"context_line":"        print(\"The clouds.yaml file is at {0}\".format(USER_CLOUDS_YAML))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Undercloud deployment is done as a root user and overcloud"},{"line_number":97,"context_line":"        # deployment is done as a normal user. So clouds.yaml creation"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_dbf66d90","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":13},"in_reply_to":"7faddb67_646002d0","updated":"2019-07-08 06:38:03.000000000","message":"Yes, we can implement in a new review.","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"5c81d7acaea69fa0078dce893174254dd97e8835","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":94,"context_line":"        print(\"The clouds.yaml file is at {0}\".format(USER_CLOUDS_YAML))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Undercloud deployment is done as a root user and overcloud"},{"line_number":97,"context_line":"        # deployment is done as a normal user. So clouds.yaml creation"},{"line_number":98,"context_line":"        # will fail during overcloud deployment as user has no permission"},{"line_number":99,"context_line":"        # to access /etc/openstack. In order to fix, we are copying the"},{"line_number":100,"context_line":"        # files as with sudo from ~/.config/openstack/ to /etc/openstack."},{"line_number":101,"context_line":"        # so that any service running as a root does not fails with missing"},{"line_number":102,"context_line":"        # clouds.yaml."},{"line_number":103,"context_line":"        if not os.path.isdir(GLOBAL_OS_DIR):"},{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_8412de57","line":102,"range":{"start_line":96,"start_character":8,"end_line":102,"end_character":22},"updated":"2019-07-05 17:58:51.000000000","message":"We should change this comment, we are no longer copying the file using sudo?","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"01a915b3f00ad56f3afc08e4ff956674299d79ac","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        os.chown(USER_CLOUDS_YAML, user_id, group_id)"},{"line_number":94,"context_line":"        print(\"The clouds.yaml file is at {0}\".format(USER_CLOUDS_YAML))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # Undercloud deployment is done as a root user and overcloud"},{"line_number":97,"context_line":"        # deployment is done as a normal user. So clouds.yaml creation"},{"line_number":98,"context_line":"        # will fail during overcloud deployment as user has no permission"},{"line_number":99,"context_line":"        # to access /etc/openstack. In order to fix, we are copying the"},{"line_number":100,"context_line":"        # files as with sudo from ~/.config/openstack/ to /etc/openstack."},{"line_number":101,"context_line":"        # so that any service running as a root does not fails with missing"},{"line_number":102,"context_line":"        # clouds.yaml."},{"line_number":103,"context_line":"        if not os.path.isdir(GLOBAL_OS_DIR):"},{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_7bf3b99f","line":102,"range":{"start_line":96,"start_character":8,"end_line":102,"end_character":22},"in_reply_to":"7faddb67_8412de57","updated":"2019-07-08 06:38:03.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"5c81d7acaea69fa0078dce893174254dd97e8835","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # so that any service running as a root does not fails with missing"},{"line_number":102,"context_line":"        # clouds.yaml."},{"line_number":103,"context_line":"        if not os.path.isdir(GLOBAL_OS_DIR):"},{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if not os.path.isfile(GLOBAL_CLOUDS_YAML):"},{"line_number":107,"context_line":"            _create_clouds_yaml(GLOBAL_CLOUDS_YAML)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_392eb7a5","line":104,"range":{"start_line":104,"start_character":12,"end_line":104,"end_character":38},"updated":"2019-07-05 17:58:51.000000000","message":"If we are not root, and the directory does not exist. Will it not fail to create the directory?","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"01a915b3f00ad56f3afc08e4ff956674299d79ac","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # so that any service running as a root does not fails with missing"},{"line_number":102,"context_line":"        # clouds.yaml."},{"line_number":103,"context_line":"        if not os.path.isdir(GLOBAL_OS_DIR):"},{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if not os.path.isfile(GLOBAL_CLOUDS_YAML):"},{"line_number":107,"context_line":"            _create_clouds_yaml(GLOBAL_CLOUDS_YAML)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_9bf0f592","line":104,"range":{"start_line":104,"start_character":12,"end_line":104,"end_character":38},"in_reply_to":"7faddb67_392eb7a5","updated":"2019-07-08 06:38:03.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"5c81d7acaea69fa0078dce893174254dd97e8835","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if not os.path.isfile(GLOBAL_CLOUDS_YAML):"},{"line_number":107,"context_line":"            _create_clouds_yaml(GLOBAL_CLOUDS_YAML)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if os.geteuid() \u003d\u003d 0:"},{"line_number":110,"context_line":"            global_clouds \u003d _read_clouds_yaml(GLOBAL_CLOUDS_YAML)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_044d8e71","line":107,"range":{"start_line":107,"start_character":12,"end_line":107,"end_character":51},"updated":"2019-07-05 17:58:51.000000000","message":"Will this work if the file does not exist, and we are not root?","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"01a915b3f00ad56f3afc08e4ff956674299d79ac","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            os.makedirs(GLOBAL_OS_DIR)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        if not os.path.isfile(GLOBAL_CLOUDS_YAML):"},{"line_number":107,"context_line":"            _create_clouds_yaml(GLOBAL_CLOUDS_YAML)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        if os.geteuid() \u003d\u003d 0:"},{"line_number":110,"context_line":"            global_clouds \u003d _read_clouds_yaml(GLOBAL_CLOUDS_YAML)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_3b2b01ec","line":107,"range":{"start_line":107,"start_character":12,"end_line":107,"end_character":51},"in_reply_to":"7faddb67_044d8e71","updated":"2019-07-08 06:38:03.000000000","message":"Done","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"5c81d7acaea69fa0078dce893174254dd97e8835","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            print(\"The clouds.yaml file is at {0}\".format(GLOBAL_CLOUDS_YAML))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    except Exception as e:"},{"line_number":116,"context_line":"        print(\u0027Create clouds.yaml failed: {}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":20,"id":"7faddb67_c4a4560b","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":13},"updated":"2019-07-05 17:58:51.000000000","message":"We should raise the Exception here.","commit_id":"f0e59de14c056b458fe25c8531dd570e26ff2efc"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        yaml.safe_dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def create(CLOUD\u003dNone):"},{"line_number":51,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param CLOUD: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_87565229","line":50,"updated":"2019-07-08 12:33:32.000000000","message":"nit: this name can be more specific \u0027create clouds yaml\u0027 IMO it\u0027s better and more self explanatory\nalso it should be cloud because capital letter names are reserved for names of global variables","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        yaml.safe_dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def create(CLOUD\u003dNone):"},{"line_number":51,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param CLOUD: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_9d1457a2","line":50,"in_reply_to":"7faddb67_87565229","updated":"2019-07-09 06:36:40.000000000","message":"Done","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":11082,"name":"Kamil Sambor","email":"ksambor@redhat.com","username":"ksambor"},"change_message_id":"17b1406625c4f16c286041c4133043eaf86aaa6e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            print(\"The clouds.yaml file is at {0}\".format(GLOBAL_CLOUDS_YAML))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    except Exception as e:"},{"line_number":91,"context_line":"        print(\u0027Create clouds.yaml failed: {}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_f20ee6e3","line":91,"updated":"2019-07-08 12:33:32.000000000","message":"This should rise error, otherwise we will not know about this to the end of deployment. This error should be catch inside tripleoclient code https://review.opendev.org/#/c/664586/39/tripleoclient/v1/overcloud_deploy.py@1014","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"af5aec93925d8146ad68d1bbb402d907787a4e97","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            print(\"The clouds.yaml file is at {0}\".format(GLOBAL_CLOUDS_YAML))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    except Exception as e:"},{"line_number":91,"context_line":"        print(\u0027Create clouds.yaml failed: {}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_5d0edf8d","line":91,"in_reply_to":"7faddb67_f20ee6e3","updated":"2019-07-09 06:36:40.000000000","message":"The error message gets printed in the undercloud and overcloud deployment logs","commit_id":"4f8584e8ee85660fa14f8f41f3cafca5528eb822"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"6ccefde2bce5e2b3ab62d1ce794dc76b8d64b90c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import yaml"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"USER \u003d os.getenv(\u0027SUDO_USER\u0027, os.getenv(\u0027USER\u0027))"},{"line_number":21,"context_line":"HOME_DIR \u003d os.path.abspath(os.path.expanduser(\"~{0}\".format(USER)))"},{"line_number":22,"context_line":"CONFIG_DIR \u003d os.path.join(HOME_DIR, \u0027.config\u0027)"},{"line_number":23,"context_line":"OS_DIR \u003d os.path.join(CONFIG_DIR, \u0027openstack\u0027)"},{"line_number":24,"context_line":"USER_CLOUDS_YAML \u003d os.path.join(OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"GLOBAL_OS_DIR \u003d os.path.join(\u0027/etc\u0027, \u0027openstack\u0027)"},{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_a280008d","line":24,"range":{"start_line":20,"start_character":0,"end_line":24,"end_character":54},"updated":"2019-07-09 18:21:38.000000000","message":"these should live in tripleoclient (probably tripleoclient constants)","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f668e4ee192f922effefb6fc60abee520c406bb1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import yaml"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"USER \u003d os.getenv(\u0027SUDO_USER\u0027, os.getenv(\u0027USER\u0027))"},{"line_number":21,"context_line":"HOME_DIR \u003d os.path.abspath(os.path.expanduser(\"~{0}\".format(USER)))"},{"line_number":22,"context_line":"CONFIG_DIR \u003d os.path.join(HOME_DIR, \u0027.config\u0027)"},{"line_number":23,"context_line":"OS_DIR \u003d os.path.join(CONFIG_DIR, \u0027openstack\u0027)"},{"line_number":24,"context_line":"USER_CLOUDS_YAML \u003d os.path.join(OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"GLOBAL_OS_DIR \u003d os.path.join(\u0027/etc\u0027, \u0027openstack\u0027)"},{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_3c99906d","line":24,"range":{"start_line":20,"start_character":0,"end_line":24,"end_character":54},"in_reply_to":"7faddb67_a280008d","updated":"2019-07-10 07:06:21.000000000","message":"Yes, moving","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"6ccefde2bce5e2b3ab62d1ce794dc76b8d64b90c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"OS_DIR \u003d os.path.join(CONFIG_DIR, \u0027openstack\u0027)"},{"line_number":24,"context_line":"USER_CLOUDS_YAML \u003d os.path.join(OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"GLOBAL_OS_DIR \u003d os.path.join(\u0027/etc\u0027, \u0027openstack\u0027)"},{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _create_clouds_yaml(clouds_yaml):"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_42702cdd","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":63},"updated":"2019-07-09 18:21:38.000000000","message":"This should live in constants if we\u0027re going to keep this in tripleo-common","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f668e4ee192f922effefb6fc60abee520c406bb1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"OS_DIR \u003d os.path.join(CONFIG_DIR, \u0027openstack\u0027)"},{"line_number":24,"context_line":"USER_CLOUDS_YAML \u003d os.path.join(OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"GLOBAL_OS_DIR \u003d os.path.join(\u0027/etc\u0027, \u0027openstack\u0027)"},{"line_number":27,"context_line":"GLOBAL_CLOUDS_YAML \u003d os.path.join(GLOBAL_OS_DIR, \u0027clouds.yaml\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def _create_clouds_yaml(clouds_yaml):"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_fc40d837","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":63},"in_reply_to":"7faddb67_42702cdd","updated":"2019-07-10 07:06:21.000000000","message":"Done","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"6ccefde2bce5e2b3ab62d1ce794dc76b8d64b90c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        yaml.safe_dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def create_clouds_yaml(cloud\u003dNone):"},{"line_number":51,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param CLOUD: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_22b89074","line":50,"updated":"2019-07-09 18:21:38.000000000","message":"the pathing/ownership items should be a parameter for this function. You could use the global_os_dir as the default values if you wanted to with root/root for the user group.  The point of the code here is to be library that can be leveraged via THT \u0026 tripleoclient. This isn\u0027t really a library function, it\u0027s just a copy/pasta of the hack script we had.  THT/tripleoclient would provide the cloud auth data and yaml location (with ownership info) and the only thing this should be doing is the clouds.yaml content management.","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f668e4ee192f922effefb6fc60abee520c406bb1","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        yaml.safe_dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def create_clouds_yaml(cloud\u003dNone):"},{"line_number":51,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    :param CLOUD: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":25,"id":"7faddb67_5c9c8c5c","line":50,"in_reply_to":"7faddb67_22b89074","updated":"2019-07-10 07:06:21.000000000","message":"Done","commit_id":"4c05c8281b9b47b50ea161dce3eaca4176ccbd86"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"f5d231ce4e5584183c7cee7df313ec7f2794ecfa","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        yaml.safe_dump(clouds, f, default_flow_style\u003dFalse)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def create_clouds_yaml(cloud\u003dNone, clouds_yaml_dir):"},{"line_number":44,"context_line":"    \"\"\"Generates clouds.yaml file"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    :param cloud: dict containing cloud data"}],"source_content_type":"text/x-python","patch_set":26,"id":"7faddb67_384d159a","line":43,"updated":"2019-07-10 14:29:36.000000000","message":"missing user_id, group_id parameters?","commit_id":"708e571a83f442e1981a308d1fd495685535cdcf"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"bdebdb4cb53dcdec3cccd93aa31b52ffda2fbfea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2018, 2019 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":29,"id":"7faddb67_070a1f89","line":1,"updated":"2019-07-11 14:06:04.000000000","message":"unit tests would be nice in a follow up","commit_id":"3c4cb58d8162fadded40076a2e3b40a510a6e9d7"}],"workbooks/deployment.yaml":[{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"fdc9d3f8bda60b4dc97a04e14b093bf3558b9030","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":"  createcloudyaml:"},{"line_number":758,"context_line":"    description: \u003e"},{"line_number":759,"context_line":"      Given the name of a container and optionally a comma-separated string"},{"line_number":760,"context_line":"      of hosts that shouldn\u0027t be proxied, generate the clouds.yaml file for"},{"line_number":761,"context_line":"      overcloudrc files needed to access the overcloud via the CLI."},{"line_number":762,"context_line":""},{"line_number":763,"context_line":"    tags:"},{"line_number":764,"context_line":"      - tripleo-common-managed"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fb8cfa7_f28ea825","line":761,"range":{"start_line":759,"start_character":6,"end_line":761,"end_character":67},"updated":"2019-06-24 08:23:28.000000000","message":"This phrase is hard to read and use an inversed order. Make it simple/standard, starting with what it does and mentioning parameters after, preferably in a different sentence.\n\nIdea: Generate ...  . Receive container name, hosts not to be proxied (comman separated string).","commit_id":"36c7faf8cdf0e7eb6406e816f77c61658cabe3de"}]}
