docs: def create_attach_volumes(name, kwargs, call=None, wait_to_finish=True):
      '''
      Create and attach volumes to created node
      '''
      if call != 'action':
          raise SaltCloudSystemExit(
              'The create_attach_volumes action must be called with '
              '-a or --action.'
          )
  
      if 'instance_id' not in kwargs:
          kwargs['instance_id'] = _get_node(name)['instanceId']
  
      if isinstance(kwargs['volumes'], six.string_types):
          volumes = salt.utils.yaml.safe_load(kwargs['volumes'])
      else:
          volumes = kwargs['volumes']
  
      ret = []
      for volume in volumes:
          created = False
          volume_name = '{0} on {1}'.format(volume['device'], name)
  
          volume_dict = {
              'volume_name': volume_name,
              'zone': kwargs['zone']
          }
          if 'volume_id' in volume:
              volume_dict['volume_id'] = volume['volume_id']
          elif 'snapshot' in volume:
              volume_dict['snapshot'] = volume['snapshot']
          elif 'size' in volume:
              volume_dict['size'] = volume['size']
          else:
              raise SaltCloudConfigError(
                  'Cannot create volume.  Please define one of \'volume_id\', '
                  '\'snapshot\', or \'size\''
              )
  
          if 'tags' in volume:
              volume_dict['tags'] = volume['tags']
          if 'type' in volume:
              volume_dict['type'] = volume['type']
          if 'iops' in volume:
              volume_dict['iops'] = volume['iops']
          if 'encrypted' in volume:
              volume_dict['encrypted'] = volume['encrypted']
          if 'kmskeyid' in volume:
              volume_dict['kmskeyid'] = volume['kmskeyid']
  
          if 'volume_id' not in volume_dict:
              created_volume = create_volume(volume_dict, call='function', wait_to_finish=wait_to_finish)
              created = True
              if 'volumeId' in created_volume:
                  volume_dict['volume_id'] = created_volume['volumeId']
  
          attach = attach_volume(
              name,
              {'volume_id': volume_dict['volume_id'],
               'device': volume['device']},
              instance_id=kwargs['instance_id'],
              call='action'
          )
  
          # Update the delvol parameter for this volume
          delvols_on_destroy = kwargs.get('del_all_vols_on_destroy', None)
  
          if attach and created and delvols_on_destroy is not None:
              _toggle_delvol(instance_id=kwargs['instance_id'],
                             device=volume['device'],
                             value=delvols_on_destroy)
  
          if attach:
              msg = (
                  '{0} attached to {1} (aka {2}) as device {3}'.format(
                      volume_dict['volume_id'],
                      kwargs['instance_id'],
                      name,
                      volume['device']
                  )
              )
              log.info(msg)
              ret.append(msg)
      return ret