public String makeTemplateFromVolumeInWorkspacePath(String imageUuid) { return PathUtil.join(self.getUrl(), "templateWorkspace", String.format("image-%s", imageUuid), String.format("%s.qcow2", imageUuid)); }
public String makeSnapshotWorkspacePath(String imageUuid) { return PathUtil.join( self.getUrl(), PrimaryStoragePathMaker.makeImageFromSnapshotWorkspacePath(imageUuid), String.format("%s.qcow2", imageUuid) ); }
public boolean isCachedImageUrl(String path){ return path.startsWith(PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.getCachedImageInstallDir())); }
public String makeCachedImageInstallUrl(ImageInventory iminv) { return PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.makeCachedImageInstallPath(iminv)); }
public String makeCachedImageInstallUrlFromImageUuidForTemplate(String imageUuid) { return PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.makeCachedImageInstallPathFromImageUuidForTemplate(imageUuid)); }
public String makeDataVolumeInstallUrl(String volUuid) { return PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.makeDataVolumeInstallPath(volUuid)); }
public String getCachedImageDir(){ return PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.getCachedImageInstallDir()); }
public String makeRootVolumeInstallUrl(VolumeInventory vol) { return PathUtil.join(self.getUrl(), PrimaryStoragePathMaker.makeRootVolumeInstallPath(vol)); }
private VolumeInventory instantiateVolume(VolumeInventory vol) { String root = self.getUrl(); String path = putil.join(root, PrimaryStorageConstant.VM_FOLDER, vol.getUuid() + ".qcow2"); vol.setInstallPath(path); return vol; }
@Override public PrimaryStorageInventory createPrimaryStorage(PrimaryStorageVO vo, APIAddPrimaryStorageMsg msg) { vo.setMountPath(vo.getUrl()); vo.setType(SMPConstants.SMP_TYPE); vo = dbf.persistAndRefresh(vo); return PrimaryStorageInventory.valueOf(vo); }
@Override protected void handle(GetInstallPathForDataVolumeDownloadMsg msg) { String path = putil.join(self.getUrl(), PrimaryStorageConstant.VM_FOLDER, msg.getVolumeUuid() + ".qcow2"); GetInstallPathForDataVolumeDownloadReply reply = new GetInstallPathForDataVolumeDownloadReply(); reply.setInstallPath(path); bus.reply(msg, reply); }
@Override protected void handle(DownloadDataVolumeToPrimaryStorageMsg msg) { String path = putil.join(self.getUrl(), PrimaryStorageConstant.VM_FOLDER, msg.getVolumeUuid() + ".qcow2"); DownloadDataVolumeToPrimaryStorageReply reply = new DownloadDataVolumeToPrimaryStorageReply(); reply.setInstallPath(path); bus.reply(msg, reply); }
@Override public void run(MessageReply reply) { if (!reply.isSuccess() && !reply.getError().isError(PrimaryStorageErrors.DISCONNECTED)) { evt.setError(reply.getError()); logger.warn(String.format("failed to connect primary storage[uuid:%s, name:%s, url:%s]", finalVo.getUuid(), finalVo.getName(), finalVo.getUrl())); dbf.remove(finalVo); } else { PrimaryStorageInventory pinv = factory.getInventory(finalVo.getUuid()); logger.debug(String.format("successfully add primary storage[uuid:%s, name:%s, url: %s]", finalVo.getUuid(), finalVo.getName(), finalVo.getUrl())); evt.setInventory(pinv); } bus.publish(evt); } });
@Override public KVMHostAsyncHttpCallMsg call(String arg) { GetPhysicalCapacityCmd cmd = new GetPhysicalCapacityCmd(); cmd.uuid = self.getUuid(); cmd.setHostUuid(arg); cmd.storagePath = self.getUrl(); KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setHostUuid(arg); msg.setCommand(cmd); msg.setPath(GET_PHYSICAL_CAPACITY_PATH); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, arg); return msg; } });
@Override protected void handle(InitPrimaryStorageOnHostConnectedMsg msg, final ReturnValueCompletion<PhysicalCapacityUsage> completion) { InitCmd cmd = new InitCmd(); cmd.setHostUuid(msg.getHostUuid()); cmd.setPath(self.getUrl()); httpCall(INIT_PATH, msg.getHostUuid(), cmd, true, AgentResponse.class, new ReturnValueCompletion<AgentResponse>(completion) { @Override public void success(AgentResponse rsp) { PhysicalCapacityUsage usage = new PhysicalCapacityUsage(); usage.totalPhysicalSize = rsp.getTotalCapacity(); usage.availablePhysicalSize = rsp.getAvailableCapacity(); completion.success(usage); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override public KVMHostAsyncHttpCallMsg call(String arg) { InitCmd cmd = new InitCmd(); cmd.uuid = self.getUuid(); cmd.path = self.getUrl(); cmd.hostUuid = arg; KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setCommand(cmd); msg.setPath(INIT_PATH); msg.setHostUuid(arg); msg.setNoStatusCheck(noCheckStatus); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, arg); return msg; } });
protected <T extends AgentResponse> void httpCall(String path, final String hostUuid, AgentCommand cmd, boolean noCheckStatus, final Class<T> rspType, final ReturnValueCompletion<T> completion) { cmd.uuid = self.getUuid(); cmd.storagePath = self.getUrl(); KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setHostUuid(hostUuid); msg.setPath(path); msg.setNoStatusCheck(noCheckStatus); msg.setCommand(cmd); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply r = reply.castReply(); T rsp = r.toResponse(rspType); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } if (rsp.getTotalCapacity() != null && rsp.getAvailableCapacity() != null) { new LocalStorageCapacityUpdater().updatePhysicalCapacityByKvmAgentResponse(self.getUuid(), hostUuid, rsp); } completion.success(rsp); } }); }
if (msg.getUrl() != null && !self.getUrl().equals(msg.getUrl())){ updateMountPoint(msg.getUrl(), new Completion(completion) { @Override
protected void updateMountPoint(String newUrl, Completion completion) { String oldUrl = self.getUrl();
protected PrimaryStorageInventory(PrimaryStorageVO vo) { setZoneUuid(vo.getZoneUuid()); setCreateDate(vo.getCreateDate()); setDescription(vo.getDescription()); setLastOpDate(vo.getLastOpDate()); setName(vo.getName()); setState(vo.getState().toString()); setType(vo.getType()); setUrl(vo.getUrl()); setUuid(vo.getUuid()); setMountPath(vo.getMountPath()); setStatus(vo.getStatus().toString()); attachedClusterUuids = new ArrayList<String>(vo.getAttachedClusterRefs().size()); for (PrimaryStorageClusterRefVO ref : vo.getAttachedClusterRefs()) { attachedClusterUuids.add(ref.getClusterUuid()); } if (vo.getCapacity() != null) { setTotalCapacity(vo.getCapacity().getTotalCapacity()); setAvailableCapacity(vo.getCapacity().getAvailableCapacity()); setTotalPhysicalCapacity(vo.getCapacity().getTotalPhysicalCapacity()); setAvailablePhysicalCapacity(vo.getCapacity().getAvailablePhysicalCapacity()); setSystemUsedCapacity(vo.getCapacity().getSystemUsedCapacity()); } }