Add ssh keys on creation of new VM
This commit is contained in:
parent
805f1129e8
commit
0561688f84
1 changed files with 19 additions and 0 deletions
|
@ -10,6 +10,7 @@ from hosting.models import HostingOrder, HostingBill
|
|||
from membership.models import StripeCustomer
|
||||
from opennebula_api.models import OpenNebulaManager
|
||||
from opennebula_api.serializers import VirtualMachineSerializer
|
||||
from utils.hosting_utils import get_all_public_keys
|
||||
from utils.forms import UserBillingAddressForm
|
||||
from utils.models import BillingAddress
|
||||
|
||||
|
@ -134,6 +135,24 @@ def create_vm_task(self, vm_template_id, user, specs, template,
|
|||
}
|
||||
email = EmailMessage(**email_data)
|
||||
email.send()
|
||||
|
||||
if 'pass' in user:
|
||||
# try to see if we have the IP and that if the ssh keys can
|
||||
# be configured
|
||||
new_host = manager.get_primary_ipv4(vm_id)
|
||||
if new_host is not None:
|
||||
public_keys = get_all_public_keys(owner)
|
||||
keys = [{'value': key, 'state': True} for key in public_keys]
|
||||
if len(keys) > 0:
|
||||
logger.debug(
|
||||
"Calling configure on {host} for {num_keys} keys".format(
|
||||
host=new_host, num_keys=len(keys)))
|
||||
# Let's delay the task by 75 seconds to be sure
|
||||
# that we run the cdist configure after the host
|
||||
# is up
|
||||
manager.manage_public_key(keys,
|
||||
hosts=[new_host],
|
||||
countdown=75)
|
||||
except Exception as e:
|
||||
logger.error(str(e))
|
||||
try:
|
||||
|
|
Loading…
Reference in a new issue