/* * Copyright 2016 by PrimeCloud Controller/OSS Community. * * This file is part of PrimeCloud Controller(TM). * * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * PrimeCloud Controller(TM) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>. */ package jp.primecloud.auto.aws.typica; import java.util.ArrayList; import java.util.List; import jp.primecloud.auto.aws.typica.converter.AddressConverter; import jp.primecloud.auto.aws.typica.converter.AvailabilityZoneConverter; import jp.primecloud.auto.aws.typica.converter.ImageConverter; import jp.primecloud.auto.aws.typica.converter.InstanceStateChangeTerminateConverter; import jp.primecloud.auto.aws.typica.converter.KeyPairConverter; import jp.primecloud.auto.aws.typica.converter.KeyPairInfoConverter; import jp.primecloud.auto.aws.typica.converter.RegionConverter; import jp.primecloud.auto.aws.typica.converter.ReservationConverter; import jp.primecloud.auto.aws.typica.converter.SecurityGroupConverter; import jp.primecloud.auto.aws.typica.converter.SnapshotConverter; import jp.primecloud.auto.aws.typica.converter.VolumeAttachmentConverter; import jp.primecloud.auto.aws.typica.converter.VolumeConverter; import org.apache.commons.codec.binary.Base64; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.AmazonWebServiceRequest; import com.amazonaws.ResponseMetadata; import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.model.*; import com.amazonaws.services.ec2.waiters.AmazonEC2Waiters; import com.xerox.amazonws.ec2.AddressInfo; import com.xerox.amazonws.ec2.AttachmentInfo; import com.xerox.amazonws.ec2.EC2Exception; import com.xerox.amazonws.ec2.GroupDescription; import com.xerox.amazonws.ec2.ImageDescription; import com.xerox.amazonws.ec2.InstanceType; import com.xerox.amazonws.ec2.Jec2; import com.xerox.amazonws.ec2.RegionInfo; import com.xerox.amazonws.ec2.ReservationDescription; import com.xerox.amazonws.ec2.SnapshotInfo; import com.xerox.amazonws.ec2.TerminatingInstanceDescription; import com.xerox.amazonws.ec2.VolumeInfo; /** * <p> * TODO: クラスコメント * </p> * */ public class EucaEc2Client implements AmazonEC2 { protected Jec2 jec2; public EucaEc2Client(Jec2 jec2) { this.jec2 = jec2; } public Jec2 getJec2() { return jec2; } @Override public void setEndpoint(String endpoint) { } @Override public void setRegion(com.amazonaws.regions.Region region) { } @Override public AcceptReservedInstancesExchangeQuoteResult acceptReservedInstancesExchangeQuote( AcceptReservedInstancesExchangeQuoteRequest acceptReservedInstancesExchangeQuoteRequest) { throw new UnsupportedOperationException(); } @Override public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection( AcceptVpcPeeringConnectionRequest acceptVpcPeeringConnectionRequest) { throw new UnsupportedOperationException(); } @Override public AcceptVpcPeeringConnectionResult acceptVpcPeeringConnection() { throw new UnsupportedOperationException(); } @Override public AllocateAddressResult allocateAddress(AllocateAddressRequest allocateAddressRequest) { try { String publicIp = jec2.allocateAddress(); return new AllocateAddressResult().withPublicIp(publicIp); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public AllocateAddressResult allocateAddress() { return allocateAddress(new AllocateAddressRequest()); } @Override public AllocateHostsResult allocateHosts(AllocateHostsRequest allocateHostsRequest) { throw new UnsupportedOperationException(); } @Override public AssignPrivateIpAddressesResult assignPrivateIpAddresses( AssignPrivateIpAddressesRequest assignPrivateIpAddressesRequest) { throw new UnsupportedOperationException(); } @Override public AssociateAddressResult associateAddress(AssociateAddressRequest associateAddressRequest) { try { jec2.associateAddress(associateAddressRequest.getInstanceId(), associateAddressRequest.getPublicIp()); return new AssociateAddressResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public AssociateDhcpOptionsResult associateDhcpOptions(AssociateDhcpOptionsRequest associateDhcpOptionsRequest) { throw new UnsupportedOperationException(); } @Override public AssociateRouteTableResult associateRouteTable(AssociateRouteTableRequest associateRouteTableRequest) { throw new UnsupportedOperationException(); } @Override public AttachClassicLinkVpcResult attachClassicLinkVpc(AttachClassicLinkVpcRequest attachClassicLinkVpcRequest) { throw new UnsupportedOperationException(); } @Override public AttachInternetGatewayResult attachInternetGateway(AttachInternetGatewayRequest attachInternetGatewayRequest) { throw new UnsupportedOperationException(); } @Override public AttachNetworkInterfaceResult attachNetworkInterface( AttachNetworkInterfaceRequest attachNetworkInterfaceRequest) { throw new UnsupportedOperationException(); } @Override public AttachVolumeResult attachVolume(AttachVolumeRequest attachVolumeRequest) { try { AttachmentInfo info = jec2.attachVolume(attachVolumeRequest.getVolumeId(), attachVolumeRequest.getInstanceId(), attachVolumeRequest.getDevice()); VolumeAttachment attachment = new VolumeAttachmentConverter().convert(info); return new AttachVolumeResult().withAttachment(attachment); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public AttachVpnGatewayResult attachVpnGateway(AttachVpnGatewayRequest attachVpnGatewayRequest) { throw new UnsupportedOperationException(); } @Override public AuthorizeSecurityGroupEgressResult authorizeSecurityGroupEgress( AuthorizeSecurityGroupEgressRequest authorizeSecurityGroupEgressRequest) { throw new UnsupportedOperationException(); } @Override public AuthorizeSecurityGroupIngressResult authorizeSecurityGroupIngress( AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest) { throw new UnsupportedOperationException(); } @Override public BundleInstanceResult bundleInstance(BundleInstanceRequest bundleInstanceRequest) { throw new UnsupportedOperationException(); } @Override public CancelBundleTaskResult cancelBundleTask(CancelBundleTaskRequest cancelBundleTaskRequest) { throw new UnsupportedOperationException(); } @Override public CancelConversionTaskResult cancelConversionTask(CancelConversionTaskRequest cancelConversionTaskRequest) { throw new UnsupportedOperationException(); } @Override public CancelExportTaskResult cancelExportTask(CancelExportTaskRequest cancelExportTaskRequest) { throw new UnsupportedOperationException(); } @Override public CancelImportTaskResult cancelImportTask(CancelImportTaskRequest cancelImportTaskRequest) { throw new UnsupportedOperationException(); } @Override public CancelImportTaskResult cancelImportTask() { throw new UnsupportedOperationException(); } @Override public CancelReservedInstancesListingResult cancelReservedInstancesListing( CancelReservedInstancesListingRequest cancelReservedInstancesListingRequest) { throw new UnsupportedOperationException(); } @Override public CancelSpotFleetRequestsResult cancelSpotFleetRequests( CancelSpotFleetRequestsRequest cancelSpotFleetRequestsRequest) { throw new UnsupportedOperationException(); } @Override public CancelSpotInstanceRequestsResult cancelSpotInstanceRequests( CancelSpotInstanceRequestsRequest cancelSpotInstanceRequestsRequest) { throw new UnsupportedOperationException(); } @Override public ConfirmProductInstanceResult confirmProductInstance( ConfirmProductInstanceRequest confirmProductInstanceRequest) { throw new UnsupportedOperationException(); } @Override public CopyImageResult copyImage(CopyImageRequest copyImageRequest) { throw new UnsupportedOperationException(); } @Override public CopySnapshotResult copySnapshot(CopySnapshotRequest copySnapshotRequest) { throw new UnsupportedOperationException(); } @Override public CreateCustomerGatewayResult createCustomerGateway(CreateCustomerGatewayRequest createCustomerGatewayRequest) { throw new UnsupportedOperationException(); } @Override public CreateDhcpOptionsResult createDhcpOptions(CreateDhcpOptionsRequest createDhcpOptionsRequest) { throw new UnsupportedOperationException(); } @Override public CreateFlowLogsResult createFlowLogs(CreateFlowLogsRequest createFlowLogsRequest) { throw new UnsupportedOperationException(); } @Override public CreateImageResult createImage(CreateImageRequest createImageRequest) { throw new UnsupportedOperationException(); } @Override public CreateInstanceExportTaskResult createInstanceExportTask( CreateInstanceExportTaskRequest createInstanceExportTaskRequest) { throw new UnsupportedOperationException(); } @Override public CreateInternetGatewayResult createInternetGateway(CreateInternetGatewayRequest createInternetGatewayRequest) { throw new UnsupportedOperationException(); } @Override public CreateInternetGatewayResult createInternetGateway() { throw new UnsupportedOperationException(); } @Override public CreateKeyPairResult createKeyPair(CreateKeyPairRequest createKeyPairRequest) { try { com.xerox.amazonws.ec2.KeyPairInfo info = jec2.createKeyPair(createKeyPairRequest.getKeyName()); KeyPair keyPair = new KeyPairConverter().convert(info); return new CreateKeyPairResult().withKeyPair(keyPair); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public CreateNatGatewayResult createNatGateway(CreateNatGatewayRequest createNatGatewayRequest) { throw new UnsupportedOperationException(); } @Override public CreateNetworkAclResult createNetworkAcl(CreateNetworkAclRequest createNetworkAclRequest) { throw new UnsupportedOperationException(); } @Override public CreateNetworkAclEntryResult createNetworkAclEntry(CreateNetworkAclEntryRequest createNetworkAclEntryRequest) { throw new UnsupportedOperationException(); } @Override public CreateNetworkInterfaceResult createNetworkInterface( CreateNetworkInterfaceRequest createNetworkInterfaceRequest) { throw new UnsupportedOperationException(); } @Override public CreatePlacementGroupResult createPlacementGroup(CreatePlacementGroupRequest createPlacementGroupRequest) { throw new UnsupportedOperationException(); } @Override public CreateReservedInstancesListingResult createReservedInstancesListing( CreateReservedInstancesListingRequest createReservedInstancesListingRequest) { throw new UnsupportedOperationException(); } @Override public CreateRouteResult createRoute(CreateRouteRequest createRouteRequest) { throw new UnsupportedOperationException(); } @Override public CreateRouteTableResult createRouteTable(CreateRouteTableRequest createRouteTableRequest) { throw new UnsupportedOperationException(); } @Override public CreateSecurityGroupResult createSecurityGroup(CreateSecurityGroupRequest createSecurityGroupRequest) { throw new UnsupportedOperationException(); } @Override public CreateSnapshotResult createSnapshot(CreateSnapshotRequest createSnapshotRequest) { try { SnapshotInfo info = jec2.createSnapshot(createSnapshotRequest.getVolumeId()); Snapshot snapshot = new SnapshotConverter().convert(info); return new CreateSnapshotResult().withSnapshot(snapshot); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public CreateSpotDatafeedSubscriptionResult createSpotDatafeedSubscription( CreateSpotDatafeedSubscriptionRequest createSpotDatafeedSubscriptionRequest) { throw new UnsupportedOperationException(); } @Override public CreateSubnetResult createSubnet(CreateSubnetRequest createSubnetRequest) { throw new UnsupportedOperationException(); } @Override public CreateTagsResult createTags(CreateTagsRequest createTagsRequest) { throw new UnsupportedOperationException(); } @Override public CreateVolumeResult createVolume(CreateVolumeRequest createVolumeRequest) { String size = createVolumeRequest.getSize() != null ? createVolumeRequest.getSize().toString() : null; try { VolumeInfo info = jec2.createVolume(size, createVolumeRequest.getSnapshotId(), createVolumeRequest.getAvailabilityZone()); Volume volume = new VolumeConverter().convert(info); return new CreateVolumeResult().withVolume(volume); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public CreateVpcResult createVpc(CreateVpcRequest createVpcRequest) { throw new UnsupportedOperationException(); } @Override public CreateVpcEndpointResult createVpcEndpoint(CreateVpcEndpointRequest createVpcEndpointRequest) { throw new UnsupportedOperationException(); } @Override public CreateVpcPeeringConnectionResult createVpcPeeringConnection( CreateVpcPeeringConnectionRequest createVpcPeeringConnectionRequest) { throw new UnsupportedOperationException(); } @Override public CreateVpcPeeringConnectionResult createVpcPeeringConnection() { throw new UnsupportedOperationException(); } @Override public CreateVpnConnectionResult createVpnConnection(CreateVpnConnectionRequest createVpnConnectionRequest) { throw new UnsupportedOperationException(); } @Override public CreateVpnConnectionRouteResult createVpnConnectionRoute( CreateVpnConnectionRouteRequest createVpnConnectionRouteRequest) { throw new UnsupportedOperationException(); } @Override public CreateVpnGatewayResult createVpnGateway(CreateVpnGatewayRequest createVpnGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DeleteCustomerGatewayResult deleteCustomerGateway(DeleteCustomerGatewayRequest deleteCustomerGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DeleteDhcpOptionsResult deleteDhcpOptions(DeleteDhcpOptionsRequest deleteDhcpOptionsRequest) { throw new UnsupportedOperationException(); } @Override public DeleteFlowLogsResult deleteFlowLogs(DeleteFlowLogsRequest deleteFlowLogsRequest) { throw new UnsupportedOperationException(); } @Override public DeleteInternetGatewayResult deleteInternetGateway(DeleteInternetGatewayRequest deleteInternetGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DeleteKeyPairResult deleteKeyPair(DeleteKeyPairRequest deleteKeyPairRequest) { try { jec2.deleteKeyPair(deleteKeyPairRequest.getKeyName()); return new DeleteKeyPairResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DeleteNatGatewayResult deleteNatGateway(DeleteNatGatewayRequest deleteNatGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DeleteNetworkAclResult deleteNetworkAcl(DeleteNetworkAclRequest deleteNetworkAclRequest) { throw new UnsupportedOperationException(); } @Override public DeleteNetworkAclEntryResult deleteNetworkAclEntry(DeleteNetworkAclEntryRequest deleteNetworkAclEntryRequest) { throw new UnsupportedOperationException(); } @Override public DeleteNetworkInterfaceResult deleteNetworkInterface( DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest) { throw new UnsupportedOperationException(); } @Override public DeletePlacementGroupResult deletePlacementGroup(DeletePlacementGroupRequest deletePlacementGroupRequest) { throw new UnsupportedOperationException(); } @Override public DeleteRouteResult deleteRoute(DeleteRouteRequest deleteRouteRequest) { throw new UnsupportedOperationException(); } @Override public DeleteRouteTableResult deleteRouteTable(DeleteRouteTableRequest deleteRouteTableRequest) { throw new UnsupportedOperationException(); } @Override public DeleteSecurityGroupResult deleteSecurityGroup(DeleteSecurityGroupRequest deleteSecurityGroupRequest) { throw new UnsupportedOperationException(); } @Override public DeleteSnapshotResult deleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) { try { jec2.deleteSnapshot(deleteSnapshotRequest.getSnapshotId()); return new DeleteSnapshotResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription( DeleteSpotDatafeedSubscriptionRequest deleteSpotDatafeedSubscriptionRequest) { throw new UnsupportedOperationException(); } @Override public DeleteSpotDatafeedSubscriptionResult deleteSpotDatafeedSubscription() { throw new UnsupportedOperationException(); } @Override public DeleteSubnetResult deleteSubnet(DeleteSubnetRequest deleteSubnetRequest) { throw new UnsupportedOperationException(); } @Override public DeleteTagsResult deleteTags(DeleteTagsRequest deleteTagsRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVolumeResult deleteVolume(DeleteVolumeRequest deleteVolumeRequest) { try { jec2.deleteVolume(deleteVolumeRequest.getVolumeId()); return new DeleteVolumeResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DeleteVpcResult deleteVpc(DeleteVpcRequest deleteVpcRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVpcEndpointsResult deleteVpcEndpoints(DeleteVpcEndpointsRequest deleteVpcEndpointsRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVpcPeeringConnectionResult deleteVpcPeeringConnection( DeleteVpcPeeringConnectionRequest deleteVpcPeeringConnectionRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVpnConnectionResult deleteVpnConnection(DeleteVpnConnectionRequest deleteVpnConnectionRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVpnConnectionRouteResult deleteVpnConnectionRoute( DeleteVpnConnectionRouteRequest deleteVpnConnectionRouteRequest) { throw new UnsupportedOperationException(); } @Override public DeleteVpnGatewayResult deleteVpnGateway(DeleteVpnGatewayRequest deleteVpnGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DeregisterImageResult deregisterImage(DeregisterImageRequest deregisterImageRequest) { throw new UnsupportedOperationException(); } @Override public DescribeAccountAttributesResult describeAccountAttributes( DescribeAccountAttributesRequest describeAccountAttributesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeAccountAttributesResult describeAccountAttributes() { throw new UnsupportedOperationException(); } @Override public DescribeAddressesResult describeAddresses(DescribeAddressesRequest describeAddressesRequest) { List<String> publicIps = describeAddressesRequest.getPublicIps(); try { List<AddressInfo> infos = jec2.describeAddresses(publicIps); if (publicIps != null && !publicIps.isEmpty()) { // アドレスが指定されている場合、指定されたものを抽出する // (Eucalyptusでは、アドレスを指定しても全てのアドレス情報が返される) List<AddressInfo> newInfos = new ArrayList<AddressInfo>(); for (AddressInfo info : infos) { if (publicIps.contains(info.getPublicIp())) { newInfos.add(info); } } infos = newInfos; } // 関連付けられていないアドレスのinstanceIdを空文字にする // (EC2では空文字になるが、Eucalyptusでは"available"が設定されて返される) for (int i = 0; i < infos.size(); i++) { AddressInfo info = infos.get(i); if ("available".equals(info.getInstanceId())) { infos.set(i, new AddressInfo(info.getPublicIp(), "")); } } List<Address> addresses = new AddressConverter().convert(infos); return new DescribeAddressesResult().withAddresses(addresses); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeAddressesResult describeAddresses() { return describeAddresses(new DescribeAddressesRequest()); } @Override public DescribeAvailabilityZonesResult describeAvailabilityZones( DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest) { try { List<com.xerox.amazonws.ec2.AvailabilityZone> zones = jec2 .describeAvailabilityZones(describeAvailabilityZonesRequest.getZoneNames()); List<AvailabilityZone> availabilityZones = new AvailabilityZoneConverter().convert(zones); return new DescribeAvailabilityZonesResult().withAvailabilityZones(availabilityZones); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeAvailabilityZonesResult describeAvailabilityZones() { return describeAvailabilityZones(new DescribeAvailabilityZonesRequest()); } @Override public DescribeBundleTasksResult describeBundleTasks(DescribeBundleTasksRequest describeBundleTasksRequest) { throw new UnsupportedOperationException(); } @Override public DescribeBundleTasksResult describeBundleTasks() { throw new UnsupportedOperationException(); } @Override public DescribeClassicLinkInstancesResult describeClassicLinkInstances( DescribeClassicLinkInstancesRequest describeClassicLinkInstancesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeClassicLinkInstancesResult describeClassicLinkInstances() { throw new UnsupportedOperationException(); } @Override public DescribeConversionTasksResult describeConversionTasks( DescribeConversionTasksRequest describeConversionTasksRequest) { throw new UnsupportedOperationException(); } @Override public DescribeConversionTasksResult describeConversionTasks() { throw new UnsupportedOperationException(); } @Override public DescribeCustomerGatewaysResult describeCustomerGateways( DescribeCustomerGatewaysRequest describeCustomerGatewaysRequest) { throw new UnsupportedOperationException(); } @Override public DescribeCustomerGatewaysResult describeCustomerGateways() { throw new UnsupportedOperationException(); } @Override public DescribeDhcpOptionsResult describeDhcpOptions(DescribeDhcpOptionsRequest describeDhcpOptionsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeDhcpOptionsResult describeDhcpOptions() { throw new UnsupportedOperationException(); } @Override public DescribeExportTasksResult describeExportTasks(DescribeExportTasksRequest describeExportTasksRequest) { throw new UnsupportedOperationException(); } @Override public DescribeExportTasksResult describeExportTasks() { throw new UnsupportedOperationException(); } @Override public DescribeFlowLogsResult describeFlowLogs(DescribeFlowLogsRequest describeFlowLogsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeFlowLogsResult describeFlowLogs() { throw new UnsupportedOperationException(); } @Override public DescribeHostReservationOfferingsResult describeHostReservationOfferings( DescribeHostReservationOfferingsRequest describeHostReservationOfferingsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeHostReservationsResult describeHostReservations( DescribeHostReservationsRequest describeHostReservationsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeHostsResult describeHosts(DescribeHostsRequest describeHostsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeHostsResult describeHosts() { throw new UnsupportedOperationException(); } @Override public DescribeIdFormatResult describeIdFormat(DescribeIdFormatRequest describeIdFormatRequest) { throw new UnsupportedOperationException(); } @Override public DescribeIdFormatResult describeIdFormat() { throw new UnsupportedOperationException(); } @Override public DescribeIdentityIdFormatResult describeIdentityIdFormat( DescribeIdentityIdFormatRequest describeIdentityIdFormatRequest) { throw new UnsupportedOperationException(); } @Override public DescribeImageAttributeResult describeImageAttribute( DescribeImageAttributeRequest describeImageAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeImagesResult describeImages(DescribeImagesRequest describeImagesRequest) { try { List<ImageDescription> descriptions = jec2.describeImages(describeImagesRequest.getImageIds(), describeImagesRequest.getOwners(), describeImagesRequest.getExecutableUsers(), null); List<Image> images = new ImageConverter().convert(descriptions); return new DescribeImagesResult().withImages(images); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeImagesResult describeImages() { return describeImages(new DescribeImagesRequest()); } @Override public DescribeImportImageTasksResult describeImportImageTasks( DescribeImportImageTasksRequest describeImportImageTasksRequest) { throw new UnsupportedOperationException(); } @Override public DescribeImportImageTasksResult describeImportImageTasks() { throw new UnsupportedOperationException(); } @Override public DescribeImportSnapshotTasksResult describeImportSnapshotTasks( DescribeImportSnapshotTasksRequest describeImportSnapshotTasksRequest) { throw new UnsupportedOperationException(); } @Override public DescribeImportSnapshotTasksResult describeImportSnapshotTasks() { throw new UnsupportedOperationException(); } @Override public DescribeInstanceAttributeResult describeInstanceAttribute( DescribeInstanceAttributeRequest describeInstanceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeInstanceStatusResult describeInstanceStatus( DescribeInstanceStatusRequest describeInstanceStatusRequest) { throw new UnsupportedOperationException(); } @Override public DescribeInstanceStatusResult describeInstanceStatus() { throw new UnsupportedOperationException(); } @Override public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest) { try { List<ReservationDescription> descriptions = jec2.describeInstances(describeInstancesRequest .getInstanceIds()); List<Reservation> reservations = new ReservationConverter().convert(descriptions); return new DescribeInstancesResult().withReservations(reservations); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeInstancesResult describeInstances() { return describeInstances(new DescribeInstancesRequest()); } @Override public DescribeInternetGatewaysResult describeInternetGateways( DescribeInternetGatewaysRequest describeInternetGatewaysRequest) { throw new UnsupportedOperationException(); } @Override public DescribeInternetGatewaysResult describeInternetGateways() { throw new UnsupportedOperationException(); } @Override public DescribeKeyPairsResult describeKeyPairs(DescribeKeyPairsRequest describeKeyPairsRequest) { try { List<com.xerox.amazonws.ec2.KeyPairInfo> infos = jec2.describeKeyPairs(describeKeyPairsRequest .getKeyNames()); List<KeyPairInfo> keyPairs = new KeyPairInfoConverter().convert(infos); return new DescribeKeyPairsResult().withKeyPairs(keyPairs); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeKeyPairsResult describeKeyPairs() { return describeKeyPairs(new DescribeKeyPairsRequest()); } @Override public DescribeMovingAddressesResult describeMovingAddresses( DescribeMovingAddressesRequest describeMovingAddressesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeMovingAddressesResult describeMovingAddresses() { throw new UnsupportedOperationException(); } @Override public DescribeNatGatewaysResult describeNatGateways(DescribeNatGatewaysRequest describeNatGatewaysRequest) { throw new UnsupportedOperationException(); } @Override public DescribeNetworkAclsResult describeNetworkAcls(DescribeNetworkAclsRequest describeNetworkAclsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeNetworkAclsResult describeNetworkAcls() { throw new UnsupportedOperationException(); } @Override public DescribeNetworkInterfaceAttributeResult describeNetworkInterfaceAttribute( DescribeNetworkInterfaceAttributeRequest describeNetworkInterfaceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeNetworkInterfacesResult describeNetworkInterfaces( DescribeNetworkInterfacesRequest describeNetworkInterfacesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeNetworkInterfacesResult describeNetworkInterfaces() { throw new UnsupportedOperationException(); } @Override public DescribePlacementGroupsResult describePlacementGroups( DescribePlacementGroupsRequest describePlacementGroupsRequest) { throw new UnsupportedOperationException(); } @Override public DescribePlacementGroupsResult describePlacementGroups() { throw new UnsupportedOperationException(); } @Override public DescribePrefixListsResult describePrefixLists(DescribePrefixListsRequest describePrefixListsRequest) { throw new UnsupportedOperationException(); } @Override public DescribePrefixListsResult describePrefixLists() { throw new UnsupportedOperationException(); } @Override public DescribeRegionsResult describeRegions(DescribeRegionsRequest describeRegionsRequest) { try { List<RegionInfo> infos = jec2.describeRegions(describeRegionsRequest.getRegionNames()); List<Region> regions = new RegionConverter().convert(infos); return new DescribeRegionsResult().withRegions(regions); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeRegionsResult describeRegions() { return describeRegions(new DescribeRegionsRequest()); } @Override public DescribeReservedInstancesResult describeReservedInstances( DescribeReservedInstancesRequest describeReservedInstancesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesResult describeReservedInstances() { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesListingsResult describeReservedInstancesListings( DescribeReservedInstancesListingsRequest describeReservedInstancesListingsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesListingsResult describeReservedInstancesListings() { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications( DescribeReservedInstancesModificationsRequest describeReservedInstancesModificationsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesModificationsResult describeReservedInstancesModifications() { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings( DescribeReservedInstancesOfferingsRequest describeReservedInstancesOfferingsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeReservedInstancesOfferingsResult describeReservedInstancesOfferings() { throw new UnsupportedOperationException(); } @Override public DescribeRouteTablesResult describeRouteTables(DescribeRouteTablesRequest describeRouteTablesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeRouteTablesResult describeRouteTables() { throw new UnsupportedOperationException(); } @Override public DescribeScheduledInstanceAvailabilityResult describeScheduledInstanceAvailability( DescribeScheduledInstanceAvailabilityRequest describeScheduledInstanceAvailabilityRequest) { throw new UnsupportedOperationException(); } @Override public DescribeScheduledInstancesResult describeScheduledInstances( DescribeScheduledInstancesRequest describeScheduledInstancesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSecurityGroupReferencesResult describeSecurityGroupReferences( DescribeSecurityGroupReferencesRequest describeSecurityGroupReferencesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSecurityGroupsResult describeSecurityGroups( DescribeSecurityGroupsRequest describeSecurityGroupsRequest) { try { List<GroupDescription> descriptions = jec2.describeSecurityGroups(describeSecurityGroupsRequest .getGroupNames()); List<SecurityGroup> securityGroups = new SecurityGroupConverter().convert(descriptions); return new DescribeSecurityGroupsResult().withSecurityGroups(securityGroups); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeSecurityGroupsResult describeSecurityGroups() { return new DescribeSecurityGroupsResult(); } @Override public DescribeSnapshotAttributeResult describeSnapshotAttribute( DescribeSnapshotAttributeRequest describeSnapshotAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSnapshotsResult describeSnapshots(DescribeSnapshotsRequest describeSnapshotsRequest) { try { List<SnapshotInfo> infos = jec2.describeSnapshots(describeSnapshotsRequest.getSnapshotIds()); List<Snapshot> snapshots = new SnapshotConverter().convert(infos); return new DescribeSnapshotsResult().withSnapshots(snapshots); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeSnapshotsResult describeSnapshots() { return describeSnapshots(new DescribeSnapshotsRequest()); } @Override public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription( DescribeSpotDatafeedSubscriptionRequest describeSpotDatafeedSubscriptionRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotDatafeedSubscriptionResult describeSpotDatafeedSubscription() { throw new UnsupportedOperationException(); } @Override public DescribeSpotFleetInstancesResult describeSpotFleetInstances( DescribeSpotFleetInstancesRequest describeSpotFleetInstancesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotFleetRequestHistoryResult describeSpotFleetRequestHistory( DescribeSpotFleetRequestHistoryRequest describeSpotFleetRequestHistoryRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotFleetRequestsResult describeSpotFleetRequests( DescribeSpotFleetRequestsRequest describeSpotFleetRequestsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotFleetRequestsResult describeSpotFleetRequests() { throw new UnsupportedOperationException(); } @Override public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests( DescribeSpotInstanceRequestsRequest describeSpotInstanceRequestsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests() { throw new UnsupportedOperationException(); } @Override public DescribeSpotPriceHistoryResult describeSpotPriceHistory( DescribeSpotPriceHistoryRequest describeSpotPriceHistoryRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSpotPriceHistoryResult describeSpotPriceHistory() { throw new UnsupportedOperationException(); } @Override public DescribeStaleSecurityGroupsResult describeStaleSecurityGroups( DescribeStaleSecurityGroupsRequest describeStaleSecurityGroupsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest describeSubnetsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeSubnetsResult describeSubnets() { throw new UnsupportedOperationException(); } @Override public DescribeTagsResult describeTags(DescribeTagsRequest describeTagsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeTagsResult describeTags() { throw new UnsupportedOperationException(); } @Override public DescribeVolumeAttributeResult describeVolumeAttribute( DescribeVolumeAttributeRequest describeVolumeAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVolumeStatusResult describeVolumeStatus(DescribeVolumeStatusRequest describeVolumeStatusRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVolumeStatusResult describeVolumeStatus() { throw new UnsupportedOperationException(); } @Override public DescribeVolumesResult describeVolumes(DescribeVolumesRequest describeVolumesRequest) { try { List<VolumeInfo> infos = jec2.describeVolumes(describeVolumesRequest.getVolumeIds()); List<Volume> volumes = new VolumeConverter().convert(infos); return new DescribeVolumesResult().withVolumes(volumes); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DescribeVolumesResult describeVolumes() { return describeVolumes(new DescribeVolumesRequest()); } @Override public DescribeVpcAttributeResult describeVpcAttribute(DescribeVpcAttributeRequest describeVpcAttributeRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcClassicLinkResult describeVpcClassicLink( DescribeVpcClassicLinkRequest describeVpcClassicLinkRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcClassicLinkResult describeVpcClassicLink() { throw new UnsupportedOperationException(); } @Override public DescribeVpcClassicLinkDnsSupportResult describeVpcClassicLinkDnsSupport( DescribeVpcClassicLinkDnsSupportRequest describeVpcClassicLinkDnsSupportRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcEndpointServicesResult describeVpcEndpointServices( DescribeVpcEndpointServicesRequest describeVpcEndpointServicesRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcEndpointServicesResult describeVpcEndpointServices() { throw new UnsupportedOperationException(); } @Override public DescribeVpcEndpointsResult describeVpcEndpoints(DescribeVpcEndpointsRequest describeVpcEndpointsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcEndpointsResult describeVpcEndpoints() { throw new UnsupportedOperationException(); } @Override public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections( DescribeVpcPeeringConnectionsRequest describeVpcPeeringConnectionsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcPeeringConnectionsResult describeVpcPeeringConnections() { throw new UnsupportedOperationException(); } @Override public DescribeVpcsResult describeVpcs(DescribeVpcsRequest describeVpcsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpcsResult describeVpcs() { throw new UnsupportedOperationException(); } @Override public DescribeVpnConnectionsResult describeVpnConnections( DescribeVpnConnectionsRequest describeVpnConnectionsRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpnConnectionsResult describeVpnConnections() { throw new UnsupportedOperationException(); } @Override public DescribeVpnGatewaysResult describeVpnGateways(DescribeVpnGatewaysRequest describeVpnGatewaysRequest) { throw new UnsupportedOperationException(); } @Override public DescribeVpnGatewaysResult describeVpnGateways() { throw new UnsupportedOperationException(); } @Override public DetachClassicLinkVpcResult detachClassicLinkVpc(DetachClassicLinkVpcRequest detachClassicLinkVpcRequest) { throw new UnsupportedOperationException(); } @Override public DetachInternetGatewayResult detachInternetGateway(DetachInternetGatewayRequest detachInternetGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DetachNetworkInterfaceResult detachNetworkInterface( DetachNetworkInterfaceRequest detachNetworkInterfaceRequest) { throw new UnsupportedOperationException(); } @Override public DetachVolumeResult detachVolume(DetachVolumeRequest detachVolumeRequest) { // Deviceから先頭の /dev/ を除去する String device = detachVolumeRequest.getDevice(); if (device != null && device.startsWith("/dev/")) { device = device.substring("/dev/".length()); } boolean force = detachVolumeRequest.isForce() != null ? detachVolumeRequest.isForce().booleanValue() : false; try { AttachmentInfo info = jec2.detachVolume(detachVolumeRequest.getVolumeId(), detachVolumeRequest.getInstanceId(), device, force); VolumeAttachment attachment = new VolumeAttachmentConverter().convert(info); return new DetachVolumeResult().withAttachment(attachment); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DetachVpnGatewayResult detachVpnGateway(DetachVpnGatewayRequest detachVpnGatewayRequest) { throw new UnsupportedOperationException(); } @Override public DisableVgwRoutePropagationResult disableVgwRoutePropagation( DisableVgwRoutePropagationRequest disableVgwRoutePropagationRequest) { throw new UnsupportedOperationException(); } @Override public DisableVpcClassicLinkResult disableVpcClassicLink(DisableVpcClassicLinkRequest disableVpcClassicLinkRequest) { throw new UnsupportedOperationException(); } @Override public DisableVpcClassicLinkDnsSupportResult disableVpcClassicLinkDnsSupport( DisableVpcClassicLinkDnsSupportRequest disableVpcClassicLinkDnsSupportRequest) { throw new UnsupportedOperationException(); } @Override public DisassociateAddressResult disassociateAddress(DisassociateAddressRequest disassociateAddressRequest) { try { jec2.disassociateAddress(disassociateAddressRequest.getPublicIp()); return new DisassociateAddressResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public DisassociateRouteTableResult disassociateRouteTable( DisassociateRouteTableRequest disassociateRouteTableRequest) { throw new UnsupportedOperationException(); } @Override public EnableVgwRoutePropagationResult enableVgwRoutePropagation( EnableVgwRoutePropagationRequest enableVgwRoutePropagationRequest) { throw new UnsupportedOperationException(); } @Override public EnableVolumeIOResult enableVolumeIO(EnableVolumeIORequest enableVolumeIORequest) { throw new UnsupportedOperationException(); } @Override public EnableVpcClassicLinkResult enableVpcClassicLink(EnableVpcClassicLinkRequest enableVpcClassicLinkRequest) { throw new UnsupportedOperationException(); } @Override public EnableVpcClassicLinkDnsSupportResult enableVpcClassicLinkDnsSupport( EnableVpcClassicLinkDnsSupportRequest enableVpcClassicLinkDnsSupportRequest) { throw new UnsupportedOperationException(); } @Override public GetConsoleOutputResult getConsoleOutput(GetConsoleOutputRequest getConsoleOutputRequest) { throw new UnsupportedOperationException(); } @Override public GetConsoleScreenshotResult getConsoleScreenshot(GetConsoleScreenshotRequest getConsoleScreenshotRequest) { throw new UnsupportedOperationException(); } @Override public GetHostReservationPurchasePreviewResult getHostReservationPurchasePreview( GetHostReservationPurchasePreviewRequest getHostReservationPurchasePreviewRequest) { throw new UnsupportedOperationException(); } @Override public GetPasswordDataResult getPasswordData(GetPasswordDataRequest getPasswordDataRequest) { throw new UnsupportedOperationException(); } @Override public GetReservedInstancesExchangeQuoteResult getReservedInstancesExchangeQuote( GetReservedInstancesExchangeQuoteRequest getReservedInstancesExchangeQuoteRequest) { throw new UnsupportedOperationException(); } @Override public ImportImageResult importImage(ImportImageRequest importImageRequest) { throw new UnsupportedOperationException(); } @Override public ImportImageResult importImage() { throw new UnsupportedOperationException(); } @Override public ImportInstanceResult importInstance(ImportInstanceRequest importInstanceRequest) { throw new UnsupportedOperationException(); } @Override public ImportKeyPairResult importKeyPair(ImportKeyPairRequest importKeyPairRequest) { throw new UnsupportedOperationException(); } @Override public ImportSnapshotResult importSnapshot(ImportSnapshotRequest importSnapshotRequest) { throw new UnsupportedOperationException(); } @Override public ImportSnapshotResult importSnapshot() { throw new UnsupportedOperationException(); } @Override public ImportVolumeResult importVolume(ImportVolumeRequest importVolumeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyHostsResult modifyHosts(ModifyHostsRequest modifyHostsRequest) { throw new UnsupportedOperationException(); } @Override public ModifyIdFormatResult modifyIdFormat(ModifyIdFormatRequest modifyIdFormatRequest) { throw new UnsupportedOperationException(); } @Override public ModifyIdentityIdFormatResult modifyIdentityIdFormat( ModifyIdentityIdFormatRequest modifyIdentityIdFormatRequest) { throw new UnsupportedOperationException(); } @Override public ModifyImageAttributeResult modifyImageAttribute(ModifyImageAttributeRequest modifyImageAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyInstanceAttributeResult modifyInstanceAttribute( ModifyInstanceAttributeRequest modifyInstanceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyInstancePlacementResult modifyInstancePlacement( ModifyInstancePlacementRequest modifyInstancePlacementRequest) { throw new UnsupportedOperationException(); } @Override public ModifyNetworkInterfaceAttributeResult modifyNetworkInterfaceAttribute( ModifyNetworkInterfaceAttributeRequest modifyNetworkInterfaceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyReservedInstancesResult modifyReservedInstances( ModifyReservedInstancesRequest modifyReservedInstancesRequest) { throw new UnsupportedOperationException(); } @Override public ModifySnapshotAttributeResult modifySnapshotAttribute( ModifySnapshotAttributeRequest modifySnapshotAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifySpotFleetRequestResult modifySpotFleetRequest( ModifySpotFleetRequestRequest modifySpotFleetRequestRequest) { throw new UnsupportedOperationException(); } @Override public ModifySubnetAttributeResult modifySubnetAttribute(ModifySubnetAttributeRequest modifySubnetAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyVolumeAttributeResult modifyVolumeAttribute(ModifyVolumeAttributeRequest modifyVolumeAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyVpcAttributeResult modifyVpcAttribute(ModifyVpcAttributeRequest modifyVpcAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ModifyVpcEndpointResult modifyVpcEndpoint(ModifyVpcEndpointRequest modifyVpcEndpointRequest) { throw new UnsupportedOperationException(); } @Override public ModifyVpcPeeringConnectionOptionsResult modifyVpcPeeringConnectionOptions( ModifyVpcPeeringConnectionOptionsRequest modifyVpcPeeringConnectionOptionsRequest) { throw new UnsupportedOperationException(); } @Override public MonitorInstancesResult monitorInstances(MonitorInstancesRequest monitorInstancesRequest) { throw new UnsupportedOperationException(); } @Override public MoveAddressToVpcResult moveAddressToVpc(MoveAddressToVpcRequest moveAddressToVpcRequest) { throw new UnsupportedOperationException(); } @Override public PurchaseHostReservationResult purchaseHostReservation( PurchaseHostReservationRequest purchaseHostReservationRequest) { throw new UnsupportedOperationException(); } @Override public PurchaseReservedInstancesOfferingResult purchaseReservedInstancesOffering( PurchaseReservedInstancesOfferingRequest purchaseReservedInstancesOfferingRequest) { throw new UnsupportedOperationException(); } @Override public PurchaseScheduledInstancesResult purchaseScheduledInstances( PurchaseScheduledInstancesRequest purchaseScheduledInstancesRequest) { throw new UnsupportedOperationException(); } @Override public RebootInstancesResult rebootInstances(RebootInstancesRequest rebootInstancesRequest) { throw new UnsupportedOperationException(); } @Override public RegisterImageResult registerImage(RegisterImageRequest registerImageRequest) { throw new UnsupportedOperationException(); } @Override public RejectVpcPeeringConnectionResult rejectVpcPeeringConnection( RejectVpcPeeringConnectionRequest rejectVpcPeeringConnectionRequest) { throw new UnsupportedOperationException(); } @Override public ReleaseAddressResult releaseAddress(ReleaseAddressRequest releaseAddressRequest) { try { jec2.releaseAddress(releaseAddressRequest.getPublicIp()); return new ReleaseAddressResult(); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public ReleaseHostsResult releaseHosts(ReleaseHostsRequest releaseHostsRequest) { throw new UnsupportedOperationException(); } @Override public ReplaceNetworkAclAssociationResult replaceNetworkAclAssociation( ReplaceNetworkAclAssociationRequest replaceNetworkAclAssociationRequest) { throw new UnsupportedOperationException(); } @Override public ReplaceNetworkAclEntryResult replaceNetworkAclEntry( ReplaceNetworkAclEntryRequest replaceNetworkAclEntryRequest) { throw new UnsupportedOperationException(); } @Override public ReplaceRouteResult replaceRoute(ReplaceRouteRequest replaceRouteRequest) { throw new UnsupportedOperationException(); } @Override public ReplaceRouteTableAssociationResult replaceRouteTableAssociation( ReplaceRouteTableAssociationRequest replaceRouteTableAssociationRequest) { throw new UnsupportedOperationException(); } @Override public ReportInstanceStatusResult reportInstanceStatus(ReportInstanceStatusRequest reportInstanceStatusRequest) { throw new UnsupportedOperationException(); } @Override public RequestSpotFleetResult requestSpotFleet(RequestSpotFleetRequest requestSpotFleetRequest) { throw new UnsupportedOperationException(); } @Override public RequestSpotInstancesResult requestSpotInstances(RequestSpotInstancesRequest requestSpotInstancesRequest) { throw new UnsupportedOperationException(); } @Override public ResetImageAttributeResult resetImageAttribute(ResetImageAttributeRequest resetImageAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ResetInstanceAttributeResult resetInstanceAttribute( ResetInstanceAttributeRequest resetInstanceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ResetNetworkInterfaceAttributeResult resetNetworkInterfaceAttribute( ResetNetworkInterfaceAttributeRequest resetNetworkInterfaceAttributeRequest) { throw new UnsupportedOperationException(); } @Override public ResetSnapshotAttributeResult resetSnapshotAttribute( ResetSnapshotAttributeRequest resetSnapshotAttributeRequest) { throw new UnsupportedOperationException(); } @Override public RestoreAddressToClassicResult restoreAddressToClassic( RestoreAddressToClassicRequest restoreAddressToClassicRequest) { throw new UnsupportedOperationException(); } @Override public RevokeSecurityGroupEgressResult revokeSecurityGroupEgress( RevokeSecurityGroupEgressRequest revokeSecurityGroupEgressRequest) { throw new UnsupportedOperationException(); } @Override public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress( RevokeSecurityGroupIngressRequest revokeSecurityGroupIngressRequest) { throw new UnsupportedOperationException(); } @Override public RevokeSecurityGroupIngressResult revokeSecurityGroupIngress() { throw new UnsupportedOperationException(); } @Override public RunInstancesResult runInstances(RunInstancesRequest runInstancesRequest) { // InstanceType InstanceType type = InstanceType.getTypeFromString(runInstancesRequest.getInstanceType()); // AvailabilityZone String availabilityZone = null; if (runInstancesRequest.getPlacement() != null) { availabilityZone = runInstancesRequest.getPlacement().getAvailabilityZone(); } // UserDataをデコード String userData = runInstancesRequest.getUserData(); if (userData != null) { userData = new String(Base64.decodeBase64(userData.getBytes())); // バイト数が3の倍数になるように調整する int len = userData.getBytes().length; int mod = len % 3; if (mod != 0) { for (int i = 0; i < 3 - mod; i++) { userData += ';'; } } } try { ReservationDescription description = jec2.runInstances(runInstancesRequest.getImageId(), runInstancesRequest.getMinCount(), runInstancesRequest.getMaxCount(), runInstancesRequest.getSecurityGroups(), userData, runInstancesRequest.getKeyName(), true, type, availabilityZone, runInstancesRequest.getKernelId(), runInstancesRequest.getRamdiskId(), null); Reservation reservation = new ReservationConverter().convert(description); return new RunInstancesResult().withReservation(reservation); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public RunScheduledInstancesResult runScheduledInstances(RunScheduledInstancesRequest runScheduledInstancesRequest) { throw new UnsupportedOperationException(); } @Override public StartInstancesResult startInstances(StartInstancesRequest startInstancesRequest) { throw new UnsupportedOperationException(); } @Override public StopInstancesResult stopInstances(StopInstancesRequest stopInstancesRequest) { throw new UnsupportedOperationException(); } @Override public TerminateInstancesResult terminateInstances(TerminateInstancesRequest terminateInstancesRequest) { try { List<TerminatingInstanceDescription> descriptions = jec2.terminateInstances(terminateInstancesRequest .getInstanceIds()); List<InstanceStateChange> terminatingInstances = new InstanceStateChangeTerminateConverter() .convert(descriptions); return new TerminateInstancesResult().withTerminatingInstances(terminatingInstances); } catch (EC2Exception e) { throw new AmazonClientException(e); } } @Override public UnassignPrivateIpAddressesResult unassignPrivateIpAddresses( UnassignPrivateIpAddressesRequest unassignPrivateIpAddressesRequest) { throw new UnsupportedOperationException(); } @Override public UnmonitorInstancesResult unmonitorInstances(UnmonitorInstancesRequest unmonitorInstancesRequest) { throw new UnsupportedOperationException(); } @Override public <X extends AmazonWebServiceRequest> DryRunResult<X> dryRun(DryRunSupportedRequest<X> request) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException(); } @Override public void shutdown() { } @Override public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return null; } @Override public AmazonEC2Waiters waiters() { return null; } }