Source code for cfme.cloud.instance.azure

# -*- coding: utf-8 -*-
import attr
from riggerlib import recursive_update

from cfme.exceptions import OptionNotAvailable
from cfme.utils.log import logger

from . import Instance, InstanceCollection


@attr.s
[docs]class AzureInstance(Instance): # CFME & provider power control options Added by Jeff Teehan on 5-16-2016 START = "Start" POWER_ON = START # For compatibility with the infra objects. STOP = "Stop" SUSPEND = "Suspend" DELETE = "Delete" TERMINATE = 'Delete' # CFME-only power control options SOFT_REBOOT = "Soft Reboot" HARD_REBOOT = "Hard Reboot" # unsupported by azure, used for negative tests # Provider-only power control options RESTART = "Restart" # CFME power states STATE_ON = "on" STATE_OFF = "off" STATE_SUSPENDED = "suspended" STATE_TERMINATED = "terminated" STATE_UNKNOWN = "unknown" STATE_ARCHIVED = "archived" @property def ui_powerstates_available(self): return { 'on': [self.STOP, self.SUSPEND, self.SOFT_REBOOT, self.TERMINATE], 'off': [self.START, self.TERMINATE]} @property def ui_powerstates_unavailable(self): return { 'on': [self.START], 'off': [self.STOP, self.SUSPEND, self.SOFT_REBOOT]} @property def vm_default_args(self): inst_args = super(AzureInstance, self).vm_default_args provisioning = self.provider.data['provisioning'] vm_user = provisioning.get('customize_username') vm_password = provisioning.get('customize_password') recursive_update(inst_args, { 'environment': { 'public_ip_address': '<None>', }, 'customize': { 'admin_username': vm_user, 'root_password': vm_password}}) return inst_args @property def vm_default_args_rest(self): inst_args = super(AzureInstance, self).vm_default_args_rest provisioning = self.provider.data['provisioning'] vm_user = provisioning.get('customize_username') vm_password = provisioning.get('customize_password') recursive_update(inst_args, { 'vm_fields': { 'root_username': vm_user, 'root_password': vm_password}}) return inst_args
@attr.s
[docs]class AzureInstanceCollection(InstanceCollection): ENTITY = AzureInstance