← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1843708] Re: Key-pair is not updated during the rebuild

 

Reviewed:  https://review.opendev.org/683043
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=086796021b189c3ac64805ed8f6bde833906d284
Submitter: Zuul
Branch:    master

commit 086796021b189c3ac64805ed8f6bde833906d284
Author: Takashi NATSUME <natsume.takashi@xxxxxxxxxxxxx>
Date:   Thu Sep 19 15:57:44 2019 +0900

    objects: Update keypairs when saving an instance
    
    The keypair of a server is updated when rebuilding the server with a
    keypair. This function has been added since API microversion 2.54.
    However the 'keypairs' of the instance object is not saved when saving
    the instance object currently.
    
    Make the instance object update the 'keypairs' field when saving the
    instance object.
    
    Change-Id: I8a2726b39d0444de8c35480024078a97430f5d0c
    Closes-Bug: #1843708
    Co-authored-by: Stephen Finucane <stephenfin@xxxxxxxxxx>


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1843708

Title:
  Key-pair is not updated during the rebuild

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Description
  ===========

  When we want to rebuild an instance and change the keypair we can specified it with : 
  openstack --os-compute-api-version 2.54  server rebuild --image "Debian 10" --key-name key1 instance1

  This comes from this implementation : 
  https://review.opendev.org/#/c/379128/
  https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/rebuild-keypair-reset.html

  But when rebuilding the instance, Cloud-Init will set the key in authorized_keys from 
  http://169.254.169.254/openstack/latest/meta_data.json

  And this meta_data.json uses the keys from instance_extra tables
  But the keypair will be updated in the 'instances' table but not in the 'instance_extra' table.

  So the keypair is not updated inside the VM

  
  May be this is the function for saving the keypair, but the save() do nothing : 
  https://opendev.org/openstack/nova/src/branch/master/nova/objects/instance.py#L714


  Steps to reproduce
  ==================

  - Deploy a DevStack
  - Boot an instance with keypair key1
  - Rebuild it with key2
  - A nova show will show the key_name key2, keypairs object in table instance_extra is not updated and you cannot connect with key2 to the instance

  Expected result
  ===============
  Connecte to the Vm with the new keypair added during the rebuild call

  Actual result
  =============
  The keypair added during the rebuild call is not set in the VM

  Environment
  ===========
  I tested it on a Devstack from master and we have the behaviour.
  NOVA : commit 5fa49cd0b8b6015aa61b4312b2ce1ae780c42c64

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1843708/+subscriptions


References