blob: 0abc94f2ecee67ca1f4dc0afe601007ca8479c9e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.aws.ec2.compute.suppliers;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c3_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c3_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cc1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cc2_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cg1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.g2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.hi1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.hs1_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.i2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.i2_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.i2_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.i2_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_small;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m1_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m2_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t1_micro;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.jclouds.aws.ec2.compute.config.ClusterCompute;
import org.jclouds.compute.domain.Hardware;
import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
/**
*
* @author Adrian Cole
*/
@Singleton
public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
private final Set<String> ccAmis;
@Inject
public AWSEC2HardwareSupplier(@ClusterCompute Set<String> ccAmis) {
this.ccAmis = ccAmis;
}
@Override
public Set<? extends Hardware> get() {
Builder<Hardware> sizes = ImmutableSet.builder();
sizes.add(cc1_4xlarge().supportsImageIds(ccAmis).build());
sizes.add(cg1_4xlarge().supportsImageIds(ccAmis).build());
sizes.add(cc2_8xlarge().supportsImageIds(ccAmis).build());
sizes.add(hi1_4xlarge().supportsImageIds(ccAmis).build());
sizes.add(hs1_8xlarge().supportsImageIds(ccAmis).build());
sizes.add(g2_2xlarge().supportsImageIds(ccAmis).build());
sizes.add(t1_micro().build());
sizes.add(c1_medium().build());
sizes.add(c1_xlarge().build());
sizes.add(c3_xlarge().build());
sizes.add(c3_2xlarge().build());
sizes.add(c3_4xlarge().build());
sizes.add(c3_8xlarge().build());
sizes.add(i2_xlarge().build());
sizes.add(i2_2xlarge().build());
sizes.add(i2_4xlarge().build());
sizes.add(i2_8xlarge().build());
sizes.add(m1_large().build());
sizes.add(m1_small().build());
sizes.add(m1_medium().build());
sizes.add(m1_xlarge().build());
sizes.add(m2_xlarge().build());
sizes.add(m2_2xlarge().build());
sizes.add(m2_4xlarge().build());
sizes.add(m3_medium().build());
sizes.add(m3_large().build());
sizes.add(m3_xlarge().build());
sizes.add(m3_2xlarge().build());
return sizes.build();
}
}