/// <summary> /// Creates an import instance task using metadata from the specified disk image. <code>ImportInstance</code> /// only supports single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a>. /// After importing the image, you then upload it using the <code>ec2-import-volume</code> /// command in the EC2 command line tools. For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UploadingYourInstancesandVolumes.html">Using /// the Command Line Tools to Import Your Virtual Machine to Amazon EC2</a> in the <i>Amazon /// Elastic Compute Cloud User Guide</i>. /// </summary> /// <param name="request">Container for the necessary parameters to execute the ImportInstance service method.</param> /// /// <returns>The response from the ImportInstance service method, as returned by EC2.</returns> public ImportInstanceResponse ImportInstance(ImportInstanceRequest request) { var marshaller = new ImportInstanceRequestMarshaller(); var unmarshaller = ImportInstanceResponseUnmarshaller.Instance; return Invoke<ImportInstanceRequest,ImportInstanceResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the ImportInstance operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the ImportInstance operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<ImportInstanceResponse> ImportInstanceAsync(ImportInstanceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new ImportInstanceRequestMarshaller(); var unmarshaller = ImportInstanceResponseUnmarshaller.Instance; return InvokeAsync<ImportInstanceRequest,ImportInstanceResponse>(request, marshaller, unmarshaller, cancellationToken); }
IAsyncResult invokeImportInstance(ImportInstanceRequest importInstanceRequest, AsyncCallback callback, object state, bool synchronized) { IRequest irequest = new ImportInstanceRequestMarshaller().Marshall(importInstanceRequest); var unmarshaller = ImportInstanceResponseUnmarshaller.GetInstance(); AsyncResult result = new AsyncResult(irequest, callback, state, synchronized, signer, unmarshaller); Invoke(result); return result; }
/// <summary> /// Initiates the asynchronous execution of the ImportInstance operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the ImportInstance operation on AmazonEC2Client.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndImportInstance /// operation.</returns> public IAsyncResult BeginImportInstance(ImportInstanceRequest request, AsyncCallback callback, object state) { var marshaller = new ImportInstanceRequestMarshaller(); var unmarshaller = ImportInstanceResponseUnmarshaller.Instance; return BeginInvoke<ImportInstanceRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// <para>Creates an import instance task using metadata from the specified disk image. After importing the image, you then upload it using the /// ec2-upload-disk-image command in the EC2 command line tools. For more information, see Using the Command Line Tools to Import Your Virtual /// Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.</para> /// </summary> /// /// <param name="importInstanceRequest">Container for the necessary parameters to execute the ImportInstance service method on /// AmazonEC2.</param> /// /// <returns>The response from the ImportInstance service method, as returned by AmazonEC2.</returns> /// public ImportInstanceResponse ImportInstance(ImportInstanceRequest importInstanceRequest) { IAsyncResult asyncResult = invokeImportInstance(importInstanceRequest, null, null, true); return EndImportInstance(asyncResult); }
/// <summary> /// Initiates the asynchronous execution of the ImportInstance operation. /// <seealso cref="Amazon.EC2.IAmazonEC2.ImportInstance"/> /// </summary> /// /// <param name="importInstanceRequest">Container for the necessary parameters to execute the ImportInstance operation on AmazonEC2.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndImportInstance /// operation.</returns> public IAsyncResult BeginImportInstance(ImportInstanceRequest importInstanceRequest, AsyncCallback callback, object state) { return invokeImportInstance(importInstanceRequest, callback, state, false); }
/// <summary> /// Initiates a conversion task to yield a new Amazon EC2 instance for a set of image file /// artifacts uploaded previously to Amazon S3. /// </summary> /// <param name="launchConfiguration">Launch configuration settings for the imported instance</param> /// <returns> /// The service response containing a ConversionTask object that can be used to monitor the progress of the /// requested conversion. /// </returns> public ImportInstanceResponse StartInstanceConversion(ImportLaunchConfiguration launchConfiguration) { if (string.IsNullOrEmpty(ManifestFileKey)) throw new InvalidOperationException("No Amazon S3 object key available; have the image artifacts been uploaded?"); var diskImage = PopulateDiskImage(ManifestFileKey, launchConfiguration.Description); var launchSpecification = PopulateLaunchSpecificationInstance(launchConfiguration); var request = new ImportInstanceRequest { Description = string.IsNullOrEmpty(launchConfiguration.Description) ? null : launchConfiguration.Description, LaunchSpecification = launchSpecification, Platform = string.IsNullOrEmpty(launchConfiguration.Platform) ? null : launchConfiguration.Platform }; request.DiskImages.Add(diskImage); // allow any exception to propagate to the caller; this allows the calling tool to // assist the user with re-executing the command by showing the appropriate command line // or remediation needed to avoid re-uploading the artifacts try { return EC2Client.ImportInstance(request); } catch (Exception e) { throw new DiskImageImporterException(DiskImportErrorStage.SendingImportRequest, e); } }
/// <summary> /// <para>Creates an import instance task using metadata from the specified disk image. After importing the image, you then upload it using the /// ec2-upload-disk-image command in the EC2 command line tools. For more information, see Using the Command Line Tools to Import Your Virtual /// Machine to Amazon EC2 in the Amazon Elastic Compute Cloud User Guide.</para> /// </summary> /// /// <param name="importInstanceRequest">Container for the necessary parameters to execute the ImportInstance service method on /// AmazonEC2.</param> /// /// <returns>The response from the ImportInstance service method, as returned by AmazonEC2.</returns> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> public Task<ImportInstanceResponse> ImportInstanceAsync(ImportInstanceRequest importInstanceRequest, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new ImportInstanceRequestMarshaller(); var unmarshaller = ImportInstanceResponseUnmarshaller.GetInstance(); return Invoke<IRequest, ImportInstanceRequest, ImportInstanceResponse>(importInstanceRequest, marshaller, unmarshaller, signer, cancellationToken); }
internal ImportInstanceResponse ImportInstance(ImportInstanceRequest request) { var task = ImportInstanceAsync(request); try { return task.Result; } catch(AggregateException e) { ExceptionDispatchInfo.Capture(e.InnerException).Throw(); return null; } }
/// <summary> /// Initiates the asynchronous execution of the ImportInstance operation. /// <seealso cref="Amazon.EC2.IAmazonEC2.ImportInstance"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the ImportInstance operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public async Task<ImportInstanceResponse> ImportInstanceAsync(ImportInstanceRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new ImportInstanceRequestMarshaller(); var unmarshaller = ImportInstanceResponseUnmarshaller.GetInstance(); var response = await Invoke<IRequest, ImportInstanceRequest, ImportInstanceResponse>(request, marshaller, unmarshaller, signer, cancellationToken) .ConfigureAwait(continueOnCapturedContext: false); return response; }
/// <summary> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the ImportInstance service method on /// AmazonEC2.</param> /// /// <returns>The response from the ImportInstance service method, as returned by AmazonEC2.</returns> public ImportInstanceResponse ImportInstance(ImportInstanceRequest request) { var task = ImportInstanceAsync(request); try { return task.Result; } catch(AggregateException e) { throw e.InnerException; } }