org.apache.cloudstack.engine.subsystem.api.storage.DataStore.create()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(10.6k)|赞(0)|评价(0)|浏览(94)

本文整理了Java中org.apache.cloudstack.engine.subsystem.api.storage.DataStore.create()方法的一些代码示例,展示了DataStore.create()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。DataStore.create()方法的具体详情如下:
包路径:org.apache.cloudstack.engine.subsystem.api.storage.DataStore
类名称:DataStore
方法名:create

DataStore.create介绍

暂无

代码示例

代码示例来源:origin: apache/cloudstack

@Override
public DataObject getCacheObject(DataObject data, Scope scope) {
  DataStore cacheStore = getCacheStorage(scope);
  DataObject objOnCacheStore = cacheStore.create(data);
  objOnCacheStore.incRefCount();
  return objOnCacheStore;
}

代码示例来源:origin: apache/cloudstack

@Override
public Pair<EndPoint, DataObject> registerVolumeForPostUpload(VolumeInfo volume, DataStore store) {
  EndPoint ep = _epSelector.select(store);
  if (ep == null) {
    String errorMessage = "There is no secondary storage VM for image store " + store.getName();
    s_logger.warn(errorMessage);
    throw new CloudRuntimeException(errorMessage);
  }
  DataObject volumeOnStore = store.create(volume);
  return new Pair<>(ep, volumeOnStore);
}

代码示例来源:origin: apache/cloudstack

objOnCacheStore = store.create(data);

代码示例来源:origin: apache/cloudstack

@Override
public AsyncCallFuture<VolumeApiResult> createVolumeFromSnapshot(VolumeInfo volume, DataStore store, SnapshotInfo snapshot) {
  AsyncCallFuture<VolumeApiResult> future = new AsyncCallFuture<VolumeApiResult>();
  try {
    DataObject volumeOnStore = store.create(volume);
    volumeOnStore.processEvent(Event.CreateOnlyRequested);
    _volumeDetailsDao.addDetail(volume.getId(), SNAPSHOT_ID, Long.toString(snapshot.getId()), false);
    CreateVolumeFromBaseImageContext<VolumeApiResult> context = new CreateVolumeFromBaseImageContext<VolumeApiResult>(null, volume, store, volumeOnStore, future, snapshot);
    AsyncCallbackDispatcher<VolumeServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().createVolumeFromSnapshotCallback(null, null)).setContext(context);
    motionSrv.copyAsync(snapshot, volumeOnStore, caller);
  } catch (Exception e) {
    s_logger.debug("create volume from snapshot failed", e);
    VolumeApiResult result = new VolumeApiResult(volume);
    result.setResult(e.toString());
    future.complete(result);
  }
  return future;
}

代码示例来源:origin: apache/cloudstack

private AsyncCallFuture<TemplateApiResult> copyAsync(DataObject source, TemplateInfo template, DataStore store) {
  AsyncCallFuture<TemplateApiResult> future = new AsyncCallFuture<TemplateApiResult>();
  DataObject templateOnStore = store.create(template);
  templateOnStore.processEvent(Event.CreateOnlyRequested);
  TemplateOpContext<TemplateApiResult> context = new TemplateOpContext<TemplateApiResult>(null, (TemplateObject)templateOnStore, future);
  AsyncCallbackDispatcher<TemplateServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
  caller.setCallback(caller.getTarget().copyTemplateCallBack(null, null)).setContext(context);
  _motionSrv.copyAsync(source, templateOnStore, caller);
  return future;
}

代码示例来源:origin: apache/cloudstack

snapshotOnPrimary = (SnapshotObject)snap.getDataStore().create(snapshot);
} catch (Exception e) {
  s_logger.debug("Failed to create snapshot state on data store due to " + e.getMessage());

代码示例来源:origin: apache/cloudstack

protected AsyncCallFuture<VolumeApiResult> copyVolumeFromImageToPrimary(VolumeInfo srcVolume, DataStore destStore) {
  AsyncCallFuture<VolumeApiResult> future = new AsyncCallFuture<VolumeApiResult>();
  VolumeApiResult res = new VolumeApiResult(srcVolume);
  VolumeInfo destVolume = null;
  try {
    destVolume = (VolumeInfo)destStore.create(srcVolume);
    destVolume.processEvent(Event.CopyingRequested);
    srcVolume.processEvent(Event.CopyingRequested);
    CopyVolumeContext<VolumeApiResult> context = new CopyVolumeContext<VolumeApiResult>(null, future, srcVolume, destVolume, destStore);
    AsyncCallbackDispatcher<VolumeServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().copyVolumeFromImageToPrimaryCallback(null, null)).setContext(context);
    motionSrv.copyAsync(srcVolume, destVolume, caller);
    return future;
  } catch (Exception e) {
    s_logger.error("failed to copy volume from image store", e);
    if (destVolume != null) {
      destVolume.processEvent(Event.OperationFailed);
    }
    srcVolume.processEvent(Event.OperationFailed);
    res.setResult(e.toString());
    future.complete(res);
    return future;
  }
}

代码示例来源:origin: apache/cloudstack

protected AsyncCallFuture<VolumeApiResult> copyVolumeFromPrimaryToImage(VolumeInfo srcVolume, DataStore destStore) {
  AsyncCallFuture<VolumeApiResult> future = new AsyncCallFuture<VolumeApiResult>();
  VolumeApiResult res = new VolumeApiResult(srcVolume);
  VolumeInfo destVolume = null;
  try {
    destVolume = (VolumeInfo)destStore.create(srcVolume);
    srcVolume.processEvent(Event.MigrationRequested);    // this is just used for locking that src volume record in DB to avoid using lock
    destVolume.processEventOnly(Event.CreateOnlyRequested);
    CopyVolumeContext<VolumeApiResult> context = new CopyVolumeContext<VolumeApiResult>(null, future, srcVolume, destVolume, destStore);
    AsyncCallbackDispatcher<VolumeServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().copyVolumeFromPrimaryToImageCallback(null, null)).setContext(context);
    motionSrv.copyAsync(srcVolume, destVolume, caller);
    return future;
  } catch (Exception e) {
    s_logger.error("failed to copy volume to image store", e);
    if (destVolume != null) {
      destVolume.getDataStore().delete(destVolume);
    }
    srcVolume.processEvent(Event.OperationFailed); // unlock source volume record
    res.setResult(e.toString());
    future.complete(res);
    return future;
  }
}

代码示例来源:origin: apache/cloudstack

DataObject templateOnStore = destStore.create(tmplForCopy);
templateOnStore.processEvent(Event.CreateOnlyRequested);

代码示例来源:origin: apache/cloudstack

SnapshotInfo snapshotOnImageStore = (SnapshotInfo)imageStore.create(snapshot);

代码示例来源:origin: apache/cloudstack

DataObject templateOnStore = imageStore.create(tmpl);

代码示例来源:origin: apache/cloudstack

@Override
public void createTemplateAsync(TemplateInfo template, DataStore store, AsyncCompletionCallback<TemplateApiResult> callback) {
  TemplateObject templateOnStore = (TemplateObject)store.create(template);

代码示例来源:origin: apache/cloudstack

@Override
public AsyncCallFuture<TemplateApiResult> createDatadiskTemplateAsync(TemplateInfo parentTemplate, TemplateInfo dataDiskTemplate, String path, String diskId, long fileSize, boolean bootable) {
  AsyncCallFuture<TemplateApiResult> future = new AsyncCallFuture<TemplateApiResult>();
  // Make an entry for disk template in template_store_ref table
  DataStore store = parentTemplate.getDataStore();
  TemplateObject dataDiskTemplateOnStore;
  if (!bootable) {
    dataDiskTemplateOnStore = (TemplateObject)store.create(dataDiskTemplate);
    dataDiskTemplateOnStore.processEvent(ObjectInDataStoreStateMachine.Event.CreateOnlyRequested);
  } else {
    dataDiskTemplateOnStore = (TemplateObject) imageFactory.getTemplate(parentTemplate, store);
  }
  try {
    CreateDataDiskTemplateContext<TemplateApiResult> context = new CreateDataDiskTemplateContext<TemplateApiResult>(null, dataDiskTemplateOnStore, future);
    AsyncCallbackDispatcher<TemplateServiceImpl, CreateCmdResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().createDatadiskTemplateCallback(null, null)).setContext(context);
    ImageStoreEntity tmpltStore = (ImageStoreEntity)parentTemplate.getDataStore();
    tmpltStore.createDataDiskTemplateAsync(dataDiskTemplate, path, diskId, fileSize, bootable, caller);
  } catch (CloudRuntimeException ex) {
    dataDiskTemplateOnStore.processEvent(ObjectInDataStoreStateMachine.Event.OperationFailed);
    TemplateApiResult result = new TemplateApiResult(dataDiskTemplate);
    result.setResult(ex.getMessage());
    if (future != null) {
      future.complete(result);
    }
  }
  return future;
}

代码示例来源:origin: apache/cloudstack

@Override
public AsyncCallFuture<VolumeApiResult> registerVolume(VolumeInfo volume, DataStore store) {
  AsyncCallFuture<VolumeApiResult> future = new AsyncCallFuture<VolumeApiResult>();
  DataObject volumeOnStore = store.create(volume);
  volumeOnStore.processEvent(Event.CreateOnlyRequested);
  try {
    CreateVolumeContext<VolumeApiResult> context = new CreateVolumeContext<VolumeApiResult>(null, volumeOnStore, future);
    AsyncCallbackDispatcher<VolumeServiceImpl, CreateCmdResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().registerVolumeCallback(null, null));
    caller.setContext(context);
    store.getDriver().createAsync(store, volumeOnStore, caller);
  } catch (CloudRuntimeException ex) {
    // clean up already persisted volume_store_ref entry in case of createVolumeCallback is never called
    VolumeDataStoreVO volStoreVO = _volumeStoreDao.findByStoreVolume(store.getId(), volume.getId());
    if (volStoreVO != null) {
      VolumeInfo volObj = volFactory.getVolume(volume, store);
      volObj.processEvent(ObjectInDataStoreStateMachine.Event.OperationFailed);
    }
    VolumeApiResult res = new VolumeApiResult((VolumeObject)volumeOnStore);
    res.setResult(ex.getMessage());
    future.complete(res);
  }
  return future;
}

代码示例来源:origin: apache/cloudstack

@Override
public AsyncCallFuture<VolumeApiResult> createVolumeAsync(VolumeInfo volume, DataStore dataStore) {
  AsyncCallFuture<VolumeApiResult> future = new AsyncCallFuture<VolumeApiResult>();
  DataObject volumeOnStore = dataStore.create(volume);
  volumeOnStore.processEvent(Event.CreateOnlyRequested);
  try {
    CreateVolumeContext<VolumeApiResult> context = new CreateVolumeContext<VolumeApiResult>(null, volumeOnStore, future);
    AsyncCallbackDispatcher<VolumeServiceImpl, CreateCmdResult> caller = AsyncCallbackDispatcher.create(this);
    caller.setCallback(caller.getTarget().createVolumeCallback(null, null)).setContext(context);
    dataStore.getDriver().createAsync(dataStore, volumeOnStore, caller);
  } catch (CloudRuntimeException ex) {
    // clean up already persisted volume_store_ref entry in case of createVolumeCallback is never called
    VolumeDataStoreVO volStoreVO = _volumeStoreDao.findByStoreVolume(dataStore.getId(), volume.getId());
    if (volStoreVO != null) {
      VolumeInfo volObj = volFactory.getVolume(volume, dataStore);
      volObj.processEvent(ObjectInDataStoreStateMachine.Event.OperationFailed);
    }
    VolumeApiResult volResult = new VolumeApiResult((VolumeObject)volumeOnStore);
    volResult.setResult(ex.getMessage());
    future.complete(volResult);
  }
  return future;
}

代码示例来源:origin: apache/cloudstack

DataStore store = dataStoreMgr.getDataStore(parentSnapshotOnBackupStore.getDataStoreId(), parentSnapshotOnBackupStore.getRole());
SnapshotInfo snapshotOnImageStore = (SnapshotInfo)store.create(snapshot);
snapshotOnImageStore.processEvent(Event.CreateOnlyRequested);

代码示例来源:origin: apache/cloudstack

snapshotInfo = (SnapshotInfo) store.create(snapshotInfo);
SnapshotDataStoreVO snapshotOnPrimaryStore = this._snapshotStoreDao.findBySnapshot(snapshot.getId(), store.getRole());
snapshotOnPrimaryStore.setState(ObjectInDataStoreStateMachine.State.Ready);

相关文章