'Create a snapshot volume.
We don\'t yet support snaps in SW so make a new volume and dd the
source one into it.  This could be a lengthy operation.'

def create_snapshot(self, snapshot):

    origvol = {}
    origvol['name'] = snapshot['volume_name']
    origvol['size'] = snapshot['volume_size']
    origvol['id'] = snapshot['volume_id']
    origvol['provider_id'] = snapshot.get('volume').get('provider_id')
    self._add_cinder_apphost(self._get_space_name(origvol))
    snapvol = {}
    snapvol['display_name'] = snapshot['display_name']
    snapvol['name'] = snapshot['name']
    snapvol['size'] = snapshot['volume_size']
    snapvol['id'] = snapshot['id']
    provider = self.create_volume(snapvol)
    info = self._get_space_size_redundancy(origvol['provider_id'])
    volutils.copy_volume(self.local_path(origvol), ('/dev/' + provider['provider_id']), (info['sizeBytes'] // units.Mi), self.configuration.volume_dd_blocksize, execute=self._execute)
    return provider
