public Answer execute(CreateObjectCommand cmd) { LOGGER.debug("execute: "+ cmd.getClass()); DataTO data = cmd.getData(); if (data.getObjectType() == DataObjectType.VOLUME) { return createVolume(cmd); } else if (data.getObjectType() == DataObjectType.SNAPSHOT) { return createSnapshot(cmd); } else if (data.getObjectType() == DataObjectType.TEMPLATE) { LOGGER.debug("Template object creation not supported."); } return new CreateObjectAnswer(data.getObjectType() + " object creation not supported"); } /**
protected Answer execute(CreateObjectCommand cmd) { DataTO data = cmd.getData(); try { if (data.getObjectType() == DataObjectType.VOLUME) { return processor.createVolume(cmd); } else if (data.getObjectType() == DataObjectType.SNAPSHOT) { return processor.createSnapshot(cmd); } return new CreateObjectAnswer("not supported type"); } catch (Exception e) { s_logger.debug("Failed to create object: " + data.getObjectType() + ": " + e.toString()); return new CreateObjectAnswer(e.toString()); } }
public Answer createVolume(CreateObjectCommand cmd) { LOGGER.debug("execute createVolume: "+ cmd.getClass()); DataTO data = cmd.getData(); VolumeObjectTO volume = (VolumeObjectTO) data; try {
@Override public Answer createVolume(final CreateObjectCommand cmd) { final DataTO data = cmd.getData(); final VolumeObjectTO volume = (VolumeObjectTO) data; try { final Connection conn = hypervisorResource.getConnection(); final SR poolSr = hypervisorResource.getStorageRepository(conn, data.getDataStore().getUuid()); VDI.Record vdir = new VDI.Record(); vdir.nameLabel = volume.getName(); vdir.SR = poolSr; vdir.type = Types.VdiType.USER; vdir.virtualSize = volume.getSize(); VDI vdi; vdi = VDI.create(conn, vdir); vdir = vdi.getRecord(conn); final VolumeObjectTO newVol = new VolumeObjectTO(); newVol.setName(vdir.nameLabel); newVol.setSize(vdir.virtualSize); newVol.setPath(vdir.uuid); return new CreateObjectAnswer(newVol); } catch (final Exception e) { s_logger.debug("create volume failed: " + e.toString()); return new CreateObjectAnswer(e.toString()); } }
@Override public Answer createSnapshot(final CreateObjectCommand cmd) { final Connection conn = hypervisorResource.getConnection(); final SnapshotObjectTO snapshotTO = (SnapshotObjectTO) cmd.getData(); final long snapshotId = snapshotTO.getId(); final String snapshotName = snapshotTO.getName();
@Override public Answer createVolume(final CreateObjectCommand cmd) { final VolumeObjectTO volume = (VolumeObjectTO)cmd.getData(); final PrimaryDataStoreTO primaryStore = (PrimaryDataStoreTO)volume.getDataStore(); KVMStoragePool primaryPool = null; KVMPhysicalDisk vol = null; long disksize; try { primaryPool = storagePoolMgr.getStoragePool(primaryStore.getPoolType(), primaryStore.getUuid()); disksize = volume.getSize(); PhysicalDiskFormat format; if (volume.getFormat() == null) { format = primaryPool.getDefaultFormat(); } else { format = PhysicalDiskFormat.valueOf(volume.getFormat().toString().toUpperCase()); } vol = primaryPool.createPhysicalDisk(volume.getUuid(), format, volume.getProvisioningType(), disksize); final VolumeObjectTO newVol = new VolumeObjectTO(); if(vol != null) { newVol.setPath(vol.getName()); } newVol.setSize(volume.getSize()); newVol.setFormat(ImageFormat.valueOf(format.toString().toUpperCase())); return new CreateObjectAnswer(newVol); } catch (final Exception e) { s_logger.debug("Failed to create volume: ", e); return new CreateObjectAnswer(e.toString()); } }
public Answer createSnapshot(CreateObjectCommand cmd) { LOGGER.debug("execute createSnapshot: "+ cmd.getClass()); DataTO data = cmd.getData(); Xen xen = new Xen(c); SnapshotObjectTO snap = (SnapshotObjectTO) data;
@Override public Answer createSnapshot(final CreateObjectCommand cmd) { final SnapshotObjectTO snapshotTO = (SnapshotObjectTO)cmd.getData(); final PrimaryDataStoreTO primaryStore = (PrimaryDataStoreTO)snapshotTO.getDataStore(); final VolumeObjectTO volume = snapshotTO.getVolume();