public TemplateMetadata build() { return new TemplateMetadata(name, osTypeId, displayText, snapshotId, volumeId, virtualMachineId, passwordEnabled); }
public T fromTemplateMetadata(TemplateMetadata in) { return this .name(in.getName()) .osTypeId(in.getOsTypeId()) .displayText(in.getDisplayText()) .snapshotId(in.getSnapshotId()) .volumeId(in.getVolumeId()) .virtualMachineId(in.getVirtualMachineId()) .passwordEnabled(in.isPasswordEnabled()); } }
@Override public String toString() { return string().toString(); }
@Test(enabled = true) public void testCreateTemplate() throws Exception { Zone zone = Iterables.getFirst(client.getZoneClient().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkClient().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }); assertTrue(Iterables.size(networks) >= 1); Network network = Iterables.get(networks, 0); assertNotNull(network); // Create a VM and stop it String defaultTemplate = template != null ? template.getImageId() : null; vmForCreation = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, defaultTemplate, client, jobComplete, virtualMachineRunning); assertTrue(jobComplete.apply(client.getVirtualMachineClient().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); // Work out the VM's volume Set<Volume> volumes = client.getVolumeClient().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vmForCreation.getId())); assertEquals(volumes.size(), 1); Volume volume = Iterables.getOnlyElement(volumes); // Create a template CreateTemplateOptions options = CreateTemplateOptions.Builder.volumeId(volume.getId()); AsyncCreateResponse response = client.getTemplateClient().createTemplate(TemplateMetadata.builder().name(prefix+"-createTemplate").osTypeId(vmForCreation.getGuestOSId()).displayText("jclouds live testCreateTemplate").build(), options); assertTrue(jobComplete.apply(response.getJobId()), vmForCreation.toString()); createdTemplate = client.getTemplateClient().getTemplateInZone(response.getId(), vmForCreation.getZoneId()); // Assertions assertNotNull(createdTemplate); }
TemplateMetadata templateMetadata = TemplateMetadata.builder().name(prefix+"-registerTemplate").osTypeId(osType.getId()).displayText("jclouds live testRegisterTemplate").build(); Set<Template> templates = client.getTemplateClient().registerTemplate(templateMetadata, "VHD", "XenServer", IMPORT_VHD_URL, zone.getId(), options); registeredTemplate = Iterables.getOnlyElement(templates, null);
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(input instanceof TemplateMetadata, "this binder is only valid for TemplateMetadata"); TemplateMetadata metadata = (TemplateMetadata) input; Builder<String, String> builder = ImmutableMultimap.<String, String>builder(); builder.put("name", metadata.getName()); builder.put("ostypeid", metadata.getOsTypeId()); builder.put("displaytext", metadata.getDisplayText()); if (metadata.getSnapshotId() != null) { builder.put("snapshotid", metadata.getSnapshotId()); } if (metadata.getVolumeId() != null) { builder.put("volumeid", metadata.getVolumeId()); } if (metadata.getVirtualMachineId() != null) { builder.put("virtualmachineid", metadata.getVirtualMachineId()); } if (metadata.isPasswordEnabled() != null) { builder.put("passwordenabled", metadata.isPasswordEnabled().toString()); } return (R) request.toBuilder().replaceQueryParams(builder.build()).build(); } }
TemplateMetadata templateMetadata = TemplateMetadata.builder().name(prefix + "-registerTemplate").osTypeId(osType.getId()).displayText("jclouds live testRegisterTemplate").build(); Set<Template> templates = client.getTemplateApi().registerTemplate(templateMetadata, "VHD", "XenServer", IMPORT_VHD_URL, zone.getId(), options); registeredTemplate = Iterables.getOnlyElement(templates, null);
public TemplateMetadata build() { return new TemplateMetadata(name, osTypeId, displayText, snapshotId, volumeId, virtualMachineId, passwordEnabled); }
@Override public String toString() { return string().toString(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(input instanceof TemplateMetadata, "this binder is only valid for TemplateMetadata"); TemplateMetadata metadata = (TemplateMetadata) input; Builder<String, String> builder = ImmutableMultimap.<String, String>builder(); builder.put("name", metadata.getName()); builder.put("ostypeid", metadata.getOsTypeId()); builder.put("displaytext", metadata.getDisplayText()); if (metadata.getSnapshotId() != null) { builder.put("snapshotid", metadata.getSnapshotId()); } if (metadata.getVolumeId() != null) { builder.put("volumeid", metadata.getVolumeId()); } if (metadata.getVirtualMachineId() != null) { builder.put("virtualmachineid", metadata.getVirtualMachineId()); } if (metadata.isPasswordEnabled() != null) { builder.put("passwordenabled", metadata.isPasswordEnabled().toString()); } return (R) request.toBuilder().replaceQueryParams(builder.build()).build(); } }
@Test(enabled = true) public void testCreateTemplate() throws Exception { Zone zone = Iterables.getFirst(client.getZoneApi().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkApi().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }); assertTrue(Iterables.size(networks) >= 1); Network network = Iterables.get(networks, 0); assertNotNull(network); // Create a VM and stop it String defaultTemplate = templateBuilderSpec != null ? templateBuilderSpec.getImageId() : null; vmForCreation = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network, defaultTemplate, client, jobComplete, virtualMachineRunning); assertTrue(jobComplete.apply(client.getVirtualMachineApi().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); // Work out the VM's volume Set<Volume> volumes = client.getVolumeApi().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vmForCreation.getId())); assertEquals(volumes.size(), 1); Volume volume = Iterables.getOnlyElement(volumes); // Create a template CreateTemplateOptions options = CreateTemplateOptions.Builder.volumeId(volume.getId()); AsyncCreateResponse response = client.getTemplateApi().createTemplate(TemplateMetadata.builder().name(prefix + "-createTemplate").osTypeId(vmForCreation.getGuestOSId()).displayText("jclouds live testCreateTemplate").build(), options); assertTrue(jobComplete.apply(response.getJobId()), vmForCreation.toString()); createdTemplate = client.getTemplateApi().getTemplateInZone(response.getId(), vmForCreation.getZoneId()); // Assertions assertNotNull(createdTemplate); }
public TemplateMetadata build() { return new TemplateMetadata(name, osTypeId, displayText, snapshotId, volumeId, virtualMachineId, passwordEnabled); }
@Override public String toString() { return string().toString(); }
public T fromTemplateMetadata(TemplateMetadata in) { return this .name(in.getName()) .osTypeId(in.getOsTypeId()) .displayText(in.getDisplayText()) .snapshotId(in.getSnapshotId()) .volumeId(in.getVolumeId()) .virtualMachineId(in.getVirtualMachineId()) .passwordEnabled(in.isPasswordEnabled()); } }
public void testCreateTemplate() throws NoSuchMethodException { Invokable<?, ?> method = method(TemplateAsyncClient.class, "createTemplate", TemplateMetadata.class, CreateTemplateOptions[].class); GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of(TemplateMetadata.builder().name("thename").osTypeId("10").displayText("description").build())); assertRequestLineEquals(httpRequest, "GET http://localhost:8080/client/api?response=json&command=createTemplate&name=thename&ostypeid=10&displaytext=description HTTP/1.1"); assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, UnwrapOnlyJsonValue.class); assertSaxResponseParserClassEquals(method, null); assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class); checkFilters(httpRequest); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(input instanceof TemplateMetadata, "this binder is only valid for TemplateMetadata"); TemplateMetadata metadata = (TemplateMetadata) input; Builder<String, String> builder = ImmutableMultimap.<String, String>builder(); builder.put("name", metadata.getName()); builder.put("ostypeid", metadata.getOsTypeId()); builder.put("displaytext", metadata.getDisplayText()); if (metadata.getSnapshotId() != null) { builder.put("snapshotid", metadata.getSnapshotId()); } if (metadata.getVolumeId() != null) { builder.put("volumeid", metadata.getVolumeId()); } if (metadata.getVirtualMachineId() != null) { builder.put("virtualmachineid", metadata.getVirtualMachineId()); } if (metadata.isPasswordEnabled() != null) { builder.put("passwordenabled", metadata.isPasswordEnabled().toString()); } return (R) request.toBuilder().replaceQueryParams(builder.build()).build(); } }
AsyncCreateResponse templateJob = client.getTemplateApi().createTemplate(TemplateMetadata.builder() .name(cloneTemplate.getName()) .osTypeId(vm.getGuestOSId())
public T fromTemplateMetadata(TemplateMetadata in) { return this .name(in.getName()) .osTypeId(in.getOsTypeId()) .displayText(in.getDisplayText()) .snapshotId(in.getSnapshotId()) .volumeId(in.getVolumeId()) .virtualMachineId(in.getVirtualMachineId()) .passwordEnabled(in.isPasswordEnabled()); } }
public void testRegisterTemplate() throws NoSuchMethodException { Invokable<?, ?> method = method(TemplateApi.class, "registerTemplate", TemplateMetadata.class, String.class, String.class, String.class, String.class, RegisterTemplateOptions[].class); GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of(TemplateMetadata.builder().name("thename").osTypeId("10").displayText("description").build(), Template.Format.QCOW2, "xen", "http://example.com/", 20)); assertRequestLineEquals(httpRequest, registerTemplate.getRequestLine()); assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class); assertSaxResponseParserClassEquals(method, null); assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class); checkFilters(httpRequest); }
public void testRegisterTemplate() throws NoSuchMethodException { Invokable<?, ?> method = method(TemplateAsyncClient.class, "registerTemplate", TemplateMetadata.class, String.class, String.class, String.class, String.class, RegisterTemplateOptions[].class); GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of(TemplateMetadata.builder().name("thename").osTypeId("10").displayText("description").build(), Template.Format.QCOW2, "xen", "http://example.com/", 20)); assertRequestLineEquals(httpRequest, registerTemplate.getRequestLine()); assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class); assertSaxResponseParserClassEquals(method, null); assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class); checkFilters(httpRequest); }