)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"46d7e0a00d02214a0ff748f08b9d06e9f3249227","unresolved":false,"context_lines":[{"line_number":10,"context_line":"file injection to inject /root/.ssh/authorized_keys.  If a user"},{"line_number":11,"context_line":"specifies their own /root/.ssh/authorized_keys via \u0027injected files\u0027,"},{"line_number":12,"context_line":"that will take precedence."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Fixes bug 1152713"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I190c6b3f67099061b5316baa45b8bfcd1a5e53f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAN3%2F%2FyEc%3D","line":13,"updated":"2013-03-12 18:26:23.000000000","message":"Add a docimpact per other reviewers please.","commit_id":"dfc3d10073ed1c956bb6591c4386a34807478075"}],"nova/tests/test_xenapi.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"46d7e0a00d02214a0ff748f08b9d06e9f3249227","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                      \u0027os_type\u0027: os_type,"},{"line_number":646,"context_line":"                      \u0027hostname\u0027: hostname,"},{"line_number":647,"context_line":"                      \u0027key_data\u0027: key_data,"},{"line_number":648,"context_line":"                      \u0027architecture\u0027: architecture}"},{"line_number":649,"context_line":"            instance \u003d create_instance_with_system_metadata(self.context,"},{"line_number":650,"context_line":"                                                            instance_values)"},{"line_number":651,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FyEQ%3D","line":648,"updated":"2013-03-12 18:26:23.000000000","message":"If I ask nice will you indent this entire block so it lines up with the first line?","commit_id":"dfc3d10073ed1c956bb6591c4386a34807478075"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"031059fa1431b07726800af210cc7be53b7d20fe","unresolved":false,"context_lines":[{"line_number":904,"context_line":"        self.stubs.Set(stubs.FakeSessionForVMTests,"},{"line_number":905,"context_line":"                       \u0027_plugin_agent_inject_file\u0027, fake_inject_file)"},{"line_number":906,"context_line":"        self.stubs.Set(agent.XenAPIBasedAgent,"},{"line_number":907,"context_line":"                \u0027set_admin_password\u0027, noop)"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        expected_data \u003d (\u0027\\n# The following ssh key was injected by \u0027"},{"line_number":910,"context_line":"                         \u0027Nova\\nfake_keydata\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FwSU%3D","line":907,"updated":"2013-03-13 18:36:37.000000000","message":"Can you please fix this indent?","commit_id":"de8c09c62b87fbc92e6becc807fc503b9aba34c5"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"25018020a308adcac3ec325a2599e7018f3104cb","unresolved":false,"context_lines":[{"line_number":904,"context_line":"        self.stubs.Set(stubs.FakeSessionForVMTests,"},{"line_number":905,"context_line":"                       \u0027_plugin_agent_inject_file\u0027, fake_inject_file)"},{"line_number":906,"context_line":"        self.stubs.Set(agent.XenAPIBasedAgent,"},{"line_number":907,"context_line":"                \u0027set_admin_password\u0027, noop)"},{"line_number":908,"context_line":""},{"line_number":909,"context_line":"        expected_data \u003d (\u0027\\n# The following ssh key was injected by \u0027"},{"line_number":910,"context_line":"                         \u0027Nova\\nfake_keydata\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FwRk%3D","line":907,"in_reply_to":"AAAAN3%2F%2FwSU%3D","updated":"2013-03-13 18:43:47.000000000","message":"done","commit_id":"de8c09c62b87fbc92e6becc807fc503b9aba34c5"}],"nova/virt/xenapi/agent.py":[{"author":{"_account_id":4419,"name":"Matthew Sherborne","email":"msherborne+openstack@gmail.com","username":"msherborne+openstack"},"change_message_id":"3b64aa118a4a1754b4758ecc7efe0366059a9b36","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            sshkey.strip(),"},{"line_number":242,"context_line":"            \u0027\\n\u0027,"},{"line_number":243,"context_line":"        ])"},{"line_number":244,"context_line":"        return self.inject_file(keyfile, key_data)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    def inject_file(self, path, contents):"},{"line_number":247,"context_line":"        LOG.debug(_(\u0027Injecting file path: %r\u0027), path, instance\u003dself.instance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2Fx2Q%3D","line":244,"updated":"2013-03-12 20:21:59.000000000","message":"I\u0027d like to see:\n\ntry:\n    return self.inject_file(keyfile, key_data)\nexcept (NotImplementedError, PluginError) as e:\n    LOG.warning(_(\"Unable to inject ssh key, continuing with build\"))\n\nAnd some way to notify the user.","commit_id":"46d7f64c695f59dbbbf0037ad9b895c8ec5e56ab"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"46d7e0a00d02214a0ff748f08b9d06e9f3249227","unresolved":false,"context_lines":[{"line_number":585,"context_line":"            vm_utils.generate_configdrive(self._session, instance, vm_ref,"},{"line_number":586,"context_line":"                                          DEVICE_CONFIGDRIVE,"},{"line_number":587,"context_line":"                                          admin_password\u003dadmin_password,"},{"line_number":588,"context_line":"                                          files\u003dfiles)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def _boot_new_instance(self, instance, vm_ref, injected_files,"},{"line_number":591,"context_line":"                           admin_password):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2FyD8%3D","line":588,"updated":"2013-03-12 18:26:23.000000000","message":"Does config drive need to be updated to include this key data as well?","commit_id":"dfc3d10073ed1c956bb6591c4386a34807478075"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"1b94f354bf48e0cd1a7efdf2e73790a70a400b81","unresolved":false,"context_lines":[{"line_number":585,"context_line":"            vm_utils.generate_configdrive(self._session, instance, vm_ref,"},{"line_number":586,"context_line":"                                          DEVICE_CONFIGDRIVE,"},{"line_number":587,"context_line":"                                          admin_password\u003dadmin_password,"},{"line_number":588,"context_line":"                                          files\u003dfiles)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def _boot_new_instance(self, instance, vm_ref, injected_files,"},{"line_number":591,"context_line":"                           admin_password):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Fx9Q%3D","line":588,"in_reply_to":"AAAAN3%2F%2FyD8%3D","updated":"2013-03-12 19:14:52.000000000","message":"It looks like libvirt does NOT add \u0027key_data\u0027 as extra_metadata for configdrive, either...  Perhaps it should, but it seems like that would be a new feature for both libvirt and xenapi.  There\u0027s one difference between libvirt and xenapi that I am NOT syncing up here but we should do so in H:   libvirt has a CONF option \u0027libvirt_inject_key\u0027 which defaults to True.  xenapi has no CONF option.  It always injects the key when modifying the image directly.  So, this patch does the same thing.  In H, we should perhaps deprecate \u0027libvirt_inject_key\u0027 and have a general config option for injecting keys that applies to libvirt and xenapi.  Maybe :)","commit_id":"dfc3d10073ed1c956bb6591c4386a34807478075"}]}
