/** test that if number of cpus is above threshold, agreement creation fails. */ public void testAgreementCreationShouldFailIfCPUNumberAboveThreshold() { try { AgreementTemplateType template = getAgreementFactory().getTemplate(TEMPLATE_NAME, TEMPLATE_ID); AgreementOffer offer = new AgreementOfferType(template); XmlObject[] serviceXML = getServiceManifestXmlObject(offer); Manifest spManifest = getSPManifestFromXmlObject(serviceXML[0]); // set memory size 1 zero too much. spManifest .getVirtualMachineDescriptionSection() .getVirtualMachineComponentArray(0) .getOVFDefinition() .getVirtualSystem() .getVirtualHardwareSection() .setNumberOfVirtualCPUs(81920123); serviceXML[0].set(spManifest.toXmlBeanObject().getServiceManifest()); AgreementClient agreementClient = getAgreementFactory().createAgreement(offer); assertNull("Agreement creation did not fail", agreementClient); } catch (Exception e) { System.out.println("Agreement creation should fail because of creation constraints"); System.out.println(e.getMessage()); } }
public void testAgreementCreationFailsIfMaxInstancesAbove10() { try { AgreementTemplateType template = getAgreementFactory().getTemplate(TEMPLATE_NAME, TEMPLATE_ID); AgreementOffer offer = new AgreementOfferType(template); XmlObject[] serviceXML = getServiceManifestXmlObject(offer); Manifest spManifest = getSPManifestFromXmlObject(serviceXML[0]); spManifest .getVirtualMachineDescriptionSection() .getVirtualMachineComponentArray(0) .getAllocationConstraints() .setUpperBound(800); serviceXML[0].set(spManifest.toXmlBeanObject().getServiceManifest()); AgreementClient agreementClient = null; agreementClient = getAgreementFactory().createAgreement(offer); assertNull("Agreement creation did not fail", agreementClient); } catch (Exception e) { System.out.println("Agreement creation should fail because of creation constraints"); System.out.println(e.getMessage()); } }
/** agreement creation fails if size is above 512000 */ public void testAgreementCreationShouldFailIfSizeAboveThreshold() { try { AgreementTemplateType template = getAgreementFactory().getTemplate(TEMPLATE_NAME, TEMPLATE_ID); AgreementOffer offer = new AgreementOfferType(template); XmlObject[] serviceXML = getServiceManifestXmlObject(offer); Manifest spManifest = getSPManifestFromXmlObject(serviceXML[0]); // set vm image size above threshold of 512000 spManifest .getVirtualMachineDescriptionSection() .getVirtualMachineComponentArray(0) .getOVFDefinition() .getDiskSection() .getImageDisk() .setCapacity("1512000"); serviceXML[0].set(spManifest.toXmlBeanObject().getServiceManifest()); AgreementClient agreementClient = getAgreementFactory().createAgreement(offer); assertNull("Agreement creation did not fail", agreementClient); } catch (Exception e) { System.out.println("Agreement creation should fail because of creation constraints"); System.out.println(e.getMessage()); } }
/** * Overloaded method for conversion of VM images until support is available in the Service * Manifest for specifying desired format. Given an object of ServiceManifest containing the * details of the service to be contextualized, this function performs a number of operations * asynchronously. TODO: Remove After year 2 * * @param manifest Service Manifest to contextualize. * @param imageFormat Format to convert images to. Possible values are: "raw", "vmdk" and "qcow2" */ public void contextualizeService(Manifest manifest, String imageFormat) { Runnable virtualMachineContextualizer = new VirtualMachineContextualizer(this, manifest, imageFormat); Thread thread = new Thread(virtualMachineContextualizer); threads.put(manifest.getManifestId(), thread); thread.start(); }
/** * Tests the progress object callback function when we are 100% sure the state data has been * initialised. */ public void testContextualizeServiceWorkflow() { log.info("### TEST: " + getCurrentMethodName() + " STARTED ###"); ProgressData progressData = null; try { // Decide which manifest we are going to test with Manifest manifest; if (testManifest != null) { manifest = testManifest; } else { String serviceId = "3"; manifest = Manifest.Factory.newInstance(serviceId, "jboss"); } log.info("TEST: Service manifest is:\n" + manifest.toString()); // Initialise the VMC's configuration providing the path of the // config.properties file... GlobalConfiguration globalConfiguration; if (configFilePath != null) { globalConfiguration = new GlobalConfiguration(configFilePath); } else { globalConfiguration = new GlobalConfiguration(); } VmcApi vmcApi = new VmcApi(globalConfiguration); if (imageFormat == null) { vmcApi.contextualizeService(manifest); } else { vmcApi.contextualizeService(manifest, imageFormat); } // Wait until the service has been registered with the VMC before // polling the progress data... while (true) { try { log.info("TEST: Trying to fetch progress data..."); vmcApi.contextualizeServiceCallback(manifest.getManifestId()); log.info("TEST: No ProgressException..."); break; } catch (ProgressException e) { log.warn("TEST: Caught ProgressException due to: " + e.getMessage()); Thread.sleep(250); } } // Poll the progress data until the completion... while (true) { // We have progress data, do something with it... progressData = vmcApi.contextualizeServiceCallback(manifest.getManifestId()); // We have an error so stop everything! if (progressData.isError()) { // Say what the error is... log.error(progressData.getException().getMessage(), progressData.getException()); assertFalse(progressData.isError()); // For test case to // report failure // correctly return; } else { log.info( "TEST: contextualizeServiceCallbackObject total progress is: " + progressData.getTotalProgress()); log.info( "TEST: contextualizeServiceCallbackObject phase history of Phase with ID: " + progressData.getPhaseName(progressData.getCurrentPhaseId()) + ", % is: " + progressData.getHistory().get(progressData.getCurrentPhaseId())); } // 250ms delay between polling... Thread.sleep(250); // Test to see if contextualization has finished... if (vmcApi.contextualizeServiceCallback(manifest.getManifestId()).isComplete()) { log.warn("TEST: Detected contextualization has completed!"); break; } } // Test that the new manifest has been set... assertTrue(progressData.getManifest() != null); log.info( "TEST: contextualizeServiceCallbackObject altered manifest is: \n" + progressData.getManifest().toString()); // Test that the history is saved correctly in the progress data. for (int i = 0; i < progressData.getHistory().size(); i++) { log.info( "TEST: contextualizeServiceCallbackObject history of Phase with ID: " + progressData.getPhaseName(i) + ", % is: " + progressData.getHistory().get(i)); } } catch (Exception e) { log.error("TEST: Test Failed! Cause: " + e.getCause(), e); } log.warn("### TEST: " + getCurrentMethodName() + " COMPLETE ###"); }