public ModifyStoragePoolCommand(boolean add, StoragePool pool, String localPath) { this.add = add; this.pool = new StorageFilerTO(pool); this.localPath = localPath; }
protected void createNfsSr(StorageFilerTO pool) throws XmlRpcException { String mountPoint = String.format("%1$s:%2$s", pool.getHost(), pool.getPath()); OvmStoragePool.Details d = new OvmStoragePool.Details(); d.path = mountPoint; d.type = OvmStoragePool.NFS; d.uuid = pool.getUuid(); OvmStoragePool.create(_conn, d); s_logger.debug(String.format("Created SR (mount point:%1$s)", mountPoint)); }
public ModifyStoragePoolAnswer(ModifyStoragePoolCommand cmd, long capacityBytes, long availableBytes, Map<String, TemplateProp> tInfo) { super(cmd); result = true; poolInfo = new StoragePoolInfo(null, cmd.getPool().getHost(), cmd.getPool().getPath(), cmd.getLocalPath(), cmd.getPool().getType(), capacityBytes, availableBytes); templateInfo = tInfo; }
protected void createOCFS2Sr(StorageFilerTO pool) throws XmlRpcException { OvmStoragePool.Details d = new OvmStoragePool.Details(); d.path = pool.getPath(); d.type = OvmStoragePool.OCFS2; d.uuid = pool.getUuid(); OvmStoragePool.create(_conn, d); s_logger.debug(String.format("Created SR (mount point:%1$s)", d.path)); }
@Override public Answer execute(final ModifyStoragePoolCommand command, final LibvirtComputingResource libvirtComputingResource) { final KVMStoragePoolManager storagePoolMgr = libvirtComputingResource.getStoragePoolMgr(); final KVMStoragePool storagepool = storagePoolMgr.createStoragePool(command.getPool().getUuid(), command.getPool().getHost(), command.getPool().getPort(), command.getPool().getPath(), command.getPool() .getUserInfo(), command.getPool().getType()); if (storagepool == null) { return new Answer(command, false, " Failed to create storage pool"); } final Map<String, TemplateProp> tInfo = new HashMap<String, TemplateProp>(); final ModifyStoragePoolAnswer answer = new ModifyStoragePoolAnswer(command, storagepool.getCapacity(), storagepool.getAvailable(), tInfo); return answer; } }
if (pool.getType() == StoragePoolType.NetworkFilesystem) { citrixResourceBase.getNfsSR(conn, Long.toString(pool.getId()), pool.getUuid(), pool.getHost(), pool.getPath(), pool.toString()); } else if (pool.getType() == StoragePoolType.IscsiLUN) { citrixResourceBase.getIscsiSR(conn, pool.getUuid(), pool.getHost(), pool.getPath(), null, null, false); } else if (pool.getType() == StoragePoolType.PreSetup) { } else { return new Answer(command, false, "The pool type: " + pool.getType().name() + " is not supported."); } catch (final Exception e) { final String msg = "Catch Exception " + e.getClass().getName() + ", create StoragePool failed due to " + e.toString() + " on host:" + citrixResourceBase.getHost().getUuid() + " pool: " + pool.getHost() + pool.getPath();
protected CreateAnswer execute(CreateCommand cmd) { StorageFilerTO primaryStorage = cmd.getPool(); DiskProfile disk = cmd.getDiskCharacteristics(); try { OvmVolume.Details vol = null; if (cmd.getTemplateUrl() != null) { vol = OvmVolume.createFromTemplate(_conn, primaryStorage.getUuid(), cmd.getTemplateUrl()); } else { vol = OvmVolume.createDataDsik(_conn, primaryStorage.getUuid(), Long.toString(disk.getSize()), disk.getType() == Volume.Type.ROOT); } VolumeTO volume = new VolumeTO(cmd.getVolumeId(), disk.getType(), primaryStorage.getType(), primaryStorage.getUuid(), primaryStorage.getPath(), vol.name, vol.path, vol.size, null); return new CreateAnswer(cmd, volume); } catch (Exception e) { s_logger.debug("CreateCommand failed", e); return new CreateAnswer(cmd, e.getMessage()); } }
protected Answer execute(ModifyStoragePoolCommand cmd) { StorageFilerTO pool = cmd.getPool(); try { if (pool.getType() == StoragePoolType.NetworkFilesystem) { createNfsSr(pool); } else if (pool.getType() == StoragePoolType.OCFS2) { createOCFS2Sr(pool); } else { return new Answer(cmd, false, "The pool type: " + pool.getType().name() + " is not supported."); } setupHeartBeat(pool.getUuid()); OvmStoragePool.Details d = OvmStoragePool.getDetailsByUuid(_conn, pool.getUuid()); Map<String, TemplateProp> tInfo = new HashMap<String, TemplateProp>(); ModifyStoragePoolAnswer answer = new ModifyStoragePoolAnswer(cmd, d.totalSpace, d.freeSpace, tInfo); return answer; } catch (Exception e) { s_logger.debug("ModifyStoragePoolCommand failed", e); return new Answer(cmd, false, e.getMessage()); } }
public String getPoolUuid() { return pool.getUuid(); }
final KVMStoragePool primaryPool = storagePoolMgr.getStoragePool(pool.getType(), primaryUuid);
if (pool.getType() == StoragePoolType.NetworkFilesystem) { createRepo(pool); StoragePlugin store = new StoragePlugin(c); String propUuid = store.deDash(pool.getUuid()); String mntUuid = pool.getUuid(); String nfsHost = pool.getHost(); String nfsPath = pool.getPath(); StorageDetails ss = store.storagePluginGetFileSystemInfo( propUuid, mntUuid, nfsHost, nfsPath); return new ModifyStoragePoolAnswer(cmd, Long.parseLong(ss .getSize()), Long.parseLong(ss.getFreeSize()), tInfo); } else if (pool.getType() == StoragePoolType.OCFS2) { createOCFS2Sr(pool); + pool.getType().name() + " is not supported."); } catch (Exception e) { LOGGER.debug("ModifyStoragePoolCommand failed", e);
@Override public Answer execute(final DeleteStoragePoolCommand command, final LibvirtComputingResource libvirtComputingResource) { try { // if getRemoveDatastore() is true, then we are dealing with managed storage and can skip the delete logic here if (!command.getRemoveDatastore()) { final StorageFilerTO pool = command.getPool(); final KVMStoragePoolManager storagePoolMgr = libvirtComputingResource.getStoragePoolMgr(); storagePoolMgr.deleteStoragePool(pool.getType(), pool.getUuid()); } return new Answer(command); } catch (final CloudRuntimeException e) { return new Answer(command, false, e.toString()); } } }
protected Answer execute(DeleteStoragePoolCommand cmd) { try { OvmStoragePool.delete(_conn, cmd.getPool().getUuid()); } catch (Exception e) { s_logger.debug("Delete storage pool on host " + _ip + " failed, however, we leave to user for cleanup and tell managment server it succeeded", e); } return new Answer(cmd); }
final KVMStoragePool primaryPool = storagePoolMgr.getStoragePool(command.getPool().getType(), command.getPoolUuid());
String dst = primaryStorage.getPath() + "/" + primaryStorage.getUuid() + "/" + fileName; try { StoragePlugin store = new StoragePlugin(c); store.storagePluginCreate(primaryStorage.getUuid(), primaryStorage.getHost(), dst, disk.getSize(), false); primaryStorage.getUuid(), primaryStorage.getHost(), dst); VolumeTO volume = new VolumeTO(cmd.getVolumeId(), disk.getType(), primaryStorage.getType(), primaryStorage.getUuid(), primaryStorage.getPath(), fileName, fp.getName(), fp.getSize(), null); return new CreateAnswer(cmd, volume);
public ManageSnapshotCommand(long snapshotId, String volumePath, StoragePool pool, String preSnapshotPath, String snapshotName, String vmName) { _commandSwitch = ManageSnapshotCommand.CREATE_SNAPSHOT; _volumePath = volumePath; _pool = new StorageFilerTO(pool); _snapshotPath = preSnapshotPath; _snapshotName = snapshotName; _snapshotId = snapshotId; _vmName = vmName; }
try { final KVMStoragePoolManager storagePoolMgr = libvirtComputingResource.getStoragePoolMgr(); primaryPool = storagePoolMgr.getStoragePool(pool.getType(), pool.getUuid()); disksize = dskch.getSize(); final VolumeTO volume = new VolumeTO(command.getVolumeId(), dskch.getType(), pool.getType(), pool.getUuid(), pool.getPath(), vol.getName(), vol.getName(), disksize, null);
@Override public Answer execute(final CheckVMActivityOnStoragePoolCommand command, final LibvirtComputingResource libvirtComputingResource) { final ExecutorService executors = Executors.newSingleThreadExecutor(); final KVMHAMonitor monitor = libvirtComputingResource.getMonitor(); final StorageFilerTO pool = command.getPool(); if (Storage.StoragePoolType.NetworkFilesystem == pool.getType()){ final NfsStoragePool nfspool = monitor.getStoragePool(pool.getUuid()); final KVMHAVMActivityChecker ha = new KVMHAVMActivityChecker(nfspool, command.getHost().getPrivateNetwork().getIp(), command.getVolumeList(), libvirtComputingResource.getVmActivityCheckPath(), command.getSuspectTimeInSeconds()); final Future<Boolean> future = executors.submit(ha); try { final Boolean result = future.get(); if (result) { return new Answer(command, false, "VMHA disk activity detected ..."); } else { return new Answer(command); } } catch (InterruptedException e) { return new Answer(command, false, "CheckVMActivityOnStoragePoolCommand: can't get status of host: InterruptedException"); } catch (ExecutionException e) { return new Answer(command, false, "CheckVMActivityOnStoragePoolCommand: can't get status of host: ExecutionException"); } } return new Answer(command, false, "Unsupported Storage"); } }