'Power on the specified instance.
NOTE: Unlike the libvirt driver, this method does not delete
and recreate the instance; it preserves local state.
:param context: The security context.
:param instance: The instance object.
:param network_info: Instance network information. Ignored by
this driver.
:param block_device_info: Instance block device
information. Ignored by this driver.'

def power_on(self, context, instance, network_info, block_device_info=None):

    LOG.debug('Power    on    called    for    instance', instance=instance)
    node = self._validate_instance_and_node(instance)
    self.ironicclient.call('node.set_power_state', node.uuid, 'on')
    timer = loopingcall.FixedIntervalLoopingCall(self._wait_for_power_state, instance, 'power    on')
    timer.start(interval=CONF.ironic.api_retry_interval).wait()
    LOG.info('Successfully    powered    on    Ironic    node    %s', node.uuid, instance=instance)
