def volume_create_attach(name, call=None, **kwargs):
 if (call == 'function'):
  raise SaltCloudSystemExit('The create_attach_volumes action must be called with -a or --action.')
 if (type(kwargs['volumes']) is str):
  volumes = yaml.safe_load(kwargs['volumes'])
 else:
  volumes = kwargs['volumes']
 ret = []
 for volume in volumes:
  created = False
  volume_dict = {'name': volume['name']}
  if ('volume_id' in volume):
   volume_dict['volume_id'] = volume['volume_id']
  elif ('snapshot' in volume):
   volume_dict['snapshot'] = volume['snapshot']
  else:
   volume_dict['size'] = volume['size']
   if ('type' in volume):
    volume_dict['type'] = volume['type']
   if ('iops' in volume):
    volume_dict['iops'] = volume['iops']
  if ('id' not in volume_dict):
   created_volume = create_volume(**volume_dict)
   created = True
   volume_dict.update(created_volume)
  attach = attach_volume(name=volume['name'], server_name=name, device=volume.get('device', None), call='action')
  if attach:
   msg = '{0} attached to {1} (aka {2})'.format(volume_dict['id'], name, volume_dict['name'])
   log.info(msg)
   ret.append(msg)
 return ret

def volume_create_attach ( name , call = None , ** kwargs ) : if ( call == 'function' ) : raise SaltCloudSystemExit ( 'The create_attach_volumes action must be called with -a or --action.' ) if ( type ( kwargs [ 'volumes' ] ) is str ) : volumes = yaml . safe_load ( kwargs [ 'volumes' ] ) else : volumes = kwargs [ 'volumes' ] ret = [ ] for volume in volumes : created = False volume_dict = { 'name' : volume [ 'name' ] } if ( 'volume_id' in volume ) : volume_dict [ 'volume_id' ] = volume [ 'volume_id' ] elif ( 'snapshot' in volume ) : volume_dict [ 'snapshot' ] = volume [ 'snapshot' ] else : volume_dict [ 'size' ] = volume [ 'size' ] if ( 'type' in volume ) : volume_dict [ 'type' ] = volume [ 'type' ] if ( 'iops' in volume ) : volume_dict [ 'iops' ] = volume [ 'iops' ] if ( 'id' not in volume_dict ) : created_volume = create_volume ( ** volume_dict ) created = True volume_dict . update ( created_volume ) attach = attach_volume ( name = volume [ 'name' ] , server_name = name , device = volume . get ( 'device' , None ) , call = 'action' ) if attach : msg = '{0} attached to {1} (aka {2})' . format ( volume_dict [ 'id' ] , name , volume_dict [ 'name' ] ) log . info ( msg ) ret . append ( msg ) return ret
create and attach volumes to created node .