)]}'
{"doc/releasenotes/notes/env-neutron-changes-38346efc0b7d6eb0.yaml":[{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b65136eae3f052d20929b6f19c14a0787219f80","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - aodh.yml and haproxy.yml will be copied into /etc/openstack_deploy/env.d."},{"line_number":4,"context_line":"    LBaaS agent information will be added to"},{"line_number":5,"context_line":"    ``/etc/openstack_deploy/env.d/neutron.yml``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7af24918_d62b1a2f","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":7},"updated":"2016-03-01 23:03:54.000000000","message":"nit - why is the only inline literal formatting? I\u0027d argue all the file names and directories should be or none. I\u0027d prefer to see the former.","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"},{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"b1635e06bb861decce605e3cd31fae5015529033","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - aodh.yml and haproxy.yml will be copied into /etc/openstack_deploy/env.d."},{"line_number":4,"context_line":"    LBaaS agent information will be added to"},{"line_number":5,"context_line":"    ``/etc/openstack_deploy/env.d/neutron.yml``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7af24918_33eb57b2","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":7},"in_reply_to":"7af24918_d62b1a2f","updated":"2016-03-02 09:21:56.000000000","message":"Fair nit.","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"}],"doc/source/upgrade-guide/scripts.rst":[{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"9c4ecc3a98836e3e09f55c1f7532802525a77f4e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. Added in Liberty were the"},{"line_number":30,"context_line":"keys for LBaaS agents."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This script will also creates ``/etc/openstack_deploy.KILO/NEUTRON_MIGRATED``"},{"line_number":33,"context_line":"to indicate to ansible that the step can be skipped on successive runs. The"},{"line_number":34,"context_line":"script itself does not check for this file, however."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_6ef870e6","line":32,"updated":"2016-03-01 21:59:10.000000000","message":"create","commit_id":"4e1d14a1af32cdc2e4ce0f803e43a95f7db8c65c"},{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"9c4ecc3a98836e3e09f55c1f7532802525a77f4e","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This script will also creates ``/etc/openstack_deploy.KILO/NEUTRON_MIGRATED``"},{"line_number":33,"context_line":"to indicate to ansible that the step can be skipped on successive runs. The"},{"line_number":34,"context_line":"script itself does not check for this file, however."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Called by :ref:`config-change-playbook`"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_2ed5c842","line":34,"updated":"2016-03-01 21:59:10.000000000","message":"Probably don\u0027t need the \u0027however\u0027.","commit_id":"4e1d14a1af32cdc2e4ce0f803e43a95f7db8c65c"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b65136eae3f052d20929b6f19c14a0787219f80","unresolved":false,"context_lines":[{"line_number":24,"context_line":"add_new_neutron_env.py"},{"line_number":25,"context_line":"----------------------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This file will take any new items within the"},{"line_number":28,"context_line":"``etc/openstack_deploy/env.d/neutron.yml`` file and adds them to the deployed"},{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. Added in Liberty were the"},{"line_number":30,"context_line":"keys for LBaaS agents."}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_b6bacedf","line":27,"range":{"start_line":27,"start_character":5,"end_line":27,"end_character":9},"updated":"2016-03-01 23:03:54.000000000","message":"script instead of file","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b65136eae3f052d20929b6f19c14a0787219f80","unresolved":false,"context_lines":[{"line_number":25,"context_line":"----------------------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This file will take any new items within the"},{"line_number":28,"context_line":"``etc/openstack_deploy/env.d/neutron.yml`` file and adds them to the deployed"},{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. Added in Liberty were the"},{"line_number":30,"context_line":"keys for LBaaS agents."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_b6d3ee37","line":28,"range":{"start_line":28,"start_character":55,"end_line":28,"end_character":56},"updated":"2016-03-01 23:03:54.000000000","message":"Nit - no need to pluralize","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b65136eae3f052d20929b6f19c14a0787219f80","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This file will take any new items within the"},{"line_number":28,"context_line":"``etc/openstack_deploy/env.d/neutron.yml`` file and adds them to the deployed"},{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. Added in Liberty were the"},{"line_number":30,"context_line":"keys for LBaaS agents."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This script will also create ``/etc/openstack_deploy.KILO/NEUTRON_MIGRATED``"},{"line_number":33,"context_line":"to indicate to ansible that the step can be skipped on successive runs. The"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_d6e2fa02","line":30,"range":{"start_line":29,"start_character":50,"end_line":30,"end_character":22},"updated":"2016-03-01 23:03:54.000000000","message":"\"The key for LBaaS agents were added in Liberty.\"","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"},{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b7f9d1c60fe90b4aeb8ec5e679d8ed4a951ee4a","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This script will take any new items within the"},{"line_number":28,"context_line":"``etc/openstack_deploy/env.d/neutron.yml`` file and add them to the deployed"},{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. The key for LBaaS agents were"},{"line_number":30,"context_line":"added in Liberty"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This script will also create ``/etc/openstack_deploy.KILO/NEUTRON_MIGRATED``"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_97395744","line":29,"updated":"2016-03-02 16:35:42.000000000","message":"This should not have become singular. Apologies for my previous comment which inadvertently suggested this change to singular.","commit_id":"9a65cceabe6562760afa556c9f4b5246d47f0478"},{"author":{"_account_id":12892,"name":"Nolan Brubaker","email":"nolan.brubaker@rackspace.com","username":"nrb"},"change_message_id":"775cb3619b979dc4bfb426d90f5906d3dc4e606d","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This script will take any new items within the"},{"line_number":28,"context_line":"``etc/openstack_deploy/env.d/neutron.yml`` file and add them to the deployed"},{"line_number":29,"context_line":"``/etc/openstack_deploy/env.d/neutron.yml`` file. The key for LBaaS agents were"},{"line_number":30,"context_line":"added in Liberty"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This script will also create ``/etc/openstack_deploy.KILO/NEUTRON_MIGRATED``"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_4608bb2c","line":29,"in_reply_to":"7af24918_97395744","updated":"2016-03-02 17:22:50.000000000","message":"Taken in whole, it reads fine to me as \u0027add\u0027 in the current form. I can change it back to \u0027adds\u0027 if others prefer though.","commit_id":"9a65cceabe6562760afa556c9f4b5246d47f0478"}],"doc/source/upgrade-guide/upgrade-playbooks.rst":[{"author":{"_account_id":19814,"name":"Travis Truman (automagically)","email":"travis_truman@cable.comcast.com","username":"trumant"},"change_message_id":"6b65136eae3f052d20929b6f19c14a0787219f80","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    * ``aodh.yml`` and ``haproxy.yml`` will be copied from the source tree into"},{"line_number":27,"context_line":"        ``/etc/openstack_deploy/env.d``."},{"line_number":28,"context_line":"    * ``/etc/openstack_deploy/env.d/neutron.yml`` will have LBaaS group "},{"line_number":29,"context_line":"      memberships added. See :ref:`neutron-env-script` for details."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_16cc6288","line":28,"range":{"start_line":28,"start_character":71,"end_line":28,"end_character":72},"updated":"2016-03-01 23:03:54.000000000","message":"nit - trailing whitespace","commit_id":"ec75415f410cf418b89e8cb335f712a780cdda93"}],"scripts/upgrade-utilities/scripts/add_new_neutron_env.py":[{"author":{"_account_id":18784,"name":"Michael Carden","email":"mike.carden@gmail.com","username":"mcarden"},"change_message_id":"9c4ecc3a98836e3e09f55c1f7532802525a77f4e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                               width\u003d1000))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    with open(flag_file, \u0027w\u0027) as f:"},{"line_number":69,"context_line":"        f.write(\u0027Neutrn variables migrated from kilo to liberty.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7af24918_ce20a44c","line":69,"updated":"2016-03-01 21:59:10.000000000","message":"Neutron","commit_id":"4e1d14a1af32cdc2e4ce0f803e43a95f7db8c65c"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"e78d22de9acdc66c32a57ea5712aba9b046423f9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import yaml"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def add_new_dict_data(original, new):"},{"line_number":20,"context_line":"    \"\"\""},{"line_number":21,"context_line":"    Adds new key/value entries to existing dictionaries, and appends"},{"line_number":22,"context_line":"    new leaf values."}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_0bb6bb3c","line":19,"updated":"2016-03-02 17:39:24.000000000","message":"This function appears to work as intended. I think the code could be clearer and would suggest the following:\n\ndef add_new_dict_data(original, new):\n    \"\"\"\n    Adds new key/value entries to existing dictionaries, and appends\n    new leaf values.\n\n    Assumptions:\n      - values in original and new are of the same type\n      - lists contain immutable values\n    \"\"\"\n    for key, new_values in new.items():\n\n        if key not in original:\n            original[key] \u003d new_values\n        elif isinstance(new_values, dict):\n            add_new_dict_data(original[key], new[key])\n        elif isinstance(new_values, list):\n            # Only populate missing values\n            for val in new_values:\n                if val not in original[key]:\n                    original[key].append(val)\n\nHowever I will not -1 the patch if left as is because this script has a short lifetime.","commit_id":"95a7451d557dd8ff6be9da345e5f7171c1ba0d6c"}]}
