/** * Attach a provided AWS NIC to a given AWS VM with deviceIndex = number of NICs + 1 * returns the attachment ID of the newly created and attached NIC. This is necessary for * removing it later for the goals of the test. The NIC is as well configured to be deleted on * instance termination for sanity purposes. */ public static String addNICDirectlyWithEC2Client(ComputeState vm, AmazonEC2Client client, VerificationHost host, String newNicId) { // attach the new AWS NIC to the AWS VM AttachNetworkInterfaceRequest attachNewNic = new AttachNetworkInterfaceRequest() .withInstanceId(vm.id) .withDeviceIndex(vm.networkInterfaceLinks.size()) .withNetworkInterfaceId(newNicId); AttachNetworkInterfaceResult attachmetnResult = client.attachNetworkInterface(attachNewNic); String attachmentId = attachmetnResult.getAttachmentId(); // ensure the new NIC is deleted when the VM is terminated NetworkInterfaceAttachmentChanges attachTerm = new NetworkInterfaceAttachmentChanges() .withAttachmentId(attachmentId) .withDeleteOnTermination(true); ModifyNetworkInterfaceAttributeRequest setDeleteOnTerm = new ModifyNetworkInterfaceAttributeRequest() .withAttachment(attachTerm) .withNetworkInterfaceId(newNicId); client.modifyNetworkInterfaceAttribute(setDeleteOnTerm); host.log("Created new NIC with id: %s to vm id: %s with attachment id: %s", newNicId, vm.id, attachmentId); return attachmentId; }
@Override public AttachNetworkInterfaceResult attach(AttachNetworkInterfaceRequest request, ResultCapture<AttachNetworkInterfaceResult> extractor) { ActionResult result = resource.performAction("Attach", request, extractor); if (result == null) return null; return (AttachNetworkInterfaceResult) result.getData(); }
@Override public AttachNetworkInterfaceResult attachNetworkInterface(AttachNetworkInterfaceRequest attachNetworkInterfaceRequest) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("Not supported in mock"); }
@Override public AttachNetworkInterfaceResult attach(AttachNetworkInterfaceRequest request) { return attach(request, null); }
/** * Performs the <code>Attach</code> action. * * <p> * The following request parameters will be populated from the data of this * <code>NetworkInterface</code> resource, and any conflicting parameter * value set in the request will be overridden: * <ul> * <li> * <b><code>NetworkInterfaceId</code></b> * - mapped from the <code>Id</code> identifier. * </li> * </ul> * * <p> * * @return The response of the low-level client operation associated with * this resource action. * @see AttachNetworkInterfaceRequest */ AttachNetworkInterfaceResult attach(AttachNetworkInterfaceRequest request);
/** * Performs the <code>Attach</code> action and use a ResultCapture to * retrieve the low-level client response. * * <p> * The following request parameters will be populated from the data of this * <code>NetworkInterface</code> resource, and any conflicting parameter * value set in the request will be overridden: * <ul> * <li> * <b><code>NetworkInterfaceId</code></b> * - mapped from the <code>Id</code> identifier. * </li> * </ul> * * <p> * * @return The response of the low-level client operation associated with * this resource action. * @see AttachNetworkInterfaceRequest */ AttachNetworkInterfaceResult attach(AttachNetworkInterfaceRequest request, ResultCapture<AttachNetworkInterfaceResult> extractor);