Пример #1
0
  private List<BlockDeviceMapping> getNewEphemeralDeviceMapping() {

    final List<BlockDeviceMapping> oldDeviceMapping = getAmiBlockDeviceMappings();

    final Set<String> occupiedDevices = new HashSet<String>();
    for (final BlockDeviceMapping mapping : oldDeviceMapping) {

      occupiedDevices.add(mapping.getDeviceName());
    }

    final List<String> available =
        new ArrayList<String>(
            Arrays.asList("ephemeral0", "ephemeral1", "ephemeral2", "ephemeral3"));

    final List<BlockDeviceMapping> newDeviceMapping = new ArrayList<BlockDeviceMapping>(4);
    for (char suffix = 'b'; suffix <= 'z' && !available.isEmpty(); suffix++) {

      final String deviceName = String.format("/dev/xvd%s", suffix);

      if (occupiedDevices.contains(deviceName)) continue;

      final BlockDeviceMapping newMapping =
          new BlockDeviceMapping().withDeviceName(deviceName).withVirtualName(available.get(0));

      newDeviceMapping.add(newMapping);
      available.remove(0);
    }

    return newDeviceMapping;
  }
Пример #2
0
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;

    if (obj instanceof BlockDeviceMapping == false) return false;
    BlockDeviceMapping other = (BlockDeviceMapping) obj;

    if (other.getVirtualName() == null ^ this.getVirtualName() == null) return false;
    if (other.getVirtualName() != null
        && other.getVirtualName().equals(this.getVirtualName()) == false) return false;
    if (other.getDeviceName() == null ^ this.getDeviceName() == null) return false;
    if (other.getDeviceName() != null
        && other.getDeviceName().equals(this.getDeviceName()) == false) return false;
    if (other.getEbs() == null ^ this.getEbs() == null) return false;
    if (other.getEbs() != null && other.getEbs().equals(this.getEbs()) == false) return false;
    if (other.getNoDevice() == null ^ this.getNoDevice() == null) return false;
    if (other.getNoDevice() != null && other.getNoDevice().equals(this.getNoDevice()) == false)
      return false;
    return true;
  }
  public Request<CreateImageRequest> marshall(CreateImageRequest createImageRequest) {

    if (createImageRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<CreateImageRequest> request =
        new DefaultRequest<CreateImageRequest>(createImageRequest, "AmazonEC2");
    request.addParameter("Action", "CreateImage");
    request.addParameter("Version", "2014-06-15");

    if (createImageRequest.getInstanceId() != null) {
      request.addParameter(
          "InstanceId", StringUtils.fromString(createImageRequest.getInstanceId()));
    }
    if (createImageRequest.getName() != null) {
      request.addParameter("Name", StringUtils.fromString(createImageRequest.getName()));
    }
    if (createImageRequest.getDescription() != null) {
      request.addParameter(
          "Description", StringUtils.fromString(createImageRequest.getDescription()));
    }
    if (createImageRequest.isNoReboot() != null) {
      request.addParameter("NoReboot", StringUtils.fromBoolean(createImageRequest.isNoReboot()));
    }

    java.util.List<BlockDeviceMapping> blockDeviceMappingsList =
        createImageRequest.getBlockDeviceMappings();
    int blockDeviceMappingsListIndex = 1;

    for (BlockDeviceMapping blockDeviceMappingsListValue : blockDeviceMappingsList) {
      BlockDeviceMapping blockDeviceMappingMember = blockDeviceMappingsListValue;
      if (blockDeviceMappingMember != null) {
        if (blockDeviceMappingMember.getVirtualName() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".VirtualName",
              StringUtils.fromString(blockDeviceMappingMember.getVirtualName()));
        }
        if (blockDeviceMappingMember.getDeviceName() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".DeviceName",
              StringUtils.fromString(blockDeviceMappingMember.getDeviceName()));
        }
        EbsBlockDevice ebsBlockDeviceEbs = blockDeviceMappingMember.getEbs();
        if (ebsBlockDeviceEbs != null) {
          if (ebsBlockDeviceEbs.getSnapshotId() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.SnapshotId",
                StringUtils.fromString(ebsBlockDeviceEbs.getSnapshotId()));
          }
          if (ebsBlockDeviceEbs.getVolumeSize() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.VolumeSize",
                StringUtils.fromInteger(ebsBlockDeviceEbs.getVolumeSize()));
          }
          if (ebsBlockDeviceEbs.isDeleteOnTermination() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.DeleteOnTermination",
                StringUtils.fromBoolean(ebsBlockDeviceEbs.isDeleteOnTermination()));
          }
          if (ebsBlockDeviceEbs.getVolumeType() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.VolumeType",
                StringUtils.fromString(ebsBlockDeviceEbs.getVolumeType()));
          }
          if (ebsBlockDeviceEbs.getIops() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.Iops",
                StringUtils.fromInteger(ebsBlockDeviceEbs.getIops()));
          }
          if (ebsBlockDeviceEbs.isEncrypted() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.Encrypted",
                StringUtils.fromBoolean(ebsBlockDeviceEbs.isEncrypted()));
          }
        }
        if (blockDeviceMappingMember.getNoDevice() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".NoDevice",
              StringUtils.fromString(blockDeviceMappingMember.getNoDevice()));
        }
      }

      blockDeviceMappingsListIndex++;
    }

    return request;
  }
  public Request<RegisterImageRequest> marshall(RegisterImageRequest registerImageRequest) {

    if (registerImageRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<RegisterImageRequest> request =
        new DefaultRequest<RegisterImageRequest>(registerImageRequest, "AmazonEC2");
    request.addParameter("Action", "RegisterImage");
    request.addParameter("Version", "2014-05-01");

    if (registerImageRequest.getImageLocation() != null) {
      request.addParameter(
          "ImageLocation", StringUtils.fromString(registerImageRequest.getImageLocation()));
    }
    if (registerImageRequest.getName() != null) {
      request.addParameter("Name", StringUtils.fromString(registerImageRequest.getName()));
    }
    if (registerImageRequest.getDescription() != null) {
      request.addParameter(
          "Description", StringUtils.fromString(registerImageRequest.getDescription()));
    }
    if (registerImageRequest.getArchitecture() != null) {
      request.addParameter(
          "Architecture", StringUtils.fromString(registerImageRequest.getArchitecture()));
    }
    if (registerImageRequest.getKernelId() != null) {
      request.addParameter("KernelId", StringUtils.fromString(registerImageRequest.getKernelId()));
    }
    if (registerImageRequest.getRamdiskId() != null) {
      request.addParameter(
          "RamdiskId", StringUtils.fromString(registerImageRequest.getRamdiskId()));
    }
    if (registerImageRequest.getRootDeviceName() != null) {
      request.addParameter(
          "RootDeviceName", StringUtils.fromString(registerImageRequest.getRootDeviceName()));
    }

    java.util.List<BlockDeviceMapping> blockDeviceMappingsList =
        registerImageRequest.getBlockDeviceMappings();
    int blockDeviceMappingsListIndex = 1;

    for (BlockDeviceMapping blockDeviceMappingsListValue : blockDeviceMappingsList) {
      BlockDeviceMapping blockDeviceMappingMember = blockDeviceMappingsListValue;
      if (blockDeviceMappingMember != null) {
        if (blockDeviceMappingMember.getVirtualName() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".VirtualName",
              StringUtils.fromString(blockDeviceMappingMember.getVirtualName()));
        }
        if (blockDeviceMappingMember.getDeviceName() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".DeviceName",
              StringUtils.fromString(blockDeviceMappingMember.getDeviceName()));
        }
        EbsBlockDevice ebsBlockDeviceEbs = blockDeviceMappingMember.getEbs();
        if (ebsBlockDeviceEbs != null) {
          if (ebsBlockDeviceEbs.getSnapshotId() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.SnapshotId",
                StringUtils.fromString(ebsBlockDeviceEbs.getSnapshotId()));
          }
          if (ebsBlockDeviceEbs.getVolumeSize() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.VolumeSize",
                StringUtils.fromInteger(ebsBlockDeviceEbs.getVolumeSize()));
          }
          if (ebsBlockDeviceEbs.isDeleteOnTermination() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.DeleteOnTermination",
                StringUtils.fromBoolean(ebsBlockDeviceEbs.isDeleteOnTermination()));
          }
          if (ebsBlockDeviceEbs.getVolumeType() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.VolumeType",
                StringUtils.fromString(ebsBlockDeviceEbs.getVolumeType()));
          }
          if (ebsBlockDeviceEbs.getIops() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.Iops",
                StringUtils.fromInteger(ebsBlockDeviceEbs.getIops()));
          }
          if (ebsBlockDeviceEbs.isEncrypted() != null) {
            request.addParameter(
                "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".Ebs.Encrypted",
                StringUtils.fromBoolean(ebsBlockDeviceEbs.isEncrypted()));
          }
        }
        if (blockDeviceMappingMember.getNoDevice() != null) {
          request.addParameter(
              "BlockDeviceMapping." + blockDeviceMappingsListIndex + ".NoDevice",
              StringUtils.fromString(blockDeviceMappingMember.getNoDevice()));
        }
      }

      blockDeviceMappingsListIndex++;
    }
    if (registerImageRequest.getVirtualizationType() != null) {
      request.addParameter(
          "VirtualizationType",
          StringUtils.fromString(registerImageRequest.getVirtualizationType()));
    }
    if (registerImageRequest.getSriovNetSupport() != null) {
      request.addParameter(
          "SriovNetSupport", StringUtils.fromString(registerImageRequest.getSriovNetSupport()));
    }

    return request;
  }