'clone \'snapshot\' to a lun named \'clone\' in project \'clone_proj\'.'

def clone_snapshot(self, pool, project, lun, snapshot, clone_proj, clone, specs):

    svc = (((((((('/api/storage/v1/pools/' + pool) + '/projects/') + project) + '/luns/') + lun) + '/snapshots/') + snapshot) + '/clone')
    arg = {'project': clone_proj, 'share': clone, 'nodestroy': True}
    if specs:
        arg.update(specs)
    arg.pop('volblocksize', '')
    ret = self.rclient.put(svc, arg)
    if (ret.status != restclient.Status.CREATED):
        exception_msg = (_('Error    Cloning    Snapshot:    %(snapshot)s    on    Volume:    %(lun)s    of    Pool:    %(pool)s    Project:    %(project)s        Clone    project:    %(clone_proj)s    Return    code:    %(ret.status)d    Message:    %(ret.data)s.') % {'snapshot': snapshot, 'lun': lun, 'pool': pool, 'project': project, 'clone_proj': clone_proj, 'ret.status': ret.status, 'ret.data': ret.data})
        LOG.error(exception_msg)
        raise exception.VolumeBackendAPIException(data=exception_msg)
