Add ssh key to new vm
Create_vm now stes to public key correctly
This commit is contained in:
parent
ef0589f691
commit
715d092b96
3 changed files with 24 additions and 52 deletions
|
|
@ -260,7 +260,6 @@ class OpenNebulaManager():
|
|||
<DEV_PREFIX>vd</DEV_PREFIX>
|
||||
<IMAGE_ID>{image_id}</IMAGE_ID>
|
||||
</DISK>
|
||||
</TEMPLATE>
|
||||
""".format(size=1024 * int(specs['disk_size']),
|
||||
image_id=image_id)
|
||||
|
||||
|
|
@ -282,10 +281,18 @@ class OpenNebulaManager():
|
|||
<IMAGE>{image}</IMAGE>
|
||||
<IMAGE_UNAME>{image_uname}</IMAGE_UNAME>
|
||||
</DISK>
|
||||
</TEMPLATE>
|
||||
""".format(size=1024 * int(specs['disk_size']),
|
||||
image=image,
|
||||
image_uname=image_uname)
|
||||
|
||||
|
||||
if ssh_key:
|
||||
vm_specs += """<CONTEXT>
|
||||
<SSH_PUBLIC_KEY>{ssh}</SSH_PUBLIC_KEY>
|
||||
<NETWORK>YES</NETWORK>
|
||||
</CONTEXT>
|
||||
</TEMPLATE>
|
||||
""".format(ssh=public_key)
|
||||
vm_id = self.client.call(oca.VmTemplate.METHODS['instantiate'],
|
||||
template.id,
|
||||
'',
|
||||
|
|
@ -293,25 +300,6 @@ class OpenNebulaManager():
|
|||
vm_specs,
|
||||
False)
|
||||
|
||||
self.oneadmin_client.call(
|
||||
'vm.update',
|
||||
vm_id,
|
||||
"""<CONTEXT>
|
||||
<SSH_PUBLIC_KEY>{ssh}</SSH_PUBLIC_KEY>
|
||||
</CONTEXT>
|
||||
""".format(ssh=ssh_key)
|
||||
)
|
||||
try:
|
||||
self.oneadmin_client.call(
|
||||
oca.VirtualMachine.METHODS['chown'],
|
||||
vm_id,
|
||||
self.opennebula_user.id,
|
||||
self.opennebula_user.group_ids[0]
|
||||
)
|
||||
except AttributeError:
|
||||
logger.info(
|
||||
'Could not change owner for vm with id: {}.'.format(vm_id))
|
||||
|
||||
self.oneadmin_client.call(
|
||||
oca.VirtualMachine.METHODS['action'],
|
||||
'release',
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ class VirtualMachineTemplateSerializer(serializers.Serializer):
|
|||
cores = serializers.SerializerMethodField()
|
||||
disk_size = serializers.SerializerMethodField()
|
||||
memory = serializers.SerializerMethodField()
|
||||
price = serializers.SerializerMethodField()
|
||||
|
||||
def get_cores(self, obj):
|
||||
if hasattr(obj.template, 'vcpu'):
|
||||
|
|
@ -39,6 +38,8 @@ class VirtualMachineTemplateSerializer(serializers.Serializer):
|
|||
def get_name(self, obj):
|
||||
return obj.name.strip('public-')
|
||||
|
||||
|
||||
|
||||
class VirtualMachineSerializer(serializers.Serializer):
|
||||
"""Serializer to map the virtual machine instance into JSON format."""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue