def attach_volume(name=None, kwargs=None, instance_id=None, call=None):
 if (call != 'action'):
  raise SaltCloudSystemExit('The attach_volume action must be called with -a or --action.')
 if (not kwargs):
  kwargs = {}
 if ('instance_id' in kwargs):
  instance_id = kwargs['instance_id']
 if (name and (not instance_id)):
  instance_id = _get_node(name)['instanceId']
 if ((not name) and (not instance_id)):
  log.error('Either a name or an instance_id is required.')
  return False
 if ('volume_id' not in kwargs):
  log.error('A volume_id is required.')
  return False
 if ('device' not in kwargs):
  log.error('A device is required (ex. /dev/sdb1).')
  return False
 params = {'Action': 'AttachVolume', 'VolumeId': kwargs['volume_id'], 'InstanceId': instance_id, 'Device': kwargs['device']}
 log.debug(params)
 vm_ = get_configured_provider()
 data = salt.utils.cloud.wait_for_ip(__attach_vol_to_instance, update_args=(params, kwargs, instance_id), timeout=config.get_cloud_config_value('wait_for_ip_timeout', vm_, __opts__, default=(10 * 60)), interval=config.get_cloud_config_value('wait_for_ip_interval', vm_, __opts__, default=10), interval_multiplier=config.get_cloud_config_value('wait_for_ip_interval_multiplier', vm_, __opts__, default=1))
 return data

def attach_volume ( name = None , kwargs = None , instance_id = None , call = None ) : if ( call != 'action' ) : raise SaltCloudSystemExit ( 'The attach_volume action must be called with -a or --action.' ) if ( not kwargs ) : kwargs = { } if ( 'instance_id' in kwargs ) : instance_id = kwargs [ 'instance_id' ] if ( name and ( not instance_id ) ) : instance_id = _get_node ( name ) [ 'instanceId' ] if ( ( not name ) and ( not instance_id ) ) : log . error ( 'Either a name or an instance_id is required.' ) return False if ( 'volume_id' not in kwargs ) : log . error ( 'A volume_id is required.' ) return False if ( 'device' not in kwargs ) : log . error ( 'A device is required (ex. /dev/sdb1).' ) return False params = { 'Action' : 'AttachVolume' , 'VolumeId' : kwargs [ 'volume_id' ] , 'InstanceId' : instance_id , 'Device' : kwargs [ 'device' ] } log . debug ( params ) vm_ = get_configured_provider ( ) data = salt . utils . cloud . wait_for_ip ( __attach_vol_to_instance , update_args = ( params , kwargs , instance_id ) , timeout = config . get_cloud_config_value ( 'wait_for_ip_timeout' , vm_ , __opts__ , default = ( 10 * 60 ) ) , interval = config . get_cloud_config_value ( 'wait_for_ip_interval' , vm_ , __opts__ , default = 10 ) , interval_multiplier = config . get_cloud_config_value ( 'wait_for_ip_interval_multiplier' , vm_ , __opts__ , default = 1 ) ) return data
attaches a volume .