org.apache.cloudstack.engine.subsystem.api.storage.DataStore类的使用及代码示例

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

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

DataStore介绍

暂无

代码示例

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

@Override
public Long getRefCount() {
  if (dataStore == null) {
    return null;
  }
  if (dataStore.getRole() == DataStoreRole.Image || dataStore.getRole() == DataStoreRole.ImageCache) {
    TemplateDataStoreVO store = templateStoreDao.findByStoreTemplate(dataStore.getId(), getId());
    return store.getRefCnt();
  }
  return null;
}

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

@Override
public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) {
  DataStoreDriver dataStoreDriver = dataStore != null ? dataStore.getDriver() : null;
  if (dataStoreDriver instanceof PrimaryDataStoreDriver) {
    ((PrimaryDataStoreDriver)dataStoreDriver).revokeAccess(dataObject, host, dataStore);
  }
}

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

private Map<Long, TemplateProp> listVolume(DataStore store) {
  ListVolumeCommand cmd = new ListVolumeCommand(store.getTO(), store.getUri());
  EndPoint ep = _epSelector.select(store);
  Answer answer = null;
  if (ep == null) {
    String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
    s_logger.error(errMsg);
    answer = new Answer(cmd, false, errMsg);
  } else {
    answer = ep.sendMessage(cmd);
  }
  if (answer != null && answer.getResult()) {
    ListVolumeAnswer tanswer = (ListVolumeAnswer)answer;
    return tanswer.getTemplateInfo();
  } else {
    if (s_logger.isDebugEnabled()) {
      s_logger.debug("Can not list volumes for image store " + store.getId());
    }
  }
  return null;
}

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

protected EndPoint findEndpointForPrimaryStorage(DataStore store) {
  return findEndPointInScope(store.getScope(), findOneHostOnPrimaryStorage, store.getId());
}

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

protected EndPoint findEndPointForImageMove(DataStore srcStore, DataStore destStore) {
  // find any xenserver/kvm host in the scope
  Scope srcScope = srcStore.getScope();
  Scope destScope = destStore.getScope();
  Scope selectedScope = null;
  Long poolId = null;
  // assumption, at least one of scope should be zone, find the least
  // scope
  if (srcScope.getScopeType() != ScopeType.ZONE) {
    selectedScope = srcScope;
    poolId = srcStore.getId();
  } else if (destScope.getScopeType() != ScopeType.ZONE) {
    selectedScope = destScope;
    poolId = destStore.getId();
  } else {
    // if both are zone scope
    if (srcStore.getRole() == DataStoreRole.Primary) {
      selectedScope = srcScope;
      poolId = srcStore.getId();
    } else if (destStore.getRole() == DataStoreRole.Primary) {
      selectedScope = destScope;
      poolId = destStore.getId();
    }
  }
  return findEndPointInScope(selectedScope, findOneHostOnPrimaryStorage, poolId);
}

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

Long zoneId_is = imageStore.getScope().getScopeId();
if (zoneId != null) {
  DataCenterVO zone = _dcDao.findById(zoneId_is);
  if (zone == null) {
    s_logger.warn("Unable to find zone by id " + zoneId_is +
          ", so skip downloading template to its image store " + imageStore.getId());
    continue;
        " is disabled, so skip downloading template to its image store " + imageStore.getId());
    continue;
DataObject templateOnStore = imageStore.create(tmpl);
  String errMsg = "There is no secondary storage VM for downloading template to image store " + imageStore.getName();
  s_logger.warn(errMsg);
  throw new CloudRuntimeException(errMsg);
    .getChecksum(), tmpl.getType().toString(), template.getUniqueName(), template.getFormat().toString(), templateOnStore.getDataStore().getUri(),
    templateOnStore.getDataStore().getRole().toString());

代码示例来源: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

@Override
public String getUri() {
  if (dataStore == null) {
    throw new CloudRuntimeException("datastore must be set before using this object");
  }
  DataObjectInStore obj = objectInStoreMgr.findObject(volumeVO.getId(), DataObjectType.VOLUME, dataStore.getId(), dataStore.getRole());
  if (obj.getState() != ObjectInDataStoreStateMachine.State.Ready) {
    return dataStore.getUri() + "&" + EncodingType.OBJTYPE + "=" + DataObjectType.VOLUME + "&" + EncodingType.SIZE + "=" + volumeVO.getSize() + "&" +
      EncodingType.NAME + "=" + volumeVO.getName();
  } else {
    return dataStore.getUri() + "&" + EncodingType.OBJTYPE + "=" + DataObjectType.VOLUME + "&" + EncodingType.PATH + "=" + obj.getInstallPath();
  }
}

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

@Override
public DataStore initialize(Map<String, Object> dsInfos) {
  DataStore store = primaryStoreHelper.createPrimaryDataStore(null);
  return providerMgr.getPrimaryDataStore(store.getId());
}

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

s_logger.warn("Unable to start/resume copy of template " + srcTemplate.getUniqueName() + " to " + destStore.getName() +
      ", no secondary storage vm in running state in source zone");
  throw new CloudRuntimeException("No secondary VM in running state in source template zone ");
DataObject templateOnStore = destStore.create(tmplForCopy);
templateOnStore.processEvent(Event.CreateOnlyRequested);
  AsyncCallbackDispatcher<TemplateServiceImpl, CreateCmdResult> caller = AsyncCallbackDispatcher.create(this);
  caller.setCallback(caller.getTarget().copyTemplateCrossZoneCallBack(null, null)).setContext(context);
  destStore.getDriver().createAsync(destStore, templateOnStore, caller);
} catch (CloudRuntimeException ex) {
  TemplateDataStoreVO templateStoreVO = _vmTemplateStoreDao.findByStoreTemplate(destStore.getId(), srcTemplate.getId());
  if (templateStoreVO != null) {
    TemplateInfo tmplObj = _templateFactory.getTemplate(srcTemplate, destStore);

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

ConcurrentHashMap<Long, StorageStats> storageStats = new ConcurrentHashMap<Long, StorageStats>();
for (DataStore store : stores) {
  if (store.getUri() == null) {
    continue;
  Integer nfsVersion = imageStoreDetailsUtil.getNfsVersion(store.getId());
  GetStorageStatsCommand command = new GetStorageStatsCommand(store.getTO(), nfsVersion);
  EndPoint ssAhost = _epSelector.select(store);
  if (ssAhost == null) {
    s_logger.debug("There is no secondary storage VM for secondary storage host " + store.getName());
    continue;
  long storeId = store.getId();
  Answer answer = ssAhost.sendMessage(command);
  if (answer != null && answer.getResult()) {

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

DataStore store = template.getDataStore();
vmTemplateStore = _vmTemplateStoreDao.findByStoreTemplate(store.getId(), template.getId());
if (vmTemplateStore == null) {
  vmTemplateStore =
    new TemplateDataStoreVO(store.getId(), template.getId(), new Date(), 0, Status.NOT_DOWNLOADED, null, null, "jobid0000", null, template.getUri());
  vmTemplateStore.setDataStoreRole(store.getRole());
  vmTemplateStore = _vmTemplateStoreDao.persist(vmTemplateStore);
} else if ((vmTemplateStore.getJobId() != null) && (vmTemplateStore.getJobId().length() > 2)) {
    String errMsg = "There is no secondary storage VM for downloading template to image store " + store.getName();
    s_logger.warn(errMsg);
    throw new CloudRuntimeException(errMsg);
    ep.sendMessageAsync(dcmd, new UploadListener.Callback(ep.getId(), dl));
  } catch (Exception e) {
    s_logger.warn("Unable to start /resume download of template " + template.getId() + " to " + store.getName(), e);
    dl.setDisconnected();
    dl.scheduleStatusCheck(RequestType.GET_OR_RESTART);

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

private Map<String, TemplateProp> listTemplate(DataStore ssStore) {
  Integer nfsVersion = imageStoreDetailsUtil.getNfsVersion(ssStore.getId());
  ListTemplateCommand cmd = new ListTemplateCommand(ssStore.getTO(), nfsVersion);
  EndPoint ep = _epSelector.select(ssStore);
  Answer answer = null;
  if (ep == null) {
    String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
    s_logger.error(errMsg);
    answer = new Answer(cmd, false, errMsg);
  } else {
    answer = ep.sendMessage(cmd);
  }
  if (answer != null && answer.getResult()) {
    ListTemplateAnswer tanswer = (ListTemplateAnswer)answer;
    return tanswer.getTemplateInfo();
  } else {
    if (s_logger.isDebugEnabled()) {
      s_logger.debug("can not list template for secondary storage host " + ssStore.getId());
    }
  }
  return null;
}

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

UploadVO uploadTemplateObj = new UploadVO(secStore.getId(), template.getId(), new Date(), Upload.Status.NOT_UPLOADED, type, url, Mode.FTP_UPLOAD);
_uploadDao.persist(uploadTemplateObj);
    s_logger.warn("Unable to start upload of " + template.getUniqueName() + " from " + secStore.getName() + " to " + url, e);
    ul.setDisconnected();
    ul.scheduleStatusCheck(RequestType.GET_OR_RESTART);

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

protected boolean moveBetweenCacheAndImage(DataStore srcStore, DataStore destStore) {
  DataStoreRole srcRole = srcStore.getRole();
  DataStoreRole destRole = destStore.getRole();
  if (srcRole == DataStoreRole.Image && destRole == DataStoreRole.ImageCache || srcRole == DataStoreRole.ImageCache && destRole == DataStoreRole.Image) {
    return true;
  } else {
    return false;
  }
}

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

@Override
public String createEntityExtractUrl(DataStore store, String installPath, ImageFormat format, DataObject dataObject) {
  SwiftTO swiftTO = (SwiftTO)store.getTO();
  String tempKey = UUID.randomUUID().toString();
  boolean result = SwiftUtil.setTempKey(swiftTO, tempKey);
  if (!result) {
    String errMsg = "Unable to set Temp-Key: " + tempKey;
    s_logger.error(errMsg);
    throw new CloudRuntimeException(errMsg);
  }
  String containerName = SwiftUtil.getContainerName(dataObject.getType().toString(), dataObject.getId());
  String objectName = installPath.split("\\/")[1];
  // Get extract url expiration interval set in global configuration (in seconds)
  int urlExpirationInterval = Integer.parseInt(_configDao.getValue(Config.ExtractURLExpirationInterval.toString()));
  URL swiftUrl = SwiftUtil.generateTempUrl(swiftTO, containerName, objectName, tempKey, urlExpirationInterval);
  if (swiftUrl != null) {
    s_logger.debug("Swift temp-url: " + swiftUrl.toString());
    return swiftUrl.toString();
  }
  throw new CloudRuntimeException("Unable to create extraction URL");
}

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

DataStoreTO storTO = store.getTO();
DataObject srcData = snapObj;
try {
  if (srcData.getDataStore().getRole() == DataStoreRole.Primary) {
    ep = selector.select(volObj);
  } else {

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

needCache = true;
  SnapshotInfo snapshot = (SnapshotInfo) srcData;
  srcData = cacheSnapshotChain(snapshot, snapshot.getDataStore().getScope());
if (srcData.getDataStore().getRole() == DataStoreRole.Primary) {
  ep = selector.select(destData);
} else {

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

@Override
public boolean isRegionStore(DataStore store) {
  if (store.getScope().getScopeType() == ScopeType.ZONE && store.getScope().getScopeId() == null)
    return true;
  else
    return false;
}

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

vol.getName(), vol.getFormat().toString(), dataObject.getDataStore().getUri(), dataObject.getDataStore().getRole().toString());
command.setLocalPath(volumeStore.getLocalDownloadPath());

相关文章