Ejemplo n.º 1
0
 /**
  * Describe the launch configurations that have been created
  *
  * @param configNames the names of the configurations to show, null for all
  * @return A list of {@link LaunchConfiguration} configs
  * @throws AutoScalingException wraps checked exceptions
  */
 public List<LaunchConfiguration> describeLaunchConfigurations(List<String> configNames)
     throws AutoScalingException {
   Map<String, String> params = new HashMap<String, String>();
   if (configNames != null && configNames.size() > 0) {
     int i = 0;
     for (String name : configNames) {
       params.put("LaunchConfigurationNames.member." + (i + 1), name);
       i++;
     }
   }
   HttpGet method = new HttpGet();
   DescribeLaunchConfigurationsResponse response =
       makeRequestInt(
           method,
           "DescribeLaunchConfigurations",
           params,
           DescribeLaunchConfigurationsResponse.class);
   List<com.xerox.amazonws.typica.autoscale.jaxb.LaunchConfiguration> result =
       response.getDescribeLaunchConfigurationsResult().getLaunchConfigurations().getMembers();
   List<LaunchConfiguration> ret = new ArrayList<LaunchConfiguration>();
   for (com.xerox.amazonws.typica.autoscale.jaxb.LaunchConfiguration config : result) {
     LaunchConfiguration newConfig =
         new LaunchConfiguration(config.getLaunchConfigurationName(), config.getImageId(), 1, 1);
     newConfig.setKeyName(config.getKeyName());
     newConfig.setSecurityGroup(config.getSecurityGroups().getMembers());
     newConfig.setUserData(config.getUserData().getBytes());
     newConfig.setInstanceType(InstanceType.getTypeFromString(config.getInstanceType()));
     newConfig.setKernelId(config.getKernelId());
     newConfig.setRamdiskId(config.getRamdiskId());
     List<BlockDeviceMapping> mappings = new ArrayList<BlockDeviceMapping>();
     for (com.xerox.amazonws.typica.autoscale.jaxb.BlockDeviceMapping mapping :
         config.getBlockDeviceMappings().getMembers()) {
       mappings.add(new BlockDeviceMapping(mapping.getVirtualName(), mapping.getDeviceName()));
     }
     newConfig.setBlockDevicemappings(mappings);
     ret.add(newConfig);
   }
   return ret;
 }
Ejemplo n.º 2
0
  /**
   * Create a launch configuration
   *
   * @param config the launch configuration
   * @throws AutoScalingException wraps checked exceptions
   */
  public void createLaunchConfiguration(LaunchConfiguration config) throws AutoScalingException {
    Map<String, String> params = new HashMap<String, String>();
    params.put("LaunchConfigurationName", config.getConfigName());
    params.put("ImageId", config.getImageId());
    // params.put("MinCount", "" + config.getMinCount());
    // params.put("MaxCount", "" + config.getMaxCount());

    byte[] userData = config.getUserData();
    if (userData != null && userData.length > 0) {
      params.put("UserData", new String(Base64.encodeBase64(userData)));
    }
    params.put("AddressingType", "public");
    String keyName = config.getKeyName();
    if (keyName != null && !keyName.trim().equals("")) {
      params.put("KeyName", keyName);
    }

    if (config.getSecurityGroup() != null) {
      for (int i = 0; i < config.getSecurityGroup().size(); i++) {
        params.put("SecurityGroup." + (i + 1), config.getSecurityGroup().get(i));
      }
    }
    params.put("InstanceType", config.getInstanceType().getTypeId());
    if (config.getAvailabilityZone() != null && !config.getAvailabilityZone().trim().equals("")) {
      params.put("Placement.AvailabilityZone", config.getAvailabilityZone());
    }
    if (config.getKernelId() != null && !config.getKernelId().trim().equals("")) {
      params.put("KernelId", config.getKernelId());
    }
    if (config.getRamdiskId() != null && !config.getRamdiskId().trim().equals("")) {
      params.put("RamdiskId", config.getRamdiskId());
    }
    if (config.getBlockDevicemappings() != null) {
      for (int i = 0; i < config.getBlockDevicemappings().size(); i++) {
        BlockDeviceMapping bdm = config.getBlockDevicemappings().get(i);
        params.put("BlockDeviceMapping." + (i + 1) + ".VirtualName", bdm.getVirtualName());
        params.put("BlockDeviceMapping." + (i + 1) + ".DeviceName", bdm.getDeviceName());
      }
    }

    HttpGet method = new HttpGet();
    //	CreateLaunchConfigurationResponse response =
    makeRequestInt(
        method, "CreateLaunchConfiguration", params, CreateLaunchConfigurationResponse.class);
  }