)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":10,"context_line":"To enable this, a new `default_secret_key` parameter will be added"},{"line_number":11,"context_line":"under `[vim_keys]` in `tacker.conf`."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Administrators will generate a default Fernet key file in advance"},{"line_number":14,"context_line":"(e.g., `default.key`), place it in the existing `openstack` directory"},{"line_number":15,"context_line":"(default: `/etc/tacker/vim/fernet_keys`) on each Tacker node, and"},{"line_number":16,"context_line":"specify the filename using the `default_secret_key` option."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Implements: blueprint vim-key-for-multi-master"},{"line_number":19,"context_line":"Change-Id: Id3c736ef27eb51bca2d4a136eda4af121bce9391"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1dceb3c5_73beb5cf","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":59},"updated":"2025-09-12 09:24:53.000000000","message":"Why don\u0027t you add this sentence before your update on manual_installation.rst because it\u0027s good instruction for users?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"To enable this, a new `default_secret_key` parameter will be added"},{"line_number":11,"context_line":"under `[vim_keys]` in `tacker.conf`."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Administrators will generate a default Fernet key file in advance"},{"line_number":14,"context_line":"(e.g., `default.key`), place it in the existing `openstack` directory"},{"line_number":15,"context_line":"(default: `/etc/tacker/vim/fernet_keys`) on each Tacker node, and"},{"line_number":16,"context_line":"specify the filename using the `default_secret_key` option."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Implements: blueprint vim-key-for-multi-master"},{"line_number":19,"context_line":"Change-Id: Id3c736ef27eb51bca2d4a136eda4af121bce9391"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"a21dba96_c3a6c1ab","line":16,"range":{"start_line":13,"start_character":0,"end_line":16,"end_character":59},"in_reply_to":"1dceb3c5_73beb5cf","updated":"2025-09-12 12:18:33.000000000","message":"Acknowledged","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"e696b5f0ea703655e49d0943353aa5fbac376a99","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7164b257_ee48e298","updated":"2025-09-12 05:45:31.000000000","message":"@yasufum.o@gmail.com , test passed. Could you please review?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6dcee41e_ead15657","updated":"2025-09-12 09:24:53.000000000","message":"Thank you for your contribution. Please find my comments.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"3efa56a6bcf6183d5247b47d4762d6d4aa98beb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"12a5f2e5_908b861d","in_reply_to":"6dcee41e_ead15657","updated":"2025-09-12 09:49:55.000000000","message":"Thank you for your comment. I\u0027m checking them.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"82300dbe_ca214372","updated":"2025-09-12 12:18:33.000000000","message":"Fixed some processing.","commit_id":"28fb03ed713fbd3a4504fd4116300b88969dbd82"}],"doc/source/install/manual_installation.rst":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":363,"context_line":"     $ cp etc/tacker/prometheus-plugin.yaml /etc/tacker/"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"#. Configure a common VIM Fernet key on multi-node (Optional)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"   Use this when you want all Tacker nodes to share a single Fernet key"},{"line_number":368,"context_line":"   for encrypting VIM credentials. Skip this if you use Barbican"},{"line_number":369,"context_line":"   (``[vim_keys] use_barbican \u003d true``)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"894954f9_46086347","line":366,"updated":"2025-09-12 09:24:53.000000000","message":"Why don\u0027t you add the instruction in the commit message?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":false,"context_lines":[{"line_number":363,"context_line":"     $ cp etc/tacker/prometheus-plugin.yaml /etc/tacker/"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"#. Configure a common VIM Fernet key on multi-node (Optional)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"   Use this when you want all Tacker nodes to share a single Fernet key"},{"line_number":368,"context_line":"   for encrypting VIM credentials. Skip this if you use Barbican"},{"line_number":369,"context_line":"   (``[vim_keys] use_barbican \u003d true``)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"be8e921d_b693bebd","line":366,"in_reply_to":"894954f9_46086347","updated":"2025-09-12 12:18:33.000000000","message":"Acknowledged","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}],"tacker/db/migration/cli.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def generate_secret_key(config, cmd):"},{"line_number":128,"context_line":"    output_file \u003d CONF.command.file"},{"line_number":129,"context_line":"    with open(output_file, \u0027wb\u0027) as f:"},{"line_number":130,"context_line":"        f.write(fernet.Fernet.generate_key())"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def add_command_parsers(subparsers):"}],"source_content_type":"text/x-python","patch_set":8,"id":"79e89f91_e9b51312","line":130,"range":{"start_line":129,"start_character":4,"end_line":130,"end_character":45},"updated":"2025-09-12 09:24:53.000000000","message":"Is there no need to check if the output_file already exists and overwritten unexpectedly?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"def generate_secret_key(config, cmd):"},{"line_number":128,"context_line":"    output_file \u003d CONF.command.file"},{"line_number":129,"context_line":"    with open(output_file, \u0027wb\u0027) as f:"},{"line_number":130,"context_line":"        f.write(fernet.Fernet.generate_key())"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def add_command_parsers(subparsers):"}],"source_content_type":"text/x-python","patch_set":8,"id":"b9b4821a_c434b9dc","line":130,"range":{"start_line":129,"start_character":4,"end_line":130,"end_character":45},"in_reply_to":"79e89f91_e9b51312","updated":"2025-09-12 12:18:33.000000000","message":"Agreed. Since this is only a helper tool, I just added a warning when the file is overwritten.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}],"tacker/nfvo/drivers/vim/openstack_driver.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":209,"context_line":"                raise"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            key_file \u003d os.path.join(CONF.vim_keys.openstack, vim_id)"},{"line_number":212,"context_line":"            if (CONF.vim_keys.default_secret_key !\u003d \u0027\u0027 and"},{"line_number":213,"context_line":"               not os.path.exists(key_file)):"},{"line_number":214,"context_line":"                return"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                os.remove(key_file)"},{"line_number":217,"context_line":"                LOG.debug(\u0027VIM key deleted successfully for vim %s\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7893754f_acd27b7a","line":214,"range":{"start_line":212,"start_character":12,"end_line":214,"end_character":22},"updated":"2025-09-12 09:24:53.000000000","message":"Why don\u0027t you log since it\u0027s an unexpected situation? LOG.debug is enough if it cannot be a fatal error.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":true,"context_lines":[{"line_number":209,"context_line":"                raise"},{"line_number":210,"context_line":"        else:"},{"line_number":211,"context_line":"            key_file \u003d os.path.join(CONF.vim_keys.openstack, vim_id)"},{"line_number":212,"context_line":"            if (CONF.vim_keys.default_secret_key !\u003d \u0027\u0027 and"},{"line_number":213,"context_line":"               not os.path.exists(key_file)):"},{"line_number":214,"context_line":"                return"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                os.remove(key_file)"},{"line_number":217,"context_line":"                LOG.debug(\u0027VIM key deleted successfully for vim %s\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"6486c870_c939d96d","line":214,"range":{"start_line":212,"start_character":12,"end_line":214,"end_character":22},"in_reply_to":"7893754f_acd27b7a","updated":"2025-09-12 12:18:33.000000000","message":"No, this is not unexpected.\n``os.path.exists(key_file)`` holds the path to the **per-vim_id key**.\nWhen using the default key, the condition below is normal behavior:\n\n- CONF.vim_keys.default_secret_key !\u003d \u0027\u0027\n -\u003e default key is enabled\n\n- not os.path.exists(key_file)\n -\u003e no per-vim_id key exists\n\nThis happens when the default key is in use.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":234,"context_line":"            with open(key_file, \u0027rb\u0027) as f:"},{"line_number":235,"context_line":"                fernet_key \u003d f.read()"},{"line_number":236,"context_line":"                fernet_obj \u003d self.keystone.create_fernet_object(fernet_key)"},{"line_number":237,"context_line":"            LOG.debug(\u0027Default key loaded successfully\u0027)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        encoded_auth \u003d fernet_obj.encrypt(auth[\u0027password\u0027].encode(\u0027utf-8\u0027))"},{"line_number":240,"context_line":"        auth[\u0027password\u0027] \u003d encoded_auth"}],"source_content_type":"text/x-python","patch_set":8,"id":"d4b65a37_0df7850e","line":237,"updated":"2025-09-12 09:24:53.000000000","message":"\"Default secret key updated successfully\" is better for considering your comment above.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"20392e7f0a28b1b6fd985b06131c5786d96a0b5b","unresolved":true,"context_lines":[{"line_number":234,"context_line":"            with open(key_file, \u0027rb\u0027) as f:"},{"line_number":235,"context_line":"                fernet_key \u003d f.read()"},{"line_number":236,"context_line":"                fernet_obj \u003d self.keystone.create_fernet_object(fernet_key)"},{"line_number":237,"context_line":"            LOG.debug(\u0027Default key loaded successfully\u0027)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        encoded_auth \u003d fernet_obj.encrypt(auth[\u0027password\u0027].encode(\u0027utf-8\u0027))"},{"line_number":240,"context_line":"        auth[\u0027password\u0027] \u003d encoded_auth"}],"source_content_type":"text/x-python","patch_set":8,"id":"98173c85_2d2b2cde","line":237,"in_reply_to":"d4b65a37_0df7850e","updated":"2025-09-12 14:56:06.000000000","message":"This process does not \"update the default key\", but rather \"updates (overwrites) the normal per-vim_id key to the default key\".\n\nThe code was difficult to read, so I rewrote it.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                              vim_id)"},{"line_number":270,"context_line":"            except IOError:"},{"line_number":271,"context_line":"                raise nfvo.VimKeyNotFoundException(vim_id\u003dvim_id)"},{"line_number":272,"context_line":"        else:"},{"line_number":273,"context_line":"            LOG.debug(\u0027Use default secret key\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @log.log"},{"line_number":276,"context_line":"    def get_vim_resource_id(self, vim_obj, resource_type, resource_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"acf98f14_3ca77f2c","line":273,"range":{"start_line":272,"start_character":8,"end_line":273,"end_character":47},"updated":"2025-09-12 09:24:53.000000000","message":"It looks useless. Any reason to log this message?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"20392e7f0a28b1b6fd985b06131c5786d96a0b5b","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                              vim_id)"},{"line_number":270,"context_line":"            except IOError:"},{"line_number":271,"context_line":"                raise nfvo.VimKeyNotFoundException(vim_id\u003dvim_id)"},{"line_number":272,"context_line":"        else:"},{"line_number":273,"context_line":"            LOG.debug(\u0027Use default secret key\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    @log.log"},{"line_number":276,"context_line":"    def get_vim_resource_id(self, vim_obj, resource_type, resource_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"98a75655_d53feb70","line":273,"range":{"start_line":272,"start_character":8,"end_line":273,"end_character":47},"in_reply_to":"acf98f14_3ca77f2c","updated":"2025-09-12 14:56:06.000000000","message":"Yes,agree. I\u0027ve rewritten that part.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}],"tacker/vnfm/keystone.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        return fernet_key, fernet_obj"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def create_fernet_object(self, fernet_key):"},{"line_number":83,"context_line":"        return fernet.Fernet(fernet_key)"}],"source_content_type":"text/x-python","patch_set":8,"id":"46716036_fe15b53c","line":83,"updated":"2025-09-12 09:24:53.000000000","message":"I don\u0027t understand why this change is required. Any reason?","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"20392e7f0a28b1b6fd985b06131c5786d96a0b5b","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        return fernet_key, fernet_obj"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def create_fernet_object(self, fernet_key):"},{"line_number":83,"context_line":"        return fernet.Fernet(fernet_key)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1bead9bf_4d3cc8f7","line":83,"in_reply_to":"46716036_fe15b53c","updated":"2025-09-12 14:56:06.000000000","message":"Because, there was no function to create a \"fernet_object\" by any key (in this case, default_key).\nPreviously, a fernet_key was created per vim_id, so there was only create_fernet_object() which created both the key and the object at the same time.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}],"tacker/vnfm/vim_client.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"98c37b5096ff7e7bc1f45b120675178d5be132b4","unresolved":true,"context_lines":[{"line_number":139,"context_line":"    @staticmethod"},{"line_number":140,"context_line":"    def _find_vim_key(vim_id):"},{"line_number":141,"context_line":"        key_file \u003d os.path.join(CONF.vim_keys.openstack, vim_id)"},{"line_number":142,"context_line":"        if not os.path.exists(key_file):"},{"line_number":143,"context_line":"            key_file \u003d os.path.join(CONF.vim_keys.openstack,"},{"line_number":144,"context_line":"                                    CONF.vim_keys.default_secret_key)"},{"line_number":145,"context_line":"            LOG.debug(\u0027Attempting to open default key file\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"96bff6c3_ffaf3580","line":142,"range":{"start_line":142,"start_character":15,"end_line":142,"end_character":29},"updated":"2025-09-12 09:24:53.000000000","message":"nit: It\u0027s to use os.path.isfile() to ensure it\u0027s exactly a file.","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"},{"author":{"_account_id":37108,"name":"Hitomi Koba","email":"hi-koba@kddi.com","username":"hitomikoba"},"change_message_id":"af448f413d1faf72d3fbbf0bc1e7b479d5c52a7c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    @staticmethod"},{"line_number":140,"context_line":"    def _find_vim_key(vim_id):"},{"line_number":141,"context_line":"        key_file \u003d os.path.join(CONF.vim_keys.openstack, vim_id)"},{"line_number":142,"context_line":"        if not os.path.exists(key_file):"},{"line_number":143,"context_line":"            key_file \u003d os.path.join(CONF.vim_keys.openstack,"},{"line_number":144,"context_line":"                                    CONF.vim_keys.default_secret_key)"},{"line_number":145,"context_line":"            LOG.debug(\u0027Attempting to open default key file\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"8d07366a_c6570a5a","line":142,"range":{"start_line":142,"start_character":15,"end_line":142,"end_character":29},"in_reply_to":"96bff6c3_ffaf3580","updated":"2025-09-12 12:18:33.000000000","message":"Acknowledged","commit_id":"9bfc7f482c037547441022c67e6c74dc63c7d0f7"}]}
