)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"a4a27ac835c51e60bfec79321cc50e5afbf32094","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keystone auth support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add Keystone auth support for generated kubeconfig"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Task: 28296"},{"line_number":12,"context_line":"Story: 1755770"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9fdfeff1_56216fb3","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":50},"updated":"2019-02-27 11:22:30.000000000","message":"maybe something more here about the new options?","commit_id":"81b84804cca78d239442da4ca79273cde542572f"}],"magnumclient/common/utils.py":[{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"080a0ba64cd7a7bc3ccb9f996e7a7e17de7fbc5e","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,"},{"line_number":176,"context_line":"                               force\u003dFalse, certs\u003dNone,"},{"line_number":177,"context_line":"                               kubectl_keystone_auth\u003d\"/usr/bin/\""},{"line_number":178,"context_line":"                               \"kubectl-keystone-auth\"):"},{"line_number":179,"context_line":"    \"\"\"Return and write configuration for the given kubernetes cluster.\"\"\""},{"line_number":180,"context_line":"    cfg_file \u003d \"%s/config\" % cfg_dir"},{"line_number":181,"context_line":"    if cluster_template.tls_disabled or certs is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_554f6e33","line":178,"range":{"start_line":177,"start_character":54,"end_line":178,"end_character":53},"updated":"2019-02-11 08:04:35.000000000","message":"For people wanting to use the additional binary we can have a flag and create a different kubeconfig.\n\n--env\n--bin\n\nI would start without adding the binary. Then in another commit we can add the use of the binary.","commit_id":"01bc6a070b69f12052953e516af66aa9fecf24b6"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"080a0ba64cd7a7bc3ccb9f996e7a7e17de7fbc5e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"               \"      apiVersion: client.authentication.k8s.io/v1alpha1\\n\""},{"line_number":227,"context_line":"               \"      args:\\n\""},{"line_number":228,"context_line":"               \"      - -c\\n\""},{"line_number":229,"context_line":"               \"      - \u003e\\n\""},{"line_number":230,"context_line":"               \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":231,"context_line":"               \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":232,"context_line":"               \"            exit 1\\n\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_956e3694","line":229,"updated":"2019-02-11 08:04:35.000000000","message":"Another option is, make the this script checking if the binary exists in the $PATH then use the binary, else if the token exists, use the token else print error msg.","commit_id":"01bc6a070b69f12052953e516af66aa9fecf24b6"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"2ccc23e83c25b00100c752fec58f64e6d22f3621","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                  \u0027key\u0027: base64.b64encode(certs[\u0027key\u0027]),"},{"line_number":239,"context_line":"                  \u0027cert\u0027: base64.b64encode(certs[\u0027cert\u0027]),"},{"line_number":240,"context_line":"                  \u0027ca\u0027: base64.b64encode(certs[\u0027ca\u0027]),"},{"line_number":241,"context_line":"                  \u0027kubectl_keystone_auth\u0027: kubectl_keystone_auth})"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    if os.path.exists(cfg_file) and not force:"},{"line_number":244,"context_line":"        raise exc.CommandError(\"File %s exists, aborting.\" % cfg_file)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_732d06fc","line":241,"range":{"start_line":241,"start_character":18,"end_line":241,"end_character":64},"updated":"2019-02-08 09:27:16.000000000","message":"Is this used anywhere?","commit_id":"01bc6a070b69f12052953e516af66aa9fecf24b6"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"a4a595ebe0598d008948062dee9fd35b67990330","unresolved":false,"context_lines":[{"line_number":193,"context_line":"               \"- name: %(name)s\u0027\\n\""},{"line_number":194,"context_line":"               % {\u0027name\u0027: cluster.name, \u0027api_address\u0027: cluster.api_address})"},{"line_number":195,"context_line":"    else:"},{"line_number":196,"context_line":"        if not use_keystone:"},{"line_number":197,"context_line":"            cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":198,"context_line":"                   \"clusters:\\n\""},{"line_number":199,"context_line":"                   \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_d06ca337","line":196,"range":{"start_line":196,"start_character":11,"end_line":196,"end_character":14},"updated":"2019-02-26 09:15:44.000000000","message":"nit: if use_keystone: else: would be nicer","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"8db28ed24d3737e3a89c23f4bf8b09e5b0fdf4c2","unresolved":false,"context_lines":[{"line_number":193,"context_line":"               \"- name: %(name)s\u0027\\n\""},{"line_number":194,"context_line":"               % {\u0027name\u0027: cluster.name, \u0027api_address\u0027: cluster.api_address})"},{"line_number":195,"context_line":"    else:"},{"line_number":196,"context_line":"        if not use_keystone:"},{"line_number":197,"context_line":"            cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":198,"context_line":"                   \"clusters:\\n\""},{"line_number":199,"context_line":"                   \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_96dd9742","line":196,"range":{"start_line":196,"start_character":11,"end_line":196,"end_character":14},"in_reply_to":"9fdfeff1_a2abba85","updated":"2019-02-27 11:08:06.000000000","message":"Will do in next ps.","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"74a0386fea72ba285337a545f928972b057cbc50","unresolved":false,"context_lines":[{"line_number":193,"context_line":"               \"- name: %(name)s\u0027\\n\""},{"line_number":194,"context_line":"               % {\u0027name\u0027: cluster.name, \u0027api_address\u0027: cluster.api_address})"},{"line_number":195,"context_line":"    else:"},{"line_number":196,"context_line":"        if not use_keystone:"},{"line_number":197,"context_line":"            cfg \u003d (\"apiVersion: v1\\n\""},{"line_number":198,"context_line":"                   \"clusters:\\n\""},{"line_number":199,"context_line":"                   \"- cluster:\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_a2abba85","line":196,"range":{"start_line":196,"start_character":11,"end_line":196,"end_character":14},"in_reply_to":"9fdfeff1_d06ca337","updated":"2019-02-27 10:36:32.000000000","message":"+1","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"a4a27ac835c51e60bfec79321cc50e5afbf32094","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_7636f304","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"updated":"2019-02-27 11:22:30.000000000","message":"Maybe we put a different variable name?\n\nAfter exporting this variable you will get this error for new openstack commands:\n__init__() got an unexpected keyword argument \u0027token\u0027","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"e9c416d9d4bb0968f6645b3db06ec78a2bbba6e2","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_39e61c18","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_39dcdc72","updated":"2019-02-27 11:44:37.000000000","message":"No to credentials, only token.\n\nfor credentials we have the openstack clients.\n\nThe question here is OS_TOKEN vs OS_AUTH_TOKEN or another name.","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"c2c4fe43b6fc7175155988bdf765d5c7c21cd96e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_f93de28d","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_39e61c18","updated":"2019-02-27 23:34:46.000000000","message":"Is there a documentation for how this is intended to be used?","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":20498,"name":"Spyros Trigazis","email":"spyridon.trigazis@cern.ch","username":"strigazi"},"change_message_id":"61e49cc8fa505cda26a38a68dcd32d796ae5bf11","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_d903500c","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_7636f304","updated":"2019-02-27 11:24:32.000000000","message":"@Ricardo, thoughts?","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"1abf58a542a659fe67060215f575e0cb5321ecfc","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_39dcdc72","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_79a024f4","updated":"2019-02-27 11:33:35.000000000","message":"Perhaps check for OS_USERNAME or OS_TOKEN or OS_TRUST_ID?","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"c78842577058659b3647bd44538c587cea00259e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_79a024f4","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_d903500c","updated":"2019-02-27 11:30:00.000000000","message":"Why are we using OS_TOKEN instead of OS_USERNAME and OS_PASSWORD? Is it a security risk? Might be better to use credentials in the environment to generate OS_TOKEN instead.","commit_id":"81b84804cca78d239442da4ca79273cde542572f"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"a5e8eb74353b1c2d5d518561adb7ec049907d700","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                   \"      args:\\n\""},{"line_number":243,"context_line":"                   \"      - -c\\n\""},{"line_number":244,"context_line":"                   \"      - \u003e\\n\""},{"line_number":245,"context_line":"                   \"        if [ -z ${OS_TOKEN} ]; then\\n\""},{"line_number":246,"context_line":"                   \"            echo \u0027Error: Missing OpenStack credential from environment variable $OS_TOKEN\u0027 \u003e /dev/stderr\\n\"  # noqa"},{"line_number":247,"context_line":"                   \"            exit 1\\n\""},{"line_number":248,"context_line":"                   \"        else\\n\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_199f8602","line":245,"range":{"start_line":245,"start_character":38,"end_line":245,"end_character":46},"in_reply_to":"9fdfeff1_f93de28d","updated":"2019-02-28 16:07:31.000000000","message":"I will propose a doc in a following patch.","commit_id":"81b84804cca78d239442da4ca79273cde542572f"}]}
