)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add full support for fernet [WIP]"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This addresses the aspects of fernet key bootstrapping as well as distributed key rotation."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- Bootstrapping is handled in the same way as keystone bootstrap."},{"line_number":12,"context_line":"- A new keystone-fernet and keystone-ssh container is created to allow the nodes to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"bacf61ea_6b1c1d6b","line":9,"updated":"2016-08-02 12:42:50.000000000","message":"the content here should be wrapped at 71 characters or less.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"ansible/group_vars/all.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":267,"context_line":"#####################################"},{"line_number":268,"context_line":"# Keystone - Identity Service options"},{"line_number":269,"context_line":"#####################################"},{"line_number":270,"context_line":"keystone_token_provider: \"fernet\""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"#######################"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_71fd466d","line":270,"updated":"2016-08-02 00:37:16.000000000","message":"could use uuid for the default? in most of case, uuid is enough. and it is also backward compatible.","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"#####################################"},{"line_number":268,"context_line":"# Keystone - Identity Service options"},{"line_number":269,"context_line":"#####################################"},{"line_number":270,"context_line":"keystone_token_provider: \"uuid\""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"#######################"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_2b3985d9","line":270,"updated":"2016-08-02 12:42:50.000000000","message":"not really knowing how fernet works (but REALLY wanting fernet implemented) is uuid correct here?","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"ansible/inventory/multinode":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":269,"context_line":"keystone"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"[keystone-ssh:children]"},{"line_number":272,"context_line":"keystone"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"bacf61ea_31e0eecc","line":272,"updated":"2016-08-02 00:37:16.000000000","message":"these two groups seem not used.","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bacf61ea_11e32ada","line":273,"updated":"2016-08-02 00:37:16.000000000","message":"add new line at end of of file.","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"}],"ansible/roles/keystone/defaults/main.yml":[{"author":{"_account_id":16620,"name":"Alicja Kwasniewska","email":"alicja.kwasniewska@intel.com","username":"akwasnie"},"change_message_id":"962a7f807f03a6101387dbd426f245ecb55ba5e5","unresolved":false,"context_lines":[{"line_number":16,"context_line":"keystone_groupname: \"keystone\""},{"line_number":17,"context_line":"keystone_fernet_keys_repository: \"{{ node_config_directory }}/keystone/fernet-keys\""},{"line_number":18,"context_line":"keystone_fernet_keys_max_active: \"{{ groups[\u0027keystone\u0027] | length }}\""},{"line_number":19,"context_line":"keystone_fernet_token_expiration: "},{"line_number":20,"context_line":"keystone_rotation_frequency: \"{{ (60 // (groups[\u0027keystone\u0027] | length) }}\""},{"line_number":21,"context_line":"keystone_fernet_keys_cron_frequency: \"{{ (keystone_rotation_frequency * (groups[\u0027keystone\u0027].index(inventory_hostname) + 1)) - 1 }}\""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bacf61ea_80152e9d","line":19,"range":{"start_line":19,"start_character":33,"end_line":19,"end_character":34},"updated":"2016-08-01 11:17:59.000000000","message":"remove whitespace please","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":16620,"name":"Alicja Kwasniewska","email":"alicja.kwasniewska@intel.com","username":"akwasnie"},"change_message_id":"962a7f807f03a6101387dbd426f245ecb55ba5e5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"keystone_rotation_frequency: \"{{ (60 // (groups[\u0027keystone\u0027] | length) }}\""},{"line_number":21,"context_line":"keystone_fernet_keys_cron_frequency: \"{{ (keystone_rotation_frequency * (groups[\u0027keystone\u0027].index(inventory_hostname) + 1)) - 1 }}\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"keystone_fernet_cron_jobs: "},{"line_number":24,"context_line":"  - rule: \"* {{ keystone_fernet_keys_cron_frequency }} * * *\""},{"line_number":25,"context_line":"    command: /usr/bin/fernet-rotate.sh"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bacf61ea_6018fad3","line":23,"range":{"start_line":23,"start_character":26,"end_line":23,"end_character":27},"updated":"2016-08-01 11:17:59.000000000","message":"ditto","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"keystone_fernet_cron_jobs:"},{"line_number":23,"context_line":"  - rule: \"* {{ keystone_fernet_keys_cron_frequency }} * * *\""},{"line_number":24,"context_line":"    command: /usr/bin/fernet-rotate.sh"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_4b8cb97f","line":24,"updated":"2016-08-02 12:42:50.000000000","message":"seems a little strange to put the cron job operations in main.yml.  These are probably something we don\u0027t really want to configure, and if we did there are better (easier) ways to configure them.  ALso IMO command should be hardcoded rather then configurable.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"keystone_fernet_cron_jobs:"},{"line_number":23,"context_line":"  - rule: \"* {{ keystone_fernet_keys_cron_frequency }} * * *\""},{"line_number":24,"context_line":"    command: /usr/bin/fernet-rotate.sh"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_fc5571fa","line":24,"in_reply_to":"bacf61ea_4b8cb97f","updated":"2016-08-02 13:22:50.000000000","message":"i also think so，keystone_fernet_cron_jobs should be in /role/task/config","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"keystone_logging_debug: \"{{ openstack_logging_debug }}\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"openstack_keystone_auth: \"{\u0027auth_url\u0027:\u0027{{ openstack_auth.auth_url }}\u0027,\u0027username\u0027:\u0027{{ openstack_auth.username }}\u0027,\u0027password\u0027:\u0027{{ openstack_auth.password }}\u0027,\u0027project_name\u0027:\u0027{{ openstack_auth.project_name }}\u0027,\u0027domain_name\u0027:\u0027default\u0027}\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"keystone_ssh_port: \"8023\""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_b148428c","line":54,"range":{"start_line":53,"start_character":0,"end_line":54,"end_character":1},"updated":"2016-08-02 13:22:50.000000000","message":"I think the port should be defined in kolla/ansible/group_vars","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"####################"},{"line_number":15,"context_line":"keystone_username: \"keystone\""},{"line_number":16,"context_line":"keystone_groupname: \"keystone\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"####################"},{"line_number":19,"context_line":"# Docker"},{"line_number":20,"context_line":"####################"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"bacf61ea_ef81bc90","line":17,"updated":"2016-08-04 12:33:47.000000000","message":"nit: use 2 newlines","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"}],"ansible/roles/keystone/files/fernet_rotate_cron_generator.py":[{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2016 Sam Yaple, Shaun Smekel"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":33,"id":"bacf61ea_ef589c58","line":3,"updated":"2016-08-04 12:33:47.000000000","message":"I would like to avoid copyright statements in the header of files.","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"MINUTE_SPAN \u003d 1"},{"line_number":24,"context_line":"HOUR_SPAN \u003d 60"},{"line_number":25,"context_line":"DAY_SPAN \u003d 1440"},{"line_number":26,"context_line":"WEEK_SPAN \u003d 10080"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_826487e5","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":15},"updated":"2016-08-09 13:54:05.000000000","message":"24 * HOUR_SPAN","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"MINUTE_SPAN \u003d 1"},{"line_number":24,"context_line":"HOUR_SPAN \u003d 60"},{"line_number":25,"context_line":"DAY_SPAN \u003d 1440"},{"line_number":26,"context_line":"WEEK_SPAN \u003d 10080"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_4b0715ca","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":15},"in_reply_to":"9ad45d7e_826487e5","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"MINUTE_SPAN \u003d 1"},{"line_number":24,"context_line":"HOUR_SPAN \u003d 60"},{"line_number":25,"context_line":"DAY_SPAN \u003d 1440"},{"line_number":26,"context_line":"WEEK_SPAN \u003d 10080"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def json_exit(msg\u003dNone, failed\u003dFalse, changed\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_e2baa322","line":26,"range":{"start_line":26,"start_character":12,"end_line":26,"end_character":17},"updated":"2016-08-09 13:54:05.000000000","message":"7  * DAY_SPAN","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":23,"context_line":"MINUTE_SPAN \u003d 1"},{"line_number":24,"context_line":"HOUR_SPAN \u003d 60"},{"line_number":25,"context_line":"DAY_SPAN \u003d 1440"},{"line_number":26,"context_line":"WEEK_SPAN \u003d 10080"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def json_exit(msg\u003dNone, failed\u003dFalse, changed\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_8b0d8dea","line":26,"range":{"start_line":26,"start_character":12,"end_line":26,"end_character":17},"in_reply_to":"9ad45d7e_e2baa322","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                        type\u003dint)"},{"line_number":94,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--index\u0027,"},{"line_number":95,"context_line":"                        help\u003d\u0027Index of host starting from 0\u0027,"},{"line_number":96,"context_line":"                        required\u003dTrue,"},{"line_number":97,"context_line":"                        default\u003d\u00270\u0027,"},{"line_number":98,"context_line":"                        type\u003dint)"},{"line_number":99,"context_line":"    parser.add_argument(\u0027-n\u0027, \u0027--number\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_8708192f","line":96,"range":{"start_line":96,"start_character":24,"end_line":96,"end_character":37},"updated":"2016-08-09 13:54:05.000000000","message":"Does this makes sense when setting a default value?","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                        type\u003dint)"},{"line_number":94,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--index\u0027,"},{"line_number":95,"context_line":"                        help\u003d\u0027Index of host starting from 0\u0027,"},{"line_number":96,"context_line":"                        required\u003dTrue,"},{"line_number":97,"context_line":"                        default\u003d\u00270\u0027,"},{"line_number":98,"context_line":"                        type\u003dint)"},{"line_number":99,"context_line":"    parser.add_argument(\u0027-n\u0027, \u0027--number\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_eb1529e5","line":96,"range":{"start_line":96,"start_character":24,"end_line":96,"end_character":37},"in_reply_to":"9ad45d7e_8708192f","updated":"2016-08-10 11:21:48.000000000","message":"Good point. Looking at its purpose it looks like required is more important than a default.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--index\u0027,"},{"line_number":95,"context_line":"                        help\u003d\u0027Index of host starting from 0\u0027,"},{"line_number":96,"context_line":"                        required\u003dTrue,"},{"line_number":97,"context_line":"                        default\u003d\u00270\u0027,"},{"line_number":98,"context_line":"                        type\u003dint)"},{"line_number":99,"context_line":"    parser.add_argument(\u0027-n\u0027, \u0027--number\u0027,"},{"line_number":100,"context_line":"                        help\u003d\u0027Number of tokens that should exist\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_e23583da","line":97,"range":{"start_line":97,"start_character":32,"end_line":97,"end_character":35},"updated":"2016-08-09 13:54:05.000000000","message":"This should be an integer and not a string.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    parser.add_argument(\u0027-i\u0027, \u0027--index\u0027,"},{"line_number":95,"context_line":"                        help\u003d\u0027Index of host starting from 0\u0027,"},{"line_number":96,"context_line":"                        required\u003dTrue,"},{"line_number":97,"context_line":"                        default\u003d\u00270\u0027,"},{"line_number":98,"context_line":"                        type\u003dint)"},{"line_number":99,"context_line":"    parser.add_argument(\u0027-n\u0027, \u0027--number\u0027,"},{"line_number":100,"context_line":"                        help\u003d\u0027Number of tokens that should exist\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_2bdaa14c","line":97,"range":{"start_line":97,"start_character":32,"end_line":97,"end_character":35},"in_reply_to":"9ad45d7e_e23583da","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                        required\u003dTrue,"},{"line_number":102,"context_line":"                        type\u003dint)"},{"line_number":103,"context_line":"    args \u003d parser.parse_args()"},{"line_number":104,"context_line":"    json_exit({\u0027cron_jobs\u0027: generate(int(args.index), args.number, args.time)})"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"if __name__ \u003d\u003d \"__main__\":"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_823da7bd","line":104,"range":{"start_line":104,"start_character":37,"end_line":104,"end_character":52},"updated":"2016-08-09 13:54:05.000000000","message":"This cast is not required, args.index is of type int.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                        required\u003dTrue,"},{"line_number":102,"context_line":"                        type\u003dint)"},{"line_number":103,"context_line":"    args \u003d parser.parse_args()"},{"line_number":104,"context_line":"    json_exit({\u0027cron_jobs\u0027: generate(int(args.index), args.number, args.time)})"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"if __name__ \u003d\u003d \"__main__\":"}],"source_content_type":"text/x-python","patch_set":39,"id":"9ad45d7e_abe69112","line":104,"range":{"start_line":104,"start_character":37,"end_line":104,"end_character":52},"in_reply_to":"9ad45d7e_823da7bd","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"}],"ansible/roles/keystone/tasks/config.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    dest: \"{{ node_config_directory }}/keystone-ssh/{{ item.dest }}\""},{"line_number":86,"context_line":"  with_items:"},{"line_number":87,"context_line":"    - { src: \"sshd_config.j2\", dest: \"sshd_config\" }"},{"line_number":88,"context_line":"    - { src: \"id_rsa\", dest: \"id_rsa\" }"},{"line_number":89,"context_line":"    - { src: \"id_rsa.pub\", dest: \"id_rsa.pub\" }"},{"line_number":90,"context_line":"    - { src: \"ssh_config.j2\", dest: \"ssh_config\" }"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_31074e83","line":88,"updated":"2016-08-02 00:37:16.000000000","message":"doese this work?\n\nshouldn\u0027t the ssh key come from keystone_ssh_key.private_key and keystone_ssh_key.public_key","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"1aebc694ee7547532201268cdfde0966b0b5f22b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    dest: \"{{ node_config_directory }}/keystone-ssh/{{ item.dest }}\""},{"line_number":86,"context_line":"  with_items:"},{"line_number":87,"context_line":"    - { src: \"sshd_config.j2\", dest: \"sshd_config\" }"},{"line_number":88,"context_line":"    - { src: \"id_rsa\", dest: \"id_rsa\" }"},{"line_number":89,"context_line":"    - { src: \"id_rsa.pub\", dest: \"id_rsa.pub\" }"},{"line_number":90,"context_line":"    - { src: \"ssh_config.j2\", dest: \"ssh_config\" }"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_51a12245","line":88,"in_reply_to":"bacf61ea_31074e83","updated":"2016-08-02 00:50:47.000000000","message":"Yes that\u0027s exactly what\u0027s happening in the id_rsa template. Same as in nova_ssh.","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  with_items:"},{"line_number":99,"context_line":"    - { src: \"sshd_config.j2\", dest: \"sshd_config\" }"},{"line_number":100,"context_line":"    - { src: \"id_rsa\", dest: \"id_rsa\" }"},{"line_number":101,"context_line":"    - { src: \"id_rsa.pub\", dest: \"id_rsa.pub\" }"},{"line_number":102,"context_line":"    - { src: \"ssh_config.j2\", dest: \"ssh_config\" }"},{"line_number":103,"context_line":"  when: keystone_token_provider \u003d\u003d \u0027fernet\u0027"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"bacf61ea_cf015808","line":101,"updated":"2016-08-04 12:33:47.000000000","message":"Is this file required in keystone-ssh container? Or should the location be authorized_keys instead of id_rsa.pub?","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"}],"ansible/roles/keystone/tasks/deploy.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"- include: init_fernet.yml"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":17,"context_line":"    - \"{{ \u0027fernet\u0027 in keystone_token_provider }}\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- include: check.yml"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_b1d4deeb","line":17,"updated":"2016-08-02 00:37:16.000000000","message":"please use more accurate condition\n\n - keystone_token_provider \u003d\u003d \u0027fernet\u0027","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"1aebc694ee7547532201268cdfde0966b0b5f22b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"- include: init_fernet.yml"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":17,"context_line":"    - \"{{ \u0027fernet\u0027 in keystone_token_provider }}\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- include: check.yml"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_f1a93625","line":17,"in_reply_to":"bacf61ea_b1d4deeb","updated":"2016-08-02 00:50:47.000000000","message":"Done","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"- include: init_fernet.yml"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":17,"context_line":"    - \"{{ keystone_token_provider \u003d\u003d \u0027fernet\u0027 }}\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- include: check.yml"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_82f5a7cc","line":17,"updated":"2016-08-09 13:54:05.000000000","message":"In the other files you have not used \"{{ ... }}\".","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":14,"context_line":"- include: init_fernet.yml"},{"line_number":15,"context_line":"  when:"},{"line_number":16,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":17,"context_line":"    - \"{{ keystone_token_provider \u003d\u003d \u0027fernet\u0027 }}\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- include: check.yml"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_abcdf186","line":17,"in_reply_to":"9ad45d7e_82f5a7cc","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"}],"ansible/roles/keystone/tasks/do_reconfigure.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  when: inventory_hostname in groups[item.group]"},{"line_number":9,"context_line":"  with_items:"},{"line_number":10,"context_line":"    - { name: keystone, group: keystone }"},{"line_number":11,"context_line":"    - { name: keystone_fernet, group: keystone }"},{"line_number":12,"context_line":"    - { name: keystone_ssh, group: keystone }"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- include: config.yml"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_91cf1a55","line":11,"updated":"2016-08-02 00:37:16.000000000","message":"only enable this when keystone_token_provider \u003d\u003d \u0027fernet\u0027","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  with_items:"},{"line_number":23,"context_line":"    - { name: keystone, group: keystone }"},{"line_number":24,"context_line":"    - { name: keystone_fernet, group: keystone }"},{"line_number":25,"context_line":"    - { name: keystone_ssh, group: keystone }"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# NOTE(jeffrey4l): when config_strategy \u003d\u003d \u0027COPY_ALWAYS\u0027"},{"line_number":28,"context_line":"# and container env[\u0027KOLLA_CONFIG_STRATEGY\u0027] \u003d\u003d \u0027COPY_ONCE\u0027,"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_f1dad615","line":25,"updated":"2016-08-02 00:37:16.000000000","message":"ditto","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  with_items:"},{"line_number":37,"context_line":"    - { name: keystone, group: keystone }"},{"line_number":38,"context_line":"    - { name: keystone_fernet, group: keystone }"},{"line_number":39,"context_line":"    - { name: keystone_ssh, group: keystone }"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- name: Remove the containers"},{"line_number":42,"context_line":"  kolla_docker:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_d1d512e5","line":39,"updated":"2016-08-02 00:37:16.000000000","message":"ditto","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Create inital keystone volume mounts"},{"line_number":4,"context_line":"  set_fact:"},{"line_number":5,"context_line":"    keystone_items:"},{"line_number":6,"context_line":"      - { name: keystone, group: keystone }"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_22383ba0","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":44},"updated":"2016-08-09 13:54:05.000000000","message":"This description is wrong, the task sets a fact and does not create anything.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Create inital keystone volume mounts"},{"line_number":4,"context_line":"  set_fact:"},{"line_number":5,"context_line":"    keystone_items:"},{"line_number":6,"context_line":"      - { name: keystone, group: keystone }"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_eb71a945","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":44},"in_reply_to":"9ad45d7e_22383ba0","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"}],"ansible/roles/keystone/tasks/init_fernet.yaml":[{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Initialise fernet key authentication"},{"line_number":3,"context_line":"  command: \"docker exec -t keystone_fernet kolla_keystone_bootstrap {{ keystone_username }} {{ keystone_groupname }}\""},{"line_number":4,"context_line":"  register: fernet_create"},{"line_number":5,"context_line":"  changed_when: \"{{ fernet_create.stdout.find(\u0027localhost | SUCCESS \u003d\u003e \u0027) !\u003d -1 and (fernet_create.stdout.split(\u0027localhost | SUCCESS \u003d\u003e \u0027)[1]|from_json).changed }}\""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_dcb34de8","line":2,"range":{"start_line":2,"start_character":2,"end_line":2,"end_character":44},"updated":"2016-08-02 13:22:50.000000000","message":"i think the file shoud be in config.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"ansible/roles/keystone/tasks/pull.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    action: \"pull_image\""},{"line_number":12,"context_line":"    common_options: \"{{ docker_common_options }}\""},{"line_number":13,"context_line":"    image: \"{{ keystone_fernet_image_full }}\""},{"line_number":14,"context_line":"  when: inventory_hostname in groups[\u0027keystone-fernet\u0027]"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- name: Pulling keystone_ssh image"},{"line_number":17,"context_line":"  kolla_docker:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_71e6e6e8","line":14,"updated":"2016-08-02 00:37:16.000000000","message":"only enable this when keystone_token_provider \u003d\u003d \u0027fernet\u0027","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bacf61ea_51e922b6","line":22,"updated":"2016-08-02 00:37:16.000000000","message":"ditto","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"7f0bc9a43fc755c9cd169092e1b650184e985e5e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    action: \"pull_image\""},{"line_number":12,"context_line":"    common_options: \"{{ docker_common_options }}\""},{"line_number":13,"context_line":"    image: \"{{ keystone_fernet_image_full }}\""},{"line_number":14,"context_line":"  when: "},{"line_number":15,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":16,"context_line":"    - keystone_token_provider \u003d\u003d \u0027fernet\u0027"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":14,"id":"bacf61ea_dae99480","line":14,"range":{"start_line":14,"start_character":7,"end_line":14,"end_character":8},"updated":"2016-08-02 11:59:32.000000000","message":"remove whitespace","commit_id":"bf5da28b3f424bff0ebcd17c5bfc9d918d040fba"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"7f0bc9a43fc755c9cd169092e1b650184e985e5e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    action: \"pull_image\""},{"line_number":21,"context_line":"    common_options: \"{{ docker_common_options }}\""},{"line_number":22,"context_line":"    image: \"{{ keystone_ssh_image_full }}\""},{"line_number":23,"context_line":"  when: "},{"line_number":24,"context_line":"    - inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":25,"context_line":"    - keystone_token_provider \u003d\u003d \u0027fernet\u0027"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"bacf61ea_3a055045","line":23,"range":{"start_line":23,"start_character":7,"end_line":23,"end_character":8},"updated":"2016-08-02 11:59:32.000000000","message":"remove whitespace","commit_id":"bf5da28b3f424bff0ebcd17c5bfc9d918d040fba"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    image: \"{{ keystone_image_full }}\""},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027keystone\u0027]"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Pulling keystone_fernet image"},{"line_number":10,"context_line":"  kolla_docker:"},{"line_number":11,"context_line":"    action: \"pull_image\""},{"line_number":12,"context_line":"    common_options: \"{{ docker_common_options }}\""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_6bc7fd64","line":9,"updated":"2016-08-02 12:42:50.000000000","message":"are these two docker containers in the repo already?  If not, could you provide links to them so they can be reviewed.  The reviewers are struggling with the sheer volume of input into Kolla and reviewing the docker images would be helpful.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"ansible/roles/keystone/tasks/start.yml":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"      - \"{{ node_config_directory }}/keystone/:{{ container_config_directory }}/:ro\""},{"line_number":10,"context_line":"      - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":11,"context_line":"      - \"kolla_logs:/var/log/kolla/\""},{"line_number":12,"context_line":"      - \"keystone_fernet_tokens:/etc/keystone/fernet-keys\""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- name: Wait for keystone startup"},{"line_number":15,"context_line":"  wait_for: host\u003d{{ kolla_internal_fqdn }} port\u003d{{ keystone_admin_port }}"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bacf61ea_110a0a8a","line":12,"updated":"2016-08-02 00:37:16.000000000","message":"ditto","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Create inital keystone volume mounts"},{"line_number":4,"context_line":"  set_fact:"},{"line_number":5,"context_line":"    keystone_volumes:"},{"line_number":6,"context_line":"      - \"{{ node_config_directory }}/keystone/:{{ container_config_directory }}/:ro\""}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_821c8714","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":44},"updated":"2016-08-09 13:54:05.000000000","message":"wrong description","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Create inital keystone volume mounts"},{"line_number":4,"context_line":"  set_fact:"},{"line_number":5,"context_line":"    keystone_volumes:"},{"line_number":6,"context_line":"      - \"{{ node_config_directory }}/keystone/:{{ container_config_directory }}/:ro\""}],"source_content_type":"text/x-yaml","patch_set":39,"id":"9ad45d7e_ebd6c9ef","line":3,"range":{"start_line":3,"start_character":8,"end_line":3,"end_character":44},"in_reply_to":"9ad45d7e_821c8714","updated":"2016-08-10 11:21:48.000000000","message":"Done","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":10419,"name":"Ryan Hallisey","email":"rhallise@redhat.com","username":"rhallisey"},"change_message_id":"f38b5a7c910d5ef0cc7f218d652c126d4b10551b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"- name: Set variable for inital keystone volumes"},{"line_number":4,"context_line":"  set_fact:"},{"line_number":5,"context_line":"    keystone_volumes:"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"3ac371cc_086d8b98","line":2,"updated":"2016-08-15 14:10:03.000000000","message":"nit: extra line here","commit_id":"8bb4e6347ffe51d1142681c554d3102e883bfd22"},{"author":{"_account_id":10419,"name":"Ryan Hallisey","email":"rhallise@redhat.com","username":"rhallisey"},"change_message_id":"f38b5a7c910d5ef0cc7f218d652c126d4b10551b","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- name: Add fernet volume to keystone volumes variable if fernet enabled"},{"line_number":11,"context_line":"  set_fact:"},{"line_number":12,"context_line":"    keystone_volumes: \"{{ keystone_volumes + [\\\"keystone_fernet_tokens:/etc/keystone/fernet-keys\\\"] }}\""},{"line_number":13,"context_line":"  when: keystone_token_provider \u003d\u003d \u0027fernet\u0027"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"- name: Starting keystone container"}],"source_content_type":"text/x-yaml","patch_set":42,"id":"3ac371cc_a2260e66","line":12,"updated":"2016-08-15 14:10:03.000000000","message":"Should also mount in {{ node_config_directory }}/keystone-fernet:{{ container_config_directory }}","commit_id":"8bb4e6347ffe51d1142681c554d3102e883bfd22"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"f54b354a59ba2963101a9c1237860b94577b70a0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    keystone_volumes: \"{{ keystone_volumes + [\\\"keystone_fernet_tokens:/etc/keystone/fernet-keys\\\"] }}\""},{"line_number":12,"context_line":"  when: keystone_token_provider \u003d\u003d \u0027fernet\u0027"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- name: Add fernet and ssh config folders to respective variables if fernet enabled"},{"line_number":15,"context_line":"  set_fact:"},{"line_number":16,"context_line":"    keystone_fernet_volumes: \"{{ keystone_volumes + [\\\"{{ node_config_directory }}/keystone-fernet/:{{ container_config_directory }}/:ro\\\"] }}\""},{"line_number":17,"context_line":"    keystone_ssh_volumes: \"{{ keystone_volumes + [\\\"{{ node_config_directory }}/keystone-ssh/:{{ container_config_directory }}/:ro\\\"] }}\""},{"line_number":18,"context_line":"  when: keystone_token_provider \u003d\u003d \u0027fernet\u0027"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"- name: Starting keystone container"},{"line_number":21,"context_line":"  kolla_docker:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"3ac371cc_4c9f7750","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":43},"updated":"2016-08-15 22:27:17.000000000","message":"I\u0027m open to better ways to achieve this. Is there a nicer way using Jinja2 to merge two lists?","commit_id":"cec537845fcf26ee696bfabd842f0baab9de3322"}],"ansible/roles/keystone/templates/crontab.j2":[{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% for cron_job in keystone_fernet_cron_jobs %}"},{"line_number":2,"context_line":"{{ cron_job.rule }} {{ cron_job.command }}"},{"line_number":3,"context_line":"{% endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_eb33ed60","line":2,"updated":"2016-08-02 12:42:50.000000000","message":"I guess  this could make sense as an implementation, but I think making it configurable is not totally ideal - atleast using this mechanism.  A better way would be  to make it configurable on a time interval and have the ansible code figure out what the cron config looks like.\n\ne.g.\n\n\"rotate_fernet_tokens: 86400\" in globals.yml where 86400 is seconds.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{% for cron_job in keystone_fernet_cron_jobs %}"},{"line_number":2,"context_line":"{{ cron_job.rule }} {{ cron_job.command }}"},{"line_number":3,"context_line":"{% endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_bc93f9ff","line":2,"in_reply_to":"bacf61ea_eb33ed60","updated":"2016-08-02 13:22:50.000000000","message":"Done","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"{% set day \u003d \u0027*\u0027 %}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{% if total_rotation_mins \u003d\u003d 10080 %}"},{"line_number":9,"context_line":"\t{% set day \u003d cron_min // 1440 %}"},{"line_number":10,"context_line":"\t{% set hour \u003d (cron_min % 1440) // 60 %}"},{"line_number":11,"context_line":"\t{% set min \u003d cron_min % 60 %}"},{"line_number":12,"context_line":"{% elif total_rotation_mins \u003d\u003d 1440 %}"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_07039710","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"{% if total_rotation_mins \u003d\u003d 10080 %}"},{"line_number":9,"context_line":"\t{% set day \u003d cron_min // 1440 %}"},{"line_number":10,"context_line":"\t{% set hour \u003d (cron_min % 1440) // 60 %}"},{"line_number":11,"context_line":"\t{% set min \u003d cron_min % 60 %}"},{"line_number":12,"context_line":"{% elif total_rotation_mins \u003d\u003d 1440 %}"},{"line_number":13,"context_line":"\t{% set hour \u003d cron_min // 60 %}"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_62fec106","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"\t{% set min \u003d cron_min % 60 %}"},{"line_number":12,"context_line":"{% elif total_rotation_mins \u003d\u003d 1440 %}"},{"line_number":13,"context_line":"\t{% set hour \u003d cron_min // 60 %}"},{"line_number":14,"context_line":"\t{% set min \u003d cron_min % 60 %}"},{"line_number":15,"context_line":"{% elif total_rotation_mins \u003d\u003d 60 %}"},{"line_number":16,"context_line":"\t{% set min \u003d cron_min %}"},{"line_number":17,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_4203bd0d","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"\t{% set hour \u003d cron_min // 60 %}"},{"line_number":14,"context_line":"\t{% set min \u003d cron_min % 60 %}"},{"line_number":15,"context_line":"{% elif total_rotation_mins \u003d\u003d 60 %}"},{"line_number":16,"context_line":"\t{% set min \u003d cron_min %}"},{"line_number":17,"context_line":"{% endif %}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"{{ min }} {{ hour }} * * {{ day }} /usr/bin/fernet-rotate.sh"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_820db539","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"}],"ansible/roles/keystone/templates/fernet-node-sync.sh.j2":[{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Get data on the fernet tokens"},{"line_number":4,"context_line":"TOKEN_CHECK\u003d$(/usr/bin/fetch_fernet_tokens.py -t {{ fernet_token_expiry }} -n {{ (groups[\u0027keystone\u0027] | length) + 1 }})"}],"source_content_type":"text/x-jinja2","patch_set":33,"id":"bacf61ea_0a299e89","line":1,"updated":"2016-08-04 12:33:47.000000000","message":"#!/usr/bin/env bash","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"}],"ansible/roles/keystone/templates/fernet-rotate.sh.j2":[{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"afd787b97f26268e3bb5b6baac6eabf303a853cf","unresolved":false,"context_lines":[{"line_number":3,"context_line":"keystone-manage --config-file /etc/keystone/keystone.conf fernet_rotate --keystone-user {{ keystone_username }} --keystone-group {{ keystone_groupname }}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% for host in groups[\u0027keystone\u0027] %}"},{"line_number":6,"context_line":"\t{% if inventory_hostname !\u003d host %}"},{"line_number":7,"context_line":"/usr/bin/rsync -az -e -t \u0027ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ keystone_ssh_port }}\u0027 --delete /etc/keystone/fernet-keys keystone@{{ host }}:/etc/keystone/fernet-keys"},{"line_number":8,"context_line":"\t{% endif %}"},{"line_number":9,"context_line":"{% endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"bacf61ea_94b9ecce","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":1},"updated":"2016-08-01 12:20:47.000000000","message":"remove tab","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"afd787b97f26268e3bb5b6baac6eabf303a853cf","unresolved":false,"context_lines":[{"line_number":5,"context_line":"{% for host in groups[\u0027keystone\u0027] %}"},{"line_number":6,"context_line":"\t{% if inventory_hostname !\u003d host %}"},{"line_number":7,"context_line":"/usr/bin/rsync -az -e -t \u0027ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ keystone_ssh_port }}\u0027 --delete /etc/keystone/fernet-keys keystone@{{ host }}:/etc/keystone/fernet-keys"},{"line_number":8,"context_line":"\t{% endif %}"},{"line_number":9,"context_line":"{% endfor %}"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"bacf61ea_74bc38bb","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"updated":"2016-08-01 12:20:47.000000000","message":"remove tab","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"keystone-manage --config-file /etc/keystone/keystone.conf fernet_rotate --keystone-user {{ keystone_username }} --keystone-group {{ keystone_groupname }}"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":33,"id":"bacf61ea_ca2f8686","line":1,"updated":"2016-08-04 12:33:47.000000000","message":"#!/usr/bin/env bash","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"}],"ansible/roles/keystone/templates/keystone-fernet.json.j2":[{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    \"config_files\": [{"},{"line_number":5,"context_line":"            \"source\": \"{{ container_config_directory }}/sshd_config\","},{"line_number":6,"context_line":"            \"dest\": \"/var/spool/cron/crontabs/root/fernet-cron\","},{"line_number":7,"context_line":"            \"owner\": \"root\","},{"line_number":8,"context_line":"            \"perm\": \"0644\""},{"line_number":9,"context_line":"        },"},{"line_number":10,"context_line":"        {"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_97024e08","line":7,"range":{"start_line":7,"start_character":12,"end_line":7,"end_character":27},"updated":"2016-08-02 13:22:50.000000000","message":"why owner is root?","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"            \"source\": \"{{ container_config_directory }}/fernet-rotate.sh\","},{"line_number":12,"context_line":"            \"dest\": \"/usr/bin/fernet-rotate.sh\","},{"line_number":13,"context_line":"            \"owner\": \"root\","},{"line_number":14,"context_line":"            \"perm\": \"0744\""},{"line_number":15,"context_line":"        },"},{"line_number":16,"context_line":"        {"},{"line_number":17,"context_line":"            \"source\": \"{{ container_config_directory }}/fernet-node-sync.sh\","}],"source_content_type":"text/x-jinja2","patch_set":33,"id":"bacf61ea_aa6852bb","line":14,"range":{"start_line":14,"start_character":21,"end_line":14,"end_character":25},"updated":"2016-08-04 12:33:47.000000000","message":"0755 or 0700?","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"            \"source\": \"{{ container_config_directory }}/fernet-node-sync.sh\","},{"line_number":18,"context_line":"            \"dest\": \"/usr/bin/fernet-node-sync.sh\","},{"line_number":19,"context_line":"            \"owner\": \"root\","},{"line_number":20,"context_line":"            \"perm\": \"0744\""},{"line_number":21,"context_line":"        }"},{"line_number":22,"context_line":"    ]"},{"line_number":23,"context_line":"}"}],"source_content_type":"text/x-jinja2","patch_set":33,"id":"bacf61ea_2a9bc2ca","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":25},"updated":"2016-08-04 12:33:47.000000000","message":"dito","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"},{"author":{"_account_id":10419,"name":"Ryan Hallisey","email":"rhallise@redhat.com","username":"rhallisey"},"change_message_id":"f38b5a7c910d5ef0cc7f218d652c126d4b10551b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"            \"dest\": \"/usr/bin/fernet-node-sync.sh\","},{"line_number":19,"context_line":"            \"owner\": \"root\","},{"line_number":20,"context_line":"            \"perm\": \"0755\""},{"line_number":21,"context_line":"        }"},{"line_number":22,"context_line":"    ]"},{"line_number":23,"context_line":"}"}],"source_content_type":"text/x-jinja2","patch_set":42,"id":"3ac371cc_c26a2a1a","line":21,"updated":"2016-08-15 14:10:03.000000000","message":"The scripts are being copied into the /etc/kolla/keystone-fernet directory.  /etc/kolla/keystone-fernet is never being mounted into the container at {{ container_config_directory }} (/var/lib/kolla/config_files)","commit_id":"8bb4e6347ffe51d1142681c554d3102e883bfd22"}],"ansible/roles/keystone/templates/keystone-shh-json.j2":[{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"b99f958d1f2149ad00ff2683aa8a4c11581118f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bacf61ea_51000266","updated":"2016-08-02 00:37:16.000000000","message":"type: keystone-ssh-json","commit_id":"ccdc1e99bf5e542d324499fdbf6a00f7617db40c"}],"ansible/roles/keystone/templates/ssh_config.j2":[{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Host *"},{"line_number":2,"context_line":"  StrictHostKeyChecking no"},{"line_number":3,"context_line":"  UserKnownHostsFile /dev/null"},{"line_number":4,"context_line":"  port {{ keystone_ssh_port }}"}],"source_content_type":"text/x-jinja2","patch_set":39,"id":"9ad45d7e_62b193e1","line":1,"range":{"start_line":1,"start_character":5,"end_line":1,"end_character":6},"updated":"2016-08-09 13:54:05.000000000","message":"Does it makes sense to use a loop here to add a host entry for each keystone system? I do not like the use of wildcards in this file.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Host *"},{"line_number":2,"context_line":"  StrictHostKeyChecking no"},{"line_number":3,"context_line":"  UserKnownHostsFile /dev/null"},{"line_number":4,"context_line":"  port {{ keystone_ssh_port }}"}],"source_content_type":"text/x-jinja2","patch_set":39,"id":"9ad45d7e_e646004e","line":1,"range":{"start_line":1,"start_character":5,"end_line":1,"end_character":6},"in_reply_to":"9ad45d7e_62b193e1","updated":"2016-08-10 11:21:48.000000000","message":"From the man page for ssh_config it seems that being explicit on the host for the below settings would be a good idea if we are also ssh\u0027ing to hosts which we want to use a different port and verify known host public keys.\n\nThat\u0027s not an issue at the moment however it makes sense to future proof the config.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"}],"ansible/roles/keystone/templates/sshd_config.j2":[{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"bacf61ea_4a12760a","line":6,"updated":"2016-08-04 12:33:47.000000000","message":"I would prefer to use a more secure sshd configuration file.","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"2226372a4b016e7716d4eb771afdeef63775fc5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"9ad45d7e_42ebafb0","line":6,"updated":"2016-08-09 13:54:05.000000000","message":"I still think the sshd configuration should be improved, but this could be handled in a follow up patch in including other used sshd files.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"e4c7f6db09c538a5465f01ed0c30779b99def537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"9ad45d7e_46142c9f","line":6,"in_reply_to":"9ad45d7e_42ebafb0","updated":"2016-08-10 11:21:48.000000000","message":"I\u0027m happy to update the config. It would be ideal to do in a seperate patch as this config is the same as the nova-ssh.","commit_id":"6f481f8e2a129456547f333994273c85b715e58f"}],"docker/keystone/keystone-fernet/Dockerfile.j2":[{"author":{"_account_id":16620,"name":"Alicja Kwasniewska","email":"alicja.kwasniewska@intel.com","username":"akwasnie"},"change_message_id":"962a7f807f03a6101387dbd426f245ecb55ba5e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bacf61ea_033e68c0","line":22,"updated":"2016-08-01 11:17:59.000000000","message":"We dropped root privileges in one of the bp in mitaka, so can you please use user keystone? Like for example here https://github.com/openstack/kolla/blob/master/docker/cinder/cinder-api/Dockerfile.j2#L25","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"FROM {{ namespace }}/{{ image_prefix }}keystone-base:{{ tag }}"},{"line_number":2,"context_line":"MAINTAINER {{ maintainer }}"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{% if base_distro in [\u0027fedora\u0027, \u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_2e123359","line":1,"updated":"2016-08-02 12:42:50.000000000","message":"ignore previous comments about docker file links.  We have a experimental policy of merging docker containers separately from their ansible counterparties.  Can you split the docker files into separate commits?\n\nThe reason is backports - although this work wont be backported because it would violate stable:follows-policy - I think its helpful for the CR team to paint this with a broad brush.  We are considering splitting the repos for docker files and ansible code in the next cycle (after m3 branches).\n\nThe experimental policy is just to see how well this works out in reality before we make an irreversible change.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% if base_distro in [\u0027fedora\u0027, \u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":6,"context_line":"\t{% set keystone_fernet_packages \u003d [\u0027cronie\u0027] %}"},{"line_number":7,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":8,"context_line":"\t{% set keystone_fernet_packages \u003d [\u0027cron\u0027] %}"},{"line_number":9,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_a21f195a","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"{% if base_distro in [\u0027fedora\u0027, \u0027centos\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":6,"context_line":"\t{% set keystone_fernet_packages \u003d [\u0027cronie\u0027] %}"},{"line_number":7,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":8,"context_line":"\t{% set keystone_fernet_packages \u003d [\u0027cron\u0027] %}"},{"line_number":9,"context_line":"{% endif %}"},{"line_number":10,"context_line":"RUN {{ macros.install_packages(keystone_fernet_packages | customizable(\"packages\")) }}"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_822495af","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"}],"docker/keystone/keystone-ssh/Dockerfile.j2":[{"author":{"_account_id":16620,"name":"Alicja Kwasniewska","email":"alicja.kwasniewska@intel.com","username":"akwasnie"},"change_message_id":"962a7f807f03a6101387dbd426f245ecb55ba5e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bacf61ea_036ca8cc","line":24,"updated":"2016-08-01 11:17:59.000000000","message":"the same here","commit_id":"0cbfb729715c597de858a070c557f225bcff2430"},{"author":{"_account_id":10419,"name":"Ryan Hallisey","email":"rhallise@redhat.com","username":"rhallisey"},"change_message_id":"0c8f9be08c863774e7b01df79389e6e66e4d21f1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027fedora\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"RUN yum -y install \\"},{"line_number":7,"context_line":"        openssh-server \\"},{"line_number":8,"context_line":"    \u0026\u0026 yum clean all"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_8b3a3197","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":22},"updated":"2016-08-02 12:30:14.000000000","message":"Can you include the new jinja2 model for you dockerfile.  Kolla is changing to a more templated Dockerfile to allow for customizations. \n\nFor example:\nhttps://github.com/openstack/kolla/blob/master/docker/heat/heat-api/Dockerfile.j2#L7","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027fedora\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"RUN yum -y install \\"},{"line_number":7,"context_line":"        openssh-server \\"},{"line_number":8,"context_line":"    \u0026\u0026 yum clean all"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"}],"source_content_type":"text/x-jinja2","patch_set":15,"id":"bacf61ea_2e719378","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":22},"in_reply_to":"bacf61ea_8b3a3197","updated":"2016-08-02 12:42:50.000000000","message":"note if you dont wan tto do that in this patch, please change this to \"Partially-Implements so we know the work isn\u0027t complete.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027fedora\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":6,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":7,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":8,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_624c0177","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16482,"name":"Shaun Smekel","email":"shaun.smekel@theorem.net.au","username":"smekel"},"change_message_id":"ef2dff3caf2571e508bebab051d435defffc81d1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"{% import \"macros.j2\" as macros with context %}"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027fedora\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":6,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":7,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":8,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":9,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_d9395fa5","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":1},"in_reply_to":"bacf61ea_624c0177","updated":"2016-08-03 13:08:46.000000000","message":"I don\u0027t believe tabs should be removed here. There is consistent examples of this implementation being done this way.","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"{% if base_distro in [\u0027centos\u0027, \u0027fedora\u0027, \u0027oraclelinux\u0027, \u0027rhel\u0027] %}"},{"line_number":6,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":7,"context_line":"{% elif base_distro in [\u0027ubuntu\u0027, \u0027debian\u0027] %}"},{"line_number":8,"context_line":"\t{% set keystone_ssh_packages \u003d [\u0027openssh-server\u0027] %}"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"RUN mkdir -p /var/run/sshd \\"},{"line_number":11,"context_line":"    \u0026\u0026 chmod 0755 /var/run/sshd"}],"source_content_type":"text/x-jinja2","patch_set":21,"id":"bacf61ea_4251fd0d","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"updated":"2016-08-03 12:01:36.000000000","message":"remove tab","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"}],"docker/keystone/keystone-ssh/extend_start.sh":[{"author":{"_account_id":10419,"name":"Ryan Hallisey","email":"rhallise@redhat.com","username":"rhallisey"},"change_message_id":"0c8f9be08c863774e7b01df79389e6e66e4d21f1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"mkdir -p /var/lib/keystone/.ssh"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if [[ $(stat -c %U:%G /var/lib/keystone/.ssh) !\u003d \"keystone:keystone\" ]]; then"},{"line_number":19,"context_line":"    chown keystone: /var/lib/keystone/.ssh"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":15,"id":"bacf61ea_cb5b89f5","line":19,"range":{"start_line":19,"start_character":4,"end_line":19,"end_character":10},"updated":"2016-08-02 12:30:14.000000000","message":"you don\u0027t need a sudo here?","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":11869,"name":"zhubingbing","email":"zhu.bingbing@99cloud.net","username":"zhubingbing"},"change_message_id":"f180159d5f84f76f809e21eaf116ee23ec19b2c0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"mkdir -p /var/lib/keystone/.ssh"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if [[ $(stat -c %U:%G /var/lib/keystone/.ssh) !\u003d \"keystone:keystone\" ]]; then"},{"line_number":19,"context_line":"    chown keystone: /var/lib/keystone/.ssh"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":15,"id":"bacf61ea_9761aeab","line":19,"range":{"start_line":19,"start_character":4,"end_line":19,"end_character":10},"in_reply_to":"bacf61ea_0ee3ef06","updated":"2016-08-02 13:22:50.000000000","message":"Done","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"mkdir -p /var/lib/keystone/.ssh"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"if [[ $(stat -c %U:%G /var/lib/keystone/.ssh) !\u003d \"keystone:keystone\" ]]; then"},{"line_number":19,"context_line":"    chown keystone: /var/lib/keystone/.ssh"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":15,"id":"bacf61ea_0ee3ef06","line":19,"range":{"start_line":19,"start_character":4,"end_line":19,"end_character":10},"in_reply_to":"bacf61ea_cb5b89f5","updated":"2016-08-02 12:42:50.000000000","message":"I am pretty sure a sudo will be needed here, and in that case you will need a sudoers file.  Check other docker files out for formatting.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"etc/kolla/globals.yml":[{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"#nova_console: \"novnc\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"# Valid options are [ uuid, fernet ]"},{"line_number":109,"context_line":"#keystone_token_provider: \u0027uuid\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"# OpenStack services can be enabled or disabled with these options"},{"line_number":112,"context_line":"#enable_ceilometer: \"no\""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_ae862314","line":109,"updated":"2016-08-02 12:42:50.000000000","message":"ignore previous comment on uuid - i hadn\u0027t read full patch when I made that comment.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"e51a51e4b3ab68c07801a8ece096b06ffe9f00c5","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"# Valid options are [ uuid, fernet ]"},{"line_number":109,"context_line":"#keystone_token_provider: \u0027uuid\u0027"},{"line_number":110,"context_line":"# Interval to rotate fernet keys by (in seconds). Must be an interval of "},{"line_number":111,"context_line":"# hour(3600), day(86400), week(604800)."},{"line_number":112,"context_line":"#fernet_token_expiry: 86400"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":21,"id":"bacf61ea_825bf52d","line":110,"range":{"start_line":110,"start_character":72,"end_line":110,"end_character":73},"updated":"2016-08-03 12:01:36.000000000","message":"remove whitespace","commit_id":"efc92f3cd5b8cea8c85748ec969c63aa395f0f72"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"e281b5dd4b2d3be8919d015e2799407e1072ba4d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"# Interval to rotate fernet keys by (in seconds). Must be an interval of"},{"line_number":111,"context_line":"# 60(1 min), 120(2 min), 180(3 min), 240(4 min), 300(5 min), 360(6 min),"},{"line_number":112,"context_line":"# 600(10 min), 720(12 min), 900(15 min), 1200(20 min), 1800(30 min),"},{"line_number":113,"context_line":"# 3600(1 hour), 7200(2 hour), 10800(3 hour), 14400(4 hour), 21600(6 hour), "},{"line_number":114,"context_line":"# 28800(8 hour), 43200(12 hour), 86400(1 day), 604800(1 week)."},{"line_number":115,"context_line":"#fernet_token_expiry: 86400"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":33,"id":"bacf61ea_8af46ecf","line":113,"range":{"start_line":113,"start_character":74,"end_line":113,"end_character":75},"updated":"2016-08-04 12:33:47.000000000","message":"trailing space","commit_id":"61f515a4c3df3fc5de8daca379398a1aadc53d64"}],"etc/kolla/passwords.yml":[{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"keystone_ssh_key:"},{"line_number":78,"context_line":"  private_key:"},{"line_number":79,"context_line":"  public_key:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"####################"},{"line_number":82,"context_line":"# RabbitMQ options"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"bacf61ea_6e754b31","line":79,"updated":"2016-08-02 12:42:50.000000000","message":"I think genpwd will need some work here too.","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}],"kolla/cmd/genpwd.py":[{"author":{"_account_id":2834,"name":"Steven Dake","email":"steven.dake@gmail.com","username":"sdake"},"change_message_id":"488f3baac66850ce775e16373c220333ed6073d6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    uuid_keys \u003d [\u0027ceph_cluster_fsid\u0027, \u0027rbd_secret_uuid\u0027]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    # SSH key pair"},{"line_number":46,"context_line":"    ssh_keys \u003d [\u0027nova_ssh_key\u0027, \u0027keystone_ssh_key\u0027]"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # If these keys are None, leave them as None"},{"line_number":49,"context_line":"    blank_keys \u003d [\u0027docker_registry_password\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"bacf61ea_ee977b38","line":46,"updated":"2016-08-02 12:42:50.000000000","message":"ignore last comment on genpwd. :)","commit_id":"2d38c0bd7dad6cd931af4f33a5d05d97f1c9b25d"}]}
