/** * 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; }
private void disableSrcDestCheck(List<VPNEndpoint> vpnEndpoints) { for (VPNEndpoint vpnEndpoint : vpnEndpoints) { ec2Client.setEndpoint(vpnEndpoint.getRegion().getEndpoint()); Instance instance = vpnEndpoint.getInstance(); List<NetworkInterface> networkInterfaces = ec2Client.describeNetworkInterfaces().getNetworkInterfaces(); for (NetworkInterface nic : networkInterfaces) { if (nic.getAttachment().getInstanceId().equals(instance.getInstanceId())) { ModifyNetworkInterfaceAttributeRequest modifyNicAttribute = new ModifyNetworkInterfaceAttributeRequest(); modifyNicAttribute.setNetworkInterfaceId(nic.getNetworkInterfaceId()); modifyNicAttribute.setSourceDestCheck(false); ec2Client.modifyNetworkInterfaceAttribute(modifyNicAttribute); LOG.debug("Disabled Src/Dest check on " + instance.getInstanceId()); } } } }
@Override public void modifyNetworkInterfaceAttribute(ModifyNetworkInterfaceAttributeRequest modifyNetworkInterfaceAttributeRequest) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException("Not supported in mock"); }
@Override public void modifyAttribute(ModifyNetworkInterfaceAttributeRequest request) { modifyAttribute(request, null); }
@Override public void modifyAttribute(ModifyNetworkInterfaceAttributeRequest request, ResultCapture<Void> extractor) { resource.performAction("ModifyAttribute", request, extractor); }
/** * Performs the <code>ModifyAttribute</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> * * @see ModifyNetworkInterfaceAttributeRequest */ void modifyAttribute(ModifyNetworkInterfaceAttributeRequest request);
/** * Performs the <code>ModifyAttribute</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> * * @see ModifyNetworkInterfaceAttributeRequest */ void modifyAttribute(ModifyNetworkInterfaceAttributeRequest request, ResultCapture<Void> extractor);