)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"051d5a3e75762011ebdba6542e59b6d65dacdff5","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Stavros Moiras \u003cstavros.moiras@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-06-22 13:01:06 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support adding magnum cluster config to default kubeconfig"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3c6b139316cb5041d3717c9c53c27e72b8d65fc3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":41,"id":"8c5ce389_361505cb","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":58},"updated":"2021-06-22 11:16:55.000000000","message":"What is the current behaviour implemented by this change? It would be good if there was a longer description of what this PS does as I have lost track. Does it write to --dir and merge if there is a --force flag? It would be useful for users if relevant part of the user docs was updated too. Thanks.","commit_id":"6095fed791796e51ca756fcbd8bd59da9cbda680"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"0dba16e220c890585d25fad7c13836c5c49d4cf3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stavros Moiras \u003cstavros.moiras@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-06-22 13:01:06 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support adding magnum cluster config to default kubeconfig"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3c6b139316cb5041d3717c9c53c27e72b8d65fc3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":41,"id":"399928a8_bf2a598e","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":58},"in_reply_to":"531d372b_23d50921","updated":"2022-02-23 02:21:09.000000000","message":"Done","commit_id":"6095fed791796e51ca756fcbd8bd59da9cbda680"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"b34b4b48a2938d2bb660f26cc82f5c6c3a4fa209","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Stavros Moiras \u003cstavros.moiras@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-06-22 13:01:06 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support adding magnum cluster config to default kubeconfig"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3c6b139316cb5041d3717c9c53c27e72b8d65fc3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":41,"id":"531d372b_23d50921","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":58},"in_reply_to":"8c5ce389_361505cb","updated":"2021-06-25 10:33:44.000000000","message":"As it is now, whenever a user executes \"openstack coe cluster config \u003ccluster-name\u003e\" the new cluster config is merged with the existing config file that exists in the given directory.\n\nThis is especially useful because we can do something like this: \"openstack coe cluster config --dir ~/.kube/config \u003ccluster-name\u003e\" and then we can use \"kubectl config get-contexts\" like in google cloud.\n\nIf \"--force\" is used not the whole file is overwritten, just the cluster that we are working on. To be more specific, Python-MagnumClient loads the old config as a dict, deletes everything that corresponds to our cluster and then adds the new values.\n\nI will need to update the docs as you said in order to make everything more clear.","commit_id":"6095fed791796e51ca756fcbd8bd59da9cbda680"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"d91931f980ff6ae6e20efd38818c46e494f33cdd","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Merges the config of mycluster2 with mycluster1."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This is especially useful because we can do something like this:"},{"line_number":20,"context_line":"\"openstack coe cluster config --dir ~/.kube/config \u003ccluster-name\u003e\""},{"line_number":21,"context_line":"and then we can use \"kubectl config get-contexts\" like in google cloud."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\"--force\" only overwrites the entries of the cluster that we"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":51,"id":"390b4760_129982f0","line":20,"range":{"start_line":20,"start_character":36,"end_line":20,"end_character":50},"updated":"2021-11-16 22:46:33.000000000","message":"should this be ~/.kube/ ?","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"a2c229a48e0376677c91bf94cfea2de7a24361b3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Merges the config of mycluster2 with mycluster1."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This is especially useful because we can do something like this:"},{"line_number":20,"context_line":"\"openstack coe cluster config --dir ~/.kube/config \u003ccluster-name\u003e\""},{"line_number":21,"context_line":"and then we can use \"kubectl config get-contexts\" like in google cloud."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"\"--force\" only overwrites the entries of the cluster that we"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":51,"id":"5bfdb0d2_599861cb","line":20,"range":{"start_line":20,"start_character":36,"end_line":20,"end_character":50},"in_reply_to":"390b4760_129982f0","updated":"2021-12-01 10:27:33.000000000","message":"Yes indeed.","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"50d453da9237139f470de223af30862a3d6c424f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"7b1fa878_231a4dea","updated":"2021-11-15 08:02:07.000000000","message":"didn\u0027t seem to work for me, I think this was because the users didn\u0027t match.\n\nupdating line 231 to a user without -admin fixes the problem","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"d91931f980ff6ae6e20efd38818c46e494f33cdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"a091676e_7f141558","updated":"2021-11-16 22:46:33.000000000","message":"thanks for working on this","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"41046d6dced46720a15f7557463fe86c7b9798a5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":51,"id":"d48884bd_d34608f3","in_reply_to":"7b1fa878_231a4dea","updated":"2021-11-16 15:50:34.000000000","message":"Hi Jake, did you get any error that you can share? I will have to look into this again because the \"-admin\" is needed later in the line 333 in order to delete users before updating the config.","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"a2c229a48e0376677c91bf94cfea2de7a24361b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"10757c3d_6f97daec","in_reply_to":"a091676e_7f141558","updated":"2021-12-01 10:27:33.000000000","message":"Hi Jake, I just uploaded a new patch 😊\nI think it should be working now, can you check again?","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"d91931f980ff6ae6e20efd38818c46e494f33cdd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":51,"id":"d52c3232_76430ce0","in_reply_to":"d48884bd_d34608f3","updated":"2021-11-16 22:46:33.000000000","message":"Hi Stavros, kubectl asks me for the username\n\n $ kubectl get pods\n Please enter Username:\n\nHere is a partial dump of my ~/.kube/config\n\n contexts:\n - context:\n     cluster: jake-sb\n     user: jake-sb\n   name: jake-sb\n - context:\n     cluster: jake-registry\n     user: jake-registry\n   name: jake-registry\n ...\n users:\n - name: jake-sb-admin\n ...\n - name: jake-registry-admin\n\nMaybe need to update line 191 instead?","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"af4d4b6e_648fcc42","in_reply_to":"d52c3232_76430ce0","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"59d3afec3907789ef7c189aa732081a7a5f0eb78","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":55,"id":"ad8dc761_37724748","updated":"2022-01-19 16:45:46.000000000","message":"Any update on this? It needs to be tested by more people.","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"e4e3bbbb6474db9592aff02a139b20c6400c830d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":55,"id":"491b7411_00277093","updated":"2022-02-03 12:55:23.000000000","message":"I have some observations:\n* When configuring a cluster that already exists in file, the configuration feels slow. Can you double check if the magnum client is not re-creating cluster keys? \n* If I delete the cluster (and keep the context and user) doing `openstack coe cluster config \u003ccluster\u003e` works (but the contexts and users are duplicated). Maybe if you are installing the cluster (first time or not) you should always force overwrite the other existent settings (user and contexts)?\n* Other than that looks good to me. At least the functionality :) thanks!!","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":55,"id":"0fb30c7a_f95cfca6","in_reply_to":"ad8dc761_37724748","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"018fe1ade58414ee67b2af9afa6953487c8ffe15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"05b3b08a_de8bb5c8","updated":"2022-02-09 23:22:36.000000000","message":"I made a temporary fix for the duplication thing that Diogo was talking about.\nHowever I will have to rewrite the logic here to make things more clean. This patch is not final as it is now.","commit_id":"0b689bd9dd21d2aaaa7e152b8e96678a7b12275d"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"0fda8fb606eafb3076c2de00e4443faba11e3727","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"aefcd208_d6aaef8a","updated":"2022-03-01 09:11:27.000000000","message":"Can only change keystone-admin to keystone? It can be admin or smth else. Please also update the docs patch.\n\nOther than that we can merge.","commit_id":"798ee1f35900766867539f5e4ea4b140a97ed0eb"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"c37e8d633822a570b19bd053c7d2771da8b54bae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":62,"id":"72fce88f_cebeb461","updated":"2022-02-24 11:43:24.000000000","message":"I\u0027ve tried it with x509 (not keystone) and it seems to work well. Would appreciate if someone else can test keystone please?","commit_id":"798ee1f35900766867539f5e4ea4b140a97ed0eb"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"f225e90794b905bb2475bcded0affe0e7f4534b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":67,"id":"b6319832_fe087459","updated":"2022-03-01 21:25:26.000000000","message":"With the current patch, users are able to use both a cluster name and a cluster uuid for the \"cluster config\" command :)","commit_id":"b74af35a7b9fa54e684b026184bc99e044d61c24"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"0bb84c19b9d12bca095344b359cd551ab80c1962","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":77,"id":"bba7800f_aa3b617b","updated":"2022-03-24 12:47:02.000000000","message":"Hello Stavros,\n\nI tried the same use case as before and there is still errors?\n```\nopenstack coe cluster config dtomasgu-sec-traefik-kubernetes-1.22.3-3\n/usr/lib/python3.6/site-packages/secretstorage/dhcrypto.py:16: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead\n  from cryptography.utils import int_from_bytes\n/usr/lib/python3.6/site-packages/secretstorage/util.py:25: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead\n  from cryptography.utils import int_from_bytes\nobject of type \u0027NoneType\u0027 has no len()\n```\n\nI read also that you added functionalities. Can you update the MR?\nAlso, dont forget to add a reno. check:\nhttps://docs.openstack.org/reno/latest/user/usage.html","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"662714d16cc5f824983c082fba3aacf3a1ddc0e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":77,"id":"87d4291d_828c904e","in_reply_to":"45ecd498_4aaecf8e","updated":"2022-03-25 11:24:32.000000000","message":"This happens because when the last cluster is deleted the \"cluster\" section still remains as \"clusters: null\" in the config which was not what I was expecting.\nThanks for finding this bug Diogo! I have pushed a new patch, it should be fixed now, please try again :)","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"e3c00f5d0d0933a178e53dbd90597ab935fbf8b0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":77,"id":"45ecd498_4aaecf8e","in_reply_to":"5f0a7573_63f41ebb","updated":"2022-03-25 08:22:32.000000000","message":"I\u0027m sorry, it is not exactly the same.\n1. openstack coe cluster config dtomasgu-sec-nginx-kubernetes-1.22.3-3\n2. kubectl config delete \u003ccluster\u003e\n3. openstack coe cluster config dtomasgu-sec-nginx-kubernetes-1.22.3-3\n\nThis is kinda silly, but the app should not crash","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"82cfb8b1d8772a6dc4b74d3a92260263d796fe7a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":77,"id":"5f0a7573_63f41ebb","in_reply_to":"bba7800f_aa3b617b","updated":"2022-03-24 16:18:58.000000000","message":"Hi Diogo, how did you get this error? I can\u0027t reproduce it. This is what I do:\n\nopenstack coe cluster config k8s-cluster\nopenstack coe cluster config k8s-cluster2\n\nkubectl config delete-cluster k8s-cluster\n\nopenstack coe cluster config k8s-cluster\n\nBut it seems that it works fine for me.","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"59f57288fcbc539f2ec64fb2f6fc744be8751271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":78,"id":"a2425411_ad274335","updated":"2022-03-25 13:53:40.000000000","message":"Works now! Thanks!","commit_id":"4be18d542bcd6afb5b96573f7e342d5dd004bcff"}],"magnumclient/common/utils.py":[{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"2677866e7c1e9144329f02ec2444590b34582c01","unresolved":true,"context_lines":[{"line_number":175,"context_line":"                               force\u003dFalse, certs\u003dNone, use_keystone\u003dFalse):"},{"line_number":176,"context_line":"    \"\"\"Return and write configuration for the given kubernetes cluster.\"\"\""},{"line_number":177,"context_line":"    cfg_file \u003d \"%s/config\" % cfg_dir"},{"line_number":178,"context_line":"    if cluster_template.tls_disabled or certs is None:"},{"line_number":179,"context_line":"        cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":180,"context_line":"               \"clusters:\\n\""},{"line_number":181,"context_line":"               \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":12,"id":"c6215bfc_f626e23b","side":"PARENT","line":178,"updated":"2021-05-04 15:06:25.000000000","message":"I think it is time to restructure this. We can use a dict and then write it with pyyaml.\n\nif use_conf\n  read ~/.kube/config if exists and load it as a dict\nelse\n  build an empty dict with apiversion, kind, prefereces, clusters, users\n\ninsert entries according to use_keystone and enocoded certs, certs with path.\n\nwrite the dict as yaml to disk.","commit_id":"ab601bd7ab83f91527142d1eccc9841542204c97"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                               force\u003dFalse, certs\u003dNone, use_keystone\u003dFalse):"},{"line_number":176,"context_line":"    \"\"\"Return and write configuration for the given kubernetes cluster.\"\"\""},{"line_number":177,"context_line":"    cfg_file \u003d \"%s/config\" % cfg_dir"},{"line_number":178,"context_line":"    if cluster_template.tls_disabled or certs is None:"},{"line_number":179,"context_line":"        cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":180,"context_line":"               \"clusters:\\n\""},{"line_number":181,"context_line":"               \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":12,"id":"f4d1f6d4_bf89a4c5","side":"PARENT","line":178,"in_reply_to":"3c939677_fcf2e8e6","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"ab601bd7ab83f91527142d1eccc9841542204c97"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"331c4b458e36618c6ebaf4d2458e6d8a809197e1","unresolved":true,"context_lines":[{"line_number":175,"context_line":"                               force\u003dFalse, certs\u003dNone, use_keystone\u003dFalse):"},{"line_number":176,"context_line":"    \"\"\"Return and write configuration for the given kubernetes cluster.\"\"\""},{"line_number":177,"context_line":"    cfg_file \u003d \"%s/config\" % cfg_dir"},{"line_number":178,"context_line":"    if cluster_template.tls_disabled or certs is None:"},{"line_number":179,"context_line":"        cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":180,"context_line":"               \"clusters:\\n\""},{"line_number":181,"context_line":"               \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3c939677_fcf2e8e6","side":"PARENT","line":178,"in_reply_to":"c6215bfc_f626e23b","updated":"2021-05-04 15:11:38.000000000","message":"+1","commit_id":"ab601bd7ab83f91527142d1eccc9841542204c97"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"464a9fdf6a735f1a8dc7684d04a79a3fe9bb47fd","unresolved":true,"context_lines":[{"line_number":212,"context_line":"        ]"},{"line_number":213,"context_line":"    else:"},{"line_number":214,"context_line":"        if not use_keystone:"},{"line_number":215,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":216,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":217,"context_line":"                {"},{"line_number":218,"context_line":"                    \"cluster\": {"},{"line_number":219,"context_line":"                        \"certificate-authority-data\":"},{"line_number":220,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":221,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":222,"context_line":"                    },"},{"line_number":223,"context_line":"                    \"name\": cluster.name,"},{"line_number":224,"context_line":"                },"},{"line_number":225,"context_line":"            ]"},{"line_number":226,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":227,"context_line":"                {"},{"line_number":228,"context_line":"                    \"context\": {"},{"line_number":229,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":230,"context_line":"                        \"user\": cluster.name,"},{"line_number":231,"context_line":"                    },"},{"line_number":232,"context_line":"                    \"name\": cluster.name,"},{"line_number":233,"context_line":"                },"},{"line_number":234,"context_line":"            ]"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            newConfig[\"current-context\"] \u003d cluster.name"},{"line_number":237,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":238,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":239,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":240,"context_line":"                {"},{"line_number":241,"context_line":"                    \"name\": cluster.name + \"-admin\","},{"line_number":242,"context_line":"                    \"user\": {"},{"line_number":243,"context_line":"                        \"client-certificate-data\":"},{"line_number":244,"context_line":"                            base64.encode_as_text(certs[\u0027cert\u0027]),"},{"line_number":245,"context_line":"                        \"client-key-data\":"},{"line_number":246,"context_line":"                            base64.encode_as_text(certs[\u0027key\u0027]),"},{"line_number":247,"context_line":"                    },"},{"line_number":248,"context_line":"                },"},{"line_number":249,"context_line":"            ]"},{"line_number":250,"context_line":"        else:"},{"line_number":251,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":252,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":253,"context_line":"                {"},{"line_number":254,"context_line":"                    \"cluster\": {"},{"line_number":255,"context_line":"                        \"certificate-authority-data\":"},{"line_number":256,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":257,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":258,"context_line":"                    },"},{"line_number":259,"context_line":"                    \"name\": cluster.name,"},{"line_number":260,"context_line":"                },"},{"line_number":261,"context_line":"            ]"},{"line_number":262,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":263,"context_line":"                {"},{"line_number":264,"context_line":"                    \"context\": {"},{"line_number":265,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":266,"context_line":"                        \"user\": \"openstackuser\","},{"line_number":267,"context_line":"                    },"},{"line_number":268,"context_line":"                    \"name\": \"openstackuser@kubernetes\","},{"line_number":269,"context_line":"                },"},{"line_number":270,"context_line":"            ]"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            conf_arg \u003d \\"},{"line_number":273,"context_line":"                \"\\n\" \\"},{"line_number":274,"context_line":"                \"if [ -z ${OS_TOKEN} ]; then\\n\" \\"},{"line_number":275,"context_line":"                \"echo \u0027Error: Missing OpenStack credential from \" \\"},{"line_number":276,"context_line":"                \"environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\" \\"},{"line_number":277,"context_line":"                \"   exit 1\\n\" \\"},{"line_number":278,"context_line":"                \"else\\n\" \\"},{"line_number":279,"context_line":"                \"   echo \u0027{ \\\"apiVersion\\\": \" \\"},{"line_number":280,"context_line":"                \"\\\"client.authentication.k8s.io/v1alpha1\\\", \" \\"},{"line_number":281,"context_line":"                \"\\\"kind\\\": \\\"ExecCredential\\\", \" \\"},{"line_number":282,"context_line":"                \"\\\"status\\\": { \\\"token\\\": \\\"\u0027\\\"${OS_TOKEN}\\\"\u0027\\\"}}\u0027\\n\" \\"},{"line_number":283,"context_line":"                \"fi\\n\""},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"            newConfig[\"current-context\"] \u003d \"openstackuser@kubernetes\""},{"line_number":286,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":287,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":288,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":289,"context_line":"                {"},{"line_number":290,"context_line":"                    \"name\": \"openstackuser\","},{"line_number":291,"context_line":"                    \"user\": {"},{"line_number":292,"context_line":"                        \"exec\": {"},{"line_number":293,"context_line":"                            \"command\": \"/bin/bash\","},{"line_number":294,"context_line":"                            \"apiVersion\":"},{"line_number":295,"context_line":"                                \"client.authentication.k8s.io/v1alpha1\","},{"line_number":296,"context_line":"                            \"args\": {"},{"line_number":297,"context_line":"                                \"-c\": \"\\n\","},{"line_number":298,"context_line":"                                \"\u003e\": conf_arg,"},{"line_number":299,"context_line":"                            }"},{"line_number":300,"context_line":"                        },"},{"line_number":301,"context_line":"                    },"},{"line_number":302,"context_line":"                },"},{"line_number":303,"context_line":"            ]"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    # If default config exists, is not empty and there is no force"},{"line_number":306,"context_line":"    if os.path.exists(cfg_file) and \\"}],"source_content_type":"text/x-python","patch_set":17,"id":"cfbe84ad_e811d207","line":303,"range":{"start_line":215,"start_character":0,"end_line":303,"end_character":13},"updated":"2021-05-18 12:50:47.000000000","message":"there is quite a bit of duplication in the if: else: blocks, can we factor out the common bits outside of the condition?","commit_id":"fc67cb3ce567676a417da7b67ec96fc2174c006d"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        ]"},{"line_number":213,"context_line":"    else:"},{"line_number":214,"context_line":"        if not use_keystone:"},{"line_number":215,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":216,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":217,"context_line":"                {"},{"line_number":218,"context_line":"                    \"cluster\": {"},{"line_number":219,"context_line":"                        \"certificate-authority-data\":"},{"line_number":220,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":221,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":222,"context_line":"                    },"},{"line_number":223,"context_line":"                    \"name\": cluster.name,"},{"line_number":224,"context_line":"                },"},{"line_number":225,"context_line":"            ]"},{"line_number":226,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":227,"context_line":"                {"},{"line_number":228,"context_line":"                    \"context\": {"},{"line_number":229,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":230,"context_line":"                        \"user\": cluster.name,"},{"line_number":231,"context_line":"                    },"},{"line_number":232,"context_line":"                    \"name\": cluster.name,"},{"line_number":233,"context_line":"                },"},{"line_number":234,"context_line":"            ]"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            newConfig[\"current-context\"] \u003d cluster.name"},{"line_number":237,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":238,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":239,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":240,"context_line":"                {"},{"line_number":241,"context_line":"                    \"name\": cluster.name + \"-admin\","},{"line_number":242,"context_line":"                    \"user\": {"},{"line_number":243,"context_line":"                        \"client-certificate-data\":"},{"line_number":244,"context_line":"                            base64.encode_as_text(certs[\u0027cert\u0027]),"},{"line_number":245,"context_line":"                        \"client-key-data\":"},{"line_number":246,"context_line":"                            base64.encode_as_text(certs[\u0027key\u0027]),"},{"line_number":247,"context_line":"                    },"},{"line_number":248,"context_line":"                },"},{"line_number":249,"context_line":"            ]"},{"line_number":250,"context_line":"        else:"},{"line_number":251,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":252,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":253,"context_line":"                {"},{"line_number":254,"context_line":"                    \"cluster\": {"},{"line_number":255,"context_line":"                        \"certificate-authority-data\":"},{"line_number":256,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":257,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":258,"context_line":"                    },"},{"line_number":259,"context_line":"                    \"name\": cluster.name,"},{"line_number":260,"context_line":"                },"},{"line_number":261,"context_line":"            ]"},{"line_number":262,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":263,"context_line":"                {"},{"line_number":264,"context_line":"                    \"context\": {"},{"line_number":265,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":266,"context_line":"                        \"user\": \"openstackuser\","},{"line_number":267,"context_line":"                    },"},{"line_number":268,"context_line":"                    \"name\": \"openstackuser@kubernetes\","},{"line_number":269,"context_line":"                },"},{"line_number":270,"context_line":"            ]"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            conf_arg \u003d \\"},{"line_number":273,"context_line":"                \"\\n\" \\"},{"line_number":274,"context_line":"                \"if [ -z ${OS_TOKEN} ]; then\\n\" \\"},{"line_number":275,"context_line":"                \"echo \u0027Error: Missing OpenStack credential from \" \\"},{"line_number":276,"context_line":"                \"environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\" \\"},{"line_number":277,"context_line":"                \"   exit 1\\n\" \\"},{"line_number":278,"context_line":"                \"else\\n\" \\"},{"line_number":279,"context_line":"                \"   echo \u0027{ \\\"apiVersion\\\": \" \\"},{"line_number":280,"context_line":"                \"\\\"client.authentication.k8s.io/v1alpha1\\\", \" \\"},{"line_number":281,"context_line":"                \"\\\"kind\\\": \\\"ExecCredential\\\", \" \\"},{"line_number":282,"context_line":"                \"\\\"status\\\": { \\\"token\\\": \\\"\u0027\\\"${OS_TOKEN}\\\"\u0027\\\"}}\u0027\\n\" \\"},{"line_number":283,"context_line":"                \"fi\\n\""},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"            newConfig[\"current-context\"] \u003d \"openstackuser@kubernetes\""},{"line_number":286,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":287,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":288,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":289,"context_line":"                {"},{"line_number":290,"context_line":"                    \"name\": \"openstackuser\","},{"line_number":291,"context_line":"                    \"user\": {"},{"line_number":292,"context_line":"                        \"exec\": {"},{"line_number":293,"context_line":"                            \"command\": \"/bin/bash\","},{"line_number":294,"context_line":"                            \"apiVersion\":"},{"line_number":295,"context_line":"                                \"client.authentication.k8s.io/v1alpha1\","},{"line_number":296,"context_line":"                            \"args\": {"},{"line_number":297,"context_line":"                                \"-c\": \"\\n\","},{"line_number":298,"context_line":"                                \"\u003e\": conf_arg,"},{"line_number":299,"context_line":"                            }"},{"line_number":300,"context_line":"                        },"},{"line_number":301,"context_line":"                    },"},{"line_number":302,"context_line":"                },"},{"line_number":303,"context_line":"            ]"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    # If default config exists, is not empty and there is no force"},{"line_number":306,"context_line":"    if os.path.exists(cfg_file) and \\"}],"source_content_type":"text/x-python","patch_set":17,"id":"361bc5ac_9ef73daa","line":303,"range":{"start_line":215,"start_character":0,"end_line":303,"end_character":13},"in_reply_to":"a963b3b4_4f67284c","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"fc67cb3ce567676a417da7b67ec96fc2174c006d"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"90e3b929427ba36aa0282164d66300ac6c6c98bf","unresolved":true,"context_lines":[{"line_number":212,"context_line":"        ]"},{"line_number":213,"context_line":"    else:"},{"line_number":214,"context_line":"        if not use_keystone:"},{"line_number":215,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":216,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":217,"context_line":"                {"},{"line_number":218,"context_line":"                    \"cluster\": {"},{"line_number":219,"context_line":"                        \"certificate-authority-data\":"},{"line_number":220,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":221,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":222,"context_line":"                    },"},{"line_number":223,"context_line":"                    \"name\": cluster.name,"},{"line_number":224,"context_line":"                },"},{"line_number":225,"context_line":"            ]"},{"line_number":226,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":227,"context_line":"                {"},{"line_number":228,"context_line":"                    \"context\": {"},{"line_number":229,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":230,"context_line":"                        \"user\": cluster.name,"},{"line_number":231,"context_line":"                    },"},{"line_number":232,"context_line":"                    \"name\": cluster.name,"},{"line_number":233,"context_line":"                },"},{"line_number":234,"context_line":"            ]"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"            newConfig[\"current-context\"] \u003d cluster.name"},{"line_number":237,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":238,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":239,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":240,"context_line":"                {"},{"line_number":241,"context_line":"                    \"name\": cluster.name + \"-admin\","},{"line_number":242,"context_line":"                    \"user\": {"},{"line_number":243,"context_line":"                        \"client-certificate-data\":"},{"line_number":244,"context_line":"                            base64.encode_as_text(certs[\u0027cert\u0027]),"},{"line_number":245,"context_line":"                        \"client-key-data\":"},{"line_number":246,"context_line":"                            base64.encode_as_text(certs[\u0027key\u0027]),"},{"line_number":247,"context_line":"                    },"},{"line_number":248,"context_line":"                },"},{"line_number":249,"context_line":"            ]"},{"line_number":250,"context_line":"        else:"},{"line_number":251,"context_line":"            newConfig[\"apiVersion\"] \u003d \"v1\""},{"line_number":252,"context_line":"            newConfig[\"clusters\"] \u003d ["},{"line_number":253,"context_line":"                {"},{"line_number":254,"context_line":"                    \"cluster\": {"},{"line_number":255,"context_line":"                        \"certificate-authority-data\":"},{"line_number":256,"context_line":"                            base64.encode_as_text(certs[\u0027ca\u0027]),"},{"line_number":257,"context_line":"                        \"server\": cluster.api_address,"},{"line_number":258,"context_line":"                    },"},{"line_number":259,"context_line":"                    \"name\": cluster.name,"},{"line_number":260,"context_line":"                },"},{"line_number":261,"context_line":"            ]"},{"line_number":262,"context_line":"            newConfig[\"contexts\"] \u003d ["},{"line_number":263,"context_line":"                {"},{"line_number":264,"context_line":"                    \"context\": {"},{"line_number":265,"context_line":"                        \"cluster\": cluster.name,"},{"line_number":266,"context_line":"                        \"user\": \"openstackuser\","},{"line_number":267,"context_line":"                    },"},{"line_number":268,"context_line":"                    \"name\": \"openstackuser@kubernetes\","},{"line_number":269,"context_line":"                },"},{"line_number":270,"context_line":"            ]"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            conf_arg \u003d \\"},{"line_number":273,"context_line":"                \"\\n\" \\"},{"line_number":274,"context_line":"                \"if [ -z ${OS_TOKEN} ]; then\\n\" \\"},{"line_number":275,"context_line":"                \"echo \u0027Error: Missing OpenStack credential from \" \\"},{"line_number":276,"context_line":"                \"environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\" \\"},{"line_number":277,"context_line":"                \"   exit 1\\n\" \\"},{"line_number":278,"context_line":"                \"else\\n\" \\"},{"line_number":279,"context_line":"                \"   echo \u0027{ \\\"apiVersion\\\": \" \\"},{"line_number":280,"context_line":"                \"\\\"client.authentication.k8s.io/v1alpha1\\\", \" \\"},{"line_number":281,"context_line":"                \"\\\"kind\\\": \\\"ExecCredential\\\", \" \\"},{"line_number":282,"context_line":"                \"\\\"status\\\": { \\\"token\\\": \\\"\u0027\\\"${OS_TOKEN}\\\"\u0027\\\"}}\u0027\\n\" \\"},{"line_number":283,"context_line":"                \"fi\\n\""},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"            newConfig[\"current-context\"] \u003d \"openstackuser@kubernetes\""},{"line_number":286,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":287,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":288,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":289,"context_line":"                {"},{"line_number":290,"context_line":"                    \"name\": \"openstackuser\","},{"line_number":291,"context_line":"                    \"user\": {"},{"line_number":292,"context_line":"                        \"exec\": {"},{"line_number":293,"context_line":"                            \"command\": \"/bin/bash\","},{"line_number":294,"context_line":"                            \"apiVersion\":"},{"line_number":295,"context_line":"                                \"client.authentication.k8s.io/v1alpha1\","},{"line_number":296,"context_line":"                            \"args\": {"},{"line_number":297,"context_line":"                                \"-c\": \"\\n\","},{"line_number":298,"context_line":"                                \"\u003e\": conf_arg,"},{"line_number":299,"context_line":"                            }"},{"line_number":300,"context_line":"                        },"},{"line_number":301,"context_line":"                    },"},{"line_number":302,"context_line":"                },"},{"line_number":303,"context_line":"            ]"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    # If default config exists, is not empty and there is no force"},{"line_number":306,"context_line":"    if os.path.exists(cfg_file) and \\"}],"source_content_type":"text/x-python","patch_set":17,"id":"a963b3b4_4f67284c","line":303,"range":{"start_line":215,"start_character":0,"end_line":303,"end_character":13},"in_reply_to":"cfbe84ad_e811d207","updated":"2021-05-18 12:54:30.000000000","message":"Certainly, this is the next step. I just wanted to make sure that nothing breaks before doing that.","commit_id":"fc67cb3ce567676a417da7b67ec96fc2174c006d"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":236,"context_line":"            ]"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            newConfig[\"current-context\"] \u003d cluster.name"},{"line_number":239,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":240,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":241,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":242,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":29,"id":"ed01d4af_c33d012c","line":239,"range":{"start_line":239,"start_character":12,"end_line":239,"end_character":21},"updated":"2021-06-01 15:20:14.000000000","message":"there is a lot of repetition of newConfig variable. a dict update may be clearer?","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            ]"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"            newConfig[\"current-context\"] \u003d cluster.name"},{"line_number":239,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""},{"line_number":240,"context_line":"            newConfig[\"preferences\"] \u003d {}"},{"line_number":241,"context_line":"            newConfig[\"users\"] \u003d ["},{"line_number":242,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":29,"id":"22987f76_83a3856d","line":239,"range":{"start_line":239,"start_character":12,"end_line":239,"end_character":21},"in_reply_to":"ed01d4af_c33d012c","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":272,"context_line":"            ]"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            conf_arg \u003d \\"},{"line_number":275,"context_line":"                \"\\n\" \\"},{"line_number":276,"context_line":"                \"if [ -z ${OS_TOKEN} ]; then\\n\" \\"},{"line_number":277,"context_line":"                \"echo \u0027Error: Missing OpenStack credential from \" \\"},{"line_number":278,"context_line":"                \"environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\" \\"}],"source_content_type":"text/x-python","patch_set":29,"id":"c89e010f_1a4d83af","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":22},"updated":"2021-06-01 15:20:14.000000000","message":"is this strictly required?","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            ]"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            conf_arg \u003d \\"},{"line_number":275,"context_line":"                \"\\n\" \\"},{"line_number":276,"context_line":"                \"if [ -z ${OS_TOKEN} ]; then\\n\" \\"},{"line_number":277,"context_line":"                \"echo \u0027Error: Missing OpenStack credential from \" \\"},{"line_number":278,"context_line":"                \"environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\" \\"}],"source_content_type":"text/x-python","patch_set":29,"id":"9196daf6_1aa3e556","line":275,"range":{"start_line":275,"start_character":0,"end_line":275,"end_character":22},"in_reply_to":"c89e010f_1a4d83af","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":282,"context_line":"                \"\\\"client.authentication.k8s.io/v1alpha1\\\", \" \\"},{"line_number":283,"context_line":"                \"\\\"kind\\\": \\\"ExecCredential\\\", \" \\"},{"line_number":284,"context_line":"                \"\\\"status\\\": { \\\"token\\\": \\\"\u0027\\\"${OS_TOKEN}\\\"\u0027\\\"}}\u0027\\n\" \\"},{"line_number":285,"context_line":"                \"fi\\n\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"            newConfig[\"current-context\"] \u003d \"openstackuser@kubernetes\""},{"line_number":288,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""}],"source_content_type":"text/x-python","patch_set":29,"id":"e166a0b9_f31abfa0","line":285,"range":{"start_line":285,"start_character":19,"end_line":285,"end_character":21},"updated":"2021-06-01 15:20:14.000000000","message":"and this","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                \"\\\"client.authentication.k8s.io/v1alpha1\\\", \" \\"},{"line_number":283,"context_line":"                \"\\\"kind\\\": \\\"ExecCredential\\\", \" \\"},{"line_number":284,"context_line":"                \"\\\"status\\\": { \\\"token\\\": \\\"\u0027\\\"${OS_TOKEN}\\\"\u0027\\\"}}\u0027\\n\" \\"},{"line_number":285,"context_line":"                \"fi\\n\""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"            newConfig[\"current-context\"] \u003d \"openstackuser@kubernetes\""},{"line_number":288,"context_line":"            newConfig[\"kind\"] \u003d \"Config\""}],"source_content_type":"text/x-python","patch_set":29,"id":"7bc5e45a_e3d38883","line":285,"range":{"start_line":285,"start_character":19,"end_line":285,"end_character":21},"in_reply_to":"e166a0b9_f31abfa0","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Merge with existing conf"},{"line_number":312,"context_line":"        with open(cfg_file) as file:"},{"line_number":313,"context_line":"            defaultConfData \u003d yaml.load(file, Loader\u003dyaml.SafeLoader)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        extend_dict(defaultConfData, newConfig)"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"5b54ecd1_00a9957c","line":313,"range":{"start_line":313,"start_character":12,"end_line":313,"end_character":27},"updated":"2021-06-01 15:20:14.000000000","message":"snake is preferred for vars","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        # Merge with existing conf"},{"line_number":312,"context_line":"        with open(cfg_file) as file:"},{"line_number":313,"context_line":"            defaultConfData \u003d yaml.load(file, Loader\u003dyaml.SafeLoader)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        extend_dict(defaultConfData, newConfig)"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"e869b10c_2c3e1920","line":313,"range":{"start_line":313,"start_character":12,"end_line":313,"end_character":27},"in_reply_to":"5b54ecd1_00a9957c","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":319,"context_line":"            yaml.dump(defaultConfData, outfile, default_flow_style\u003dFalse)"},{"line_number":320,"context_line":"            return \"\\nOld \" + cfg_file + \" has been updated\\n\""},{"line_number":321,"context_line":"    else:"},{"line_number":322,"context_line":"        confDir \u003d str(Path.home()) + \"/.kube\""},{"line_number":323,"context_line":"        if not os.path.isdir(confDir):"},{"line_number":324,"context_line":"            Path(confDir).mkdir(parents\u003dTrue, exist_ok\u003dTrue)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"c875c99b_e12cc5c6","line":322,"range":{"start_line":322,"start_character":8,"end_line":322,"end_character":15},"updated":"2021-06-01 15:20:14.000000000","message":"same","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            yaml.dump(defaultConfData, outfile, default_flow_style\u003dFalse)"},{"line_number":320,"context_line":"            return \"\\nOld \" + cfg_file + \" has been updated\\n\""},{"line_number":321,"context_line":"    else:"},{"line_number":322,"context_line":"        confDir \u003d str(Path.home()) + \"/.kube\""},{"line_number":323,"context_line":"        if not os.path.isdir(confDir):"},{"line_number":324,"context_line":"            Path(confDir).mkdir(parents\u003dTrue, exist_ok\u003dTrue)"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"36d5c609_3e47fe66","line":322,"range":{"start_line":322,"start_character":8,"end_line":322,"end_character":15},"in_reply_to":"c875c99b_e12cc5c6","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":326,"context_line":"        # Write new config file"},{"line_number":327,"context_line":"        with open(cfg_file, \u0027w\u0027) as outfile:"},{"line_number":328,"context_line":"            yaml.dump(newConfig, outfile, default_flow_style\u003dFalse)"},{"line_number":329,"context_line":"            return \"\\nNew \" + cfg_file + \" has been written\\n\""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"def _config_cluster_swarm(cluster, cluster_template, cfg_dir,"}],"source_content_type":"text/x-python","patch_set":29,"id":"f359e90e_97cef774","line":329,"range":{"start_line":329,"start_character":20,"end_line":329,"end_character":22},"updated":"2021-06-01 15:20:14.000000000","message":"omit","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        # Write new config file"},{"line_number":327,"context_line":"        with open(cfg_file, \u0027w\u0027) as outfile:"},{"line_number":328,"context_line":"            yaml.dump(newConfig, outfile, default_flow_style\u003dFalse)"},{"line_number":329,"context_line":"            return \"\\nNew \" + cfg_file + \" has been written\\n\""},{"line_number":330,"context_line":""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"def _config_cluster_swarm(cluster, cluster_template, cfg_dir,"}],"source_content_type":"text/x-python","patch_set":29,"id":"4ac78a2c_da86ff8a","line":329,"range":{"start_line":329,"start_character":20,"end_line":329,"end_character":22},"in_reply_to":"f359e90e_97cef774","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"2d7336ec5cc7cf0adc12f63e6fbd584ab99d5540"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"50d453da9237139f470de223af30862a3d6c424f","unresolved":true,"context_lines":[{"line_number":188,"context_line":"        {"},{"line_number":189,"context_line":"            \"context\": {"},{"line_number":190,"context_line":"                \"cluster\": cluster.name,"},{"line_number":191,"context_line":"                \"user\": cluster.name,"},{"line_number":192,"context_line":"            },"},{"line_number":193,"context_line":"            \"name\": cluster.name,"},{"line_number":194,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":51,"id":"6d62644b_f9f23e1c","line":191,"range":{"start_line":191,"start_character":16,"end_line":191,"end_character":37},"updated":"2021-11-15 08:02:07.000000000","message":"this points to a user without \u0027-admin\u0027","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"e4e3bbbb6474db9592aff02a139b20c6400c830d","unresolved":true,"context_lines":[{"line_number":188,"context_line":"        {"},{"line_number":189,"context_line":"            \"context\": {"},{"line_number":190,"context_line":"                \"cluster\": cluster.name,"},{"line_number":191,"context_line":"                \"user\": cluster.name,"},{"line_number":192,"context_line":"            },"},{"line_number":193,"context_line":"            \"name\": cluster.name,"},{"line_number":194,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":51,"id":"7ba206f4_e71e317c","line":191,"range":{"start_line":191,"start_character":16,"end_line":191,"end_character":37},"in_reply_to":"6d62644b_f9f23e1c","updated":"2022-02-03 12:55:23.000000000","message":"+1","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        {"},{"line_number":189,"context_line":"            \"context\": {"},{"line_number":190,"context_line":"                \"cluster\": cluster.name,"},{"line_number":191,"context_line":"                \"user\": cluster.name,"},{"line_number":192,"context_line":"            },"},{"line_number":193,"context_line":"            \"name\": cluster.name,"},{"line_number":194,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":51,"id":"4cbc9193_362df045","line":191,"range":{"start_line":191,"start_character":16,"end_line":191,"end_character":37},"in_reply_to":"7ba206f4_e71e317c","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"50d453da9237139f470de223af30862a3d6c424f","unresolved":true,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"            conf.update({\"users\": ["},{"line_number":230,"context_line":"                {"},{"line_number":231,"context_line":"                    \"name\": cluster.name + \"-admin\","},{"line_number":232,"context_line":"                    \"user\": {"},{"line_number":233,"context_line":"                        \"client-certificate-data\":"},{"line_number":234,"context_line":"                            base64.encode_as_text(certs[\u0027cert\u0027]),"}],"source_content_type":"text/x-python","patch_set":51,"id":"0a2fba6d_81a07bc0","line":231,"range":{"start_line":231,"start_character":20,"end_line":231,"end_character":52},"updated":"2021-11-15 08:02:07.000000000","message":"this creates to a user with \u0027-admin\u0027","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"            conf.update({\"users\": ["},{"line_number":230,"context_line":"                {"},{"line_number":231,"context_line":"                    \"name\": cluster.name + \"-admin\","},{"line_number":232,"context_line":"                    \"user\": {"},{"line_number":233,"context_line":"                        \"client-certificate-data\":"},{"line_number":234,"context_line":"                            base64.encode_as_text(certs[\u0027cert\u0027]),"}],"source_content_type":"text/x-python","patch_set":51,"id":"433657f8_c87efe5f","line":231,"range":{"start_line":231,"start_character":20,"end_line":231,"end_character":52},"in_reply_to":"0a2fba6d_81a07bc0","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"0d0c7f5d93eaa1692aeefb3d6102ec0e43dee53b"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"e4e3bbbb6474db9592aff02a139b20c6400c830d","unresolved":true,"context_lines":[{"line_number":310,"context_line":"                old_conf \u003d yaml.load(file, Loader\u003dyaml.SafeLoader)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"            # Check if the cluster name already exists in the config"},{"line_number":313,"context_line":"            clusters \u003d old_conf[\"clusters\"]"},{"line_number":314,"context_line":"            for i in range(len(clusters)):"},{"line_number":315,"context_line":"                if clusters[i][\"name\"] \u003d\u003d cluster.name:"},{"line_number":316,"context_line":"                    if not force:"}],"source_content_type":"text/x-python","patch_set":55,"id":"a00b676e_9738e4e8","line":313,"updated":"2022-02-03 12:55:23.000000000","message":"It might not make sense, but maybe this check should be done before we emit new certificates (ex: before calling _config_cluster_kubernetes)\n\nIt will make the `openstack coe cluster config \u003ccluster\u003e` faster for existent configurations and will not create infinite keypairs on the server side?","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                old_conf \u003d yaml.load(file, Loader\u003dyaml.SafeLoader)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"            # Check if the cluster name already exists in the config"},{"line_number":313,"context_line":"            clusters \u003d old_conf[\"clusters\"]"},{"line_number":314,"context_line":"            for i in range(len(clusters)):"},{"line_number":315,"context_line":"                if clusters[i][\"name\"] \u003d\u003d cluster.name:"},{"line_number":316,"context_line":"                    if not force:"}],"source_content_type":"text/x-python","patch_set":55,"id":"de878862_de65bd1d","line":313,"in_reply_to":"a00b676e_9738e4e8","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":29425,"name":"Diogo Guerra","email":"diogo.filipe.tomas.guerra@cern.ch","username":"dioguerra"},"change_message_id":"e4e3bbbb6474db9592aff02a139b20c6400c830d","unresolved":true,"context_lines":[{"line_number":318,"context_line":"                                               \"%s, aborting.\" % cfg_file)"},{"line_number":319,"context_line":"                    else:"},{"line_number":320,"context_line":"                        # Delete old cluster entries to write the new ones"},{"line_number":321,"context_line":"                        del old_conf[\"clusters\"][i]"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"                        # Delete contexts associated with the cluster"},{"line_number":324,"context_line":"                        marked_for_deletion \u003d []"}],"source_content_type":"text/x-python","patch_set":55,"id":"cf8db34f_015f9e6f","line":321,"updated":"2022-02-03 12:55:23.000000000","message":"You are relying too much on the fact that the user will keep a complete and concise config file. I can break this and create duplicate values by doing the steps bellow starting with a clean config file:\n\n1. rm config\n2. openstack coe cluster config dtomasgu-sec-nginx-kubernetes-1.22.3-3\n3. openstack coe cluster config dtomasgu-sec-traefik-kubernetes-1.22.3-3\n4. kubectl config delete-cluster dtomasgu-sec-nginx-kubernetes-1.22.3-3\n5. openstack coe cluster config dtomasgu-sec-nginx-kubernetes-1.22.3-3\n\nYou will see that the clusters user and contexts are duplicated for the dtomasgu-sec-nginx-kubernetes-1.22.3-3 cluster...\n\nFurthermore, doing `kubectl config get-contexts` will not work as there are duplicated entries.","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                                               \"%s, aborting.\" % cfg_file)"},{"line_number":319,"context_line":"                    else:"},{"line_number":320,"context_line":"                        # Delete old cluster entries to write the new ones"},{"line_number":321,"context_line":"                        del old_conf[\"clusters\"][i]"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"                        # Delete contexts associated with the cluster"},{"line_number":324,"context_line":"                        marked_for_deletion \u003d []"}],"source_content_type":"text/x-python","patch_set":55,"id":"7f5f2ae3_5380d5ff","line":321,"in_reply_to":"cf8db34f_015f9e6f","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"51a4f8be3406f98058d0a2f5594be691ae919a9b"}],"magnumclient/osc/v1/clusters.py":[{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"4c03cdc4a087150b4ce0220f5b05445dbfa773fa","unresolved":true,"context_lines":[{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--use-conf\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_conf\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"92784289_9203c24d","line":415,"range":{"start_line":415,"start_character":13,"end_line":415,"end_character":23},"updated":"2021-05-04 15:10:00.000000000","message":"instead of this, can we use --dir\u003d~/.kube as the default directory instead of ./? user would still need to --force to override existing config","commit_id":"70ce343e8a4d6241f301218e32256587feb03661"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"2677866e7c1e9144329f02ec2444590b34582c01","unresolved":true,"context_lines":[{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--use-conf\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_conf\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"c72b673f_49de3554","line":415,"range":{"start_line":415,"start_character":13,"end_line":415,"end_character":23},"updated":"2021-05-04 15:06:25.000000000","message":"others, any suggestions for this name? Make it a default behaviour?","commit_id":"70ce343e8a4d6241f301218e32256587feb03661"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--use-conf\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_conf\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"897a3614_d4c66b88","line":415,"range":{"start_line":415,"start_character":13,"end_line":415,"end_character":23},"in_reply_to":"3691075c_7795b11d","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"70ce343e8a4d6241f301218e32256587feb03661"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"9bdac2fb22c00f421f9fd0342e9aac9ec0edc79a","unresolved":true,"context_lines":[{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--use-conf\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_conf\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3691075c_7795b11d","line":415,"range":{"start_line":415,"start_character":13,"end_line":415,"end_character":23},"in_reply_to":"92784289_9203c24d","updated":"2021-05-04 15:10:57.000000000","message":"this would eliminate the need for a separate option of this kind.","commit_id":"70ce343e8a4d6241f301218e32256587feb03661"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--use-conf\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_conf\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":12,"id":"55884e4c_5fed4fb0","line":415,"range":{"start_line":415,"start_character":13,"end_line":415,"end_character":23},"in_reply_to":"c72b673f_49de3554","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"70ce343e8a4d6241f301218e32256587feb03661"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"2fb4b7abb367665fe4219e5a1bd0236061137820","unresolved":true,"context_lines":[{"line_number":411,"context_line":"            dest\u003d\u0027use_keystone\u0027,"},{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--default-config\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_default_config\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"},{"line_number":419,"context_line":"            help\u003d_(\u0027Use the default kubeconfig which \u0027"},{"line_number":420,"context_line":"                   \u0027is usually located in ~/.kube.\u0027))"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        return parser"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":33,"id":"5a8fa6bd_ebeb235e","line":421,"range":{"start_line":414,"start_character":0,"end_line":421,"end_character":0},"updated":"2021-06-01 15:20:14.000000000","message":"-1 to this. this duplicates the function of --dir `~/.kube`. Fine if you don\u0027t want to default to ~/.kube but lets not create a redundant option.","commit_id":"7062710814d8961439271cd8e6b53e4f9acf8140"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"3de80433d64ad21932cf47030634fc05a185dfe7","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            dest\u003d\u0027use_keystone\u0027,"},{"line_number":412,"context_line":"            default\u003dFalse,"},{"line_number":413,"context_line":"            help\u003d_(\u0027Use Keystone token in config files.\u0027))"},{"line_number":414,"context_line":"        parser.add_argument("},{"line_number":415,"context_line":"            \u0027--default-config\u0027,"},{"line_number":416,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":417,"context_line":"            dest\u003d\u0027use_default_config\u0027,"},{"line_number":418,"context_line":"            default\u003dFalse,"},{"line_number":419,"context_line":"            help\u003d_(\u0027Use the default kubeconfig which \u0027"},{"line_number":420,"context_line":"                   \u0027is usually located in ~/.kube.\u0027))"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        return parser"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":33,"id":"aca3771f_be5f66f1","line":421,"range":{"start_line":414,"start_character":0,"end_line":421,"end_character":0},"in_reply_to":"5a8fa6bd_ebeb235e","updated":"2022-02-23 17:10:40.000000000","message":"Done","commit_id":"7062710814d8961439271cd8e6b53e4f9acf8140"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f4e1b847a27a654e67c0f6c1435b2211e48b2bd5","unresolved":true,"context_lines":[{"line_number":385,"context_line":"        parser.add_argument("},{"line_number":386,"context_line":"            \u0027--dir\u0027,"},{"line_number":387,"context_line":"            metavar\u003d\u0027\u003cdir\u003e\u0027,"},{"line_number":388,"context_line":"            default\u003d\u0027--homedir--\u0027,"},{"line_number":389,"context_line":"            help\u003d_(\u0027Directory to save the certificate and config files.\u0027))"},{"line_number":390,"context_line":"        parser.add_argument("},{"line_number":391,"context_line":"            \u0027--force\u0027,"}],"source_content_type":"text/x-python","patch_set":77,"id":"23953a2c_f06a6dbf","line":388,"range":{"start_line":388,"start_character":12,"end_line":388,"end_character":34},"updated":"2022-03-16 10:17:42.000000000","message":"I realised with the newest PS you added this default, which changes the behaviour if --dir is not specified.\n\nI think we have to discuss about changing default behaviour, will be good if you can bring it up at the meeting, I will try to remember to bring it up if possible.","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"},{"author":{"_account_id":32449,"name":"Stavros Moiras","email":"stavros.moiras@cern.ch","username":"smoiras"},"change_message_id":"be66c3cf3eb36fd855f28154e3a34a2273dc0b74","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        parser.add_argument("},{"line_number":386,"context_line":"            \u0027--dir\u0027,"},{"line_number":387,"context_line":"            metavar\u003d\u0027\u003cdir\u003e\u0027,"},{"line_number":388,"context_line":"            default\u003d\u0027--homedir--\u0027,"},{"line_number":389,"context_line":"            help\u003d_(\u0027Directory to save the certificate and config files.\u0027))"},{"line_number":390,"context_line":"        parser.add_argument("},{"line_number":391,"context_line":"            \u0027--force\u0027,"}],"source_content_type":"text/x-python","patch_set":77,"id":"042f5735_697be112","line":388,"range":{"start_line":388,"start_character":12,"end_line":388,"end_character":34},"in_reply_to":"23953a2c_f06a6dbf","updated":"2022-03-16 13:24:44.000000000","message":"Sure. I will bring it at the next meeting on Wednesday :)","commit_id":"4b6b1be4da3b1c7c956a2cbf978b3705f68ab9b3"}]}
