private static void printHttpNfcLeaseInfo(HttpNfcLeaseInfo info) { System.out.println("######################## HttpNfcLeaseInfo ###########################"); System.out.println("Lease Timeout: " + info.getLeaseTimeout()); System.out.println("Total Disk capacity: " + info.getTotalDiskCapacityInKB()); HttpNfcLeaseDeviceUrl[] deviceUrlArr = info.getDeviceUrl(); if (deviceUrlArr != null) { int deviceUrlCount = 1; for (HttpNfcLeaseDeviceUrl durl : deviceUrlArr) { System.out.println("HttpNfcLeaseDeviceUrl : " + deviceUrlCount++); System.out.println(" Device URL Import Key: " + durl.getImportKey()); System.out.println(" Device URL Key: " + durl.getKey()); System.out.println(" Device URL : " + durl.getUrl()); System.out.println(" SSL Thumbprint : " + durl.getSslThumbprint()); } } else { System.out.println("No Device URLS Found"); } }
public void deployOvfTemplate(final HttpInputs httpInputs, final VmInputs vmInputs, final String templatePath, final Map<String, String> ovfNetworkMap, final Map<String, String> ovfPropertyMap) throws Exception { final ConnectionResources connectionResources = new ConnectionResources(httpInputs, vmInputs); try { final ImmutablePair<ManagedObjectReference, OvfCreateImportSpecResult> pair = createLeaseSetup(connectionResources, vmInputs, templatePath, ovfNetworkMap, ovfPropertyMap); final ManagedObjectReference httpNfcLease = pair.getLeft(); final OvfCreateImportSpecResult importSpecResult = pair.getRight(); final HttpNfcLeaseInfo httpNfcLeaseInfo = getHttpNfcLeaseInfoWhenReady(connectionResources, httpNfcLease); final List<HttpNfcLeaseDeviceUrl> deviceUrls = httpNfcLeaseInfo.getDeviceUrl(); final ProgressUpdater progressUpdater = executor.isParallel() ? new AsyncProgressUpdater(getDisksTotalNoBytes(importSpecResult), httpNfcLease, connectionResources) : new SyncProgressUpdater(getDisksTotalNoBytes(importSpecResult), httpNfcLease, connectionResources); executor.execute(progressUpdater); transferVmdkFiles(templatePath, importSpecResult, deviceUrls, progressUpdater); executor.shutdown(); } finally { if (httpInputs.isCloseSession()) { connectionResources.getConnection().disconnect(); clearConnectionFromContext(httpInputs.getGlobalSessionObject()); } } }
private void transferVmdkFiles(final String ovfPath, final OvfCreateImportSpecResult importSpecResult, final List<HttpNfcLeaseDeviceUrl> deviceUrls, final ProgressUpdater progressUpdater) throws Exception { for (HttpNfcLeaseDeviceUrl deviceUrl : deviceUrls) { final String deviceKey = deviceUrl.getImportKey(); for (OvfFileItem fileItem : importSpecResult.getFileItem()) { if (deviceKey.equals(fileItem.getDeviceId())) { final TransferVmdkTask transferVmdkTask = getTransferVmdkTask(ovfPath, progressUpdater, deviceUrl, fileItem); executor.execute(transferVmdkTask); break; } } } }
@NotNull private TransferVmdkTask getTransferVmdkTask(final String ovfPath, final ProgressUpdater progressUpdater, final HttpNfcLeaseDeviceUrl deviceUrl, final OvfFileItem fileItem) throws Exception { final URL vmDiskUrl = new URL(deviceUrl.getUrl()); final ITransferVmdkFrom transferVmdkFrom = getTransferVmdK(ovfPath, fileItem.getPath()); final TransferVmdkToUrl toUrl = new TransferVmdkToUrl(vmDiskUrl, fileItem.isCreate()); return new TransferVmdkTask(transferVmdkFrom, toUrl, progressUpdater); }
private String makUploadUri(String ip, HttpNfcLeaseDeviceUrl deviceUrl) { return deviceUrl.getUrl().replace("*", ip); }