@Test public void test() throws ApiSenderException, InterruptedException { long requiredSize = SizeUnit.GIGABYTE.toByte(10); SimulatorPrimaryStorageDetails sp = new SimulatorPrimaryStorageDetails(); sp.setTotalCapacity(SizeUnit.TERABYTE.toByte(10)); sp.setAvailableCapacity(sp.getTotalCapacity()); sp.setUrl("nfs://simulator/primary/"); PrimaryStorageInventory pinv = api.createSimulatoPrimaryStorage(1, sp).get(0); ZoneInventory zone = api.createZones(1).get(0); ClusterInventory cluster = api.createClusters(1, zone.getUuid()).get(0); HostInventory host = api.createHost(1, cluster.getUuid()).get(0); api.attachPrimaryStorage(cluster.getUuid(), pinv.getUuid()); AllocatePrimaryStorageMsg msg = new AllocatePrimaryStorageMsg(); msg.setRequiredHostUuid(host.getUuid()); msg.setSize(requiredSize); msg.setServiceId(bus.makeLocalServiceId(PrimaryStorageConstant.SERVICE_ID)); MessageReply reply = bus.call(msg); Assert.assertEquals(AllocatePrimaryStorageReply.class, reply.getClass()); AllocatePrimaryStorageReply ar = (AllocatePrimaryStorageReply) reply; Assert.assertEquals(pinv.getUuid(), ar.getPrimaryStorageInventory().getUuid()); ReturnPrimaryStorageCapacityMsg rmsg = new ReturnPrimaryStorageCapacityMsg(); rmsg.setDiskSize(requiredSize); rmsg.setPrimaryStorageUuid(pinv.getUuid()); rmsg.setServiceId(bus.makeLocalServiceId(PrimaryStorageConstant.SERVICE_ID)); bus.send(rmsg); Thread.sleep(2000); PrimaryStorageVO pvo = dbf.findByUuid(pinv.getUuid(), PrimaryStorageVO.class); Assert.assertEquals( pvo.getCapacity().getTotalCapacity(), pvo.getCapacity().getAvailableCapacity()); }
@Override public void rollback(FlowRollback trigger, Map data) { Long size = (Long) data.get(LocalStorageAllocateCapacityForAttachingVolumeFlow.class); if (size != null) { PrimaryStorageInventory pri = (PrimaryStorageInventory) data.get( VmInstanceConstant.Params.DestPrimaryStorageInventoryForAttachingVolume .toString()); ReturnPrimaryStorageCapacityMsg rmsg = new ReturnPrimaryStorageCapacityMsg(); rmsg.setPrimaryStorageUuid(pri.getUuid()); rmsg.setDiskSize(size); bus.makeTargetServiceIdByResourceUuid(rmsg, PrimaryStorageConstant.SERVICE_ID, pri.getUuid()); bus.send(rmsg); } trigger.rollback(); }