import java.util.ArrayList;
import java.util.Properties;
import com.photon.phresco.aws.AWSAutoScaleHelper;
public class AutoScaleSample {
public static void main(String[] args) {
Properties props = PropertyLoader.loadProperties("AutoScaleSample");
AWSAutoScaleHelper autoScale = new AWSAutoScaleHelper();
autoScale.accessKey = props.getProperty("accessKey");
autoScale.secretKey = props.getProperty("secretKey");
autoScale.autoScaleName = props.getProperty("autoScaleName");
autoScale.instanceType = props.getProperty("instanceType");
autoScale.imageId = props.getProperty("imageId");
autoScale.securityGroup = props.getProperty("securityGroup");
autoScale.keyPair = props.getProperty("keyPair");
autoScale.availabilityZones = new ArrayList<String>();
String[] zones = props.getProperty("availabilityZones").split(",");
for(String zone : zones)
autoScale.availabilityZones.add(zone);
//autoScale.userData = props.getProperty("userData"); //TODO research this field reg. base64 encoding
autoScale.minSize = Integer.parseInt(props.getProperty("minSize"));
autoScale.maxSize = Integer.parseInt(props.getProperty("maxSize"));
//autoScale.desiredSize = props.getProperty("desiredSize");
//autoScale.loadBalancer = props.getProperty("loadBalancer");
autoScale.scaleUpStatistic = props.getProperty("scaleUpStatistic");
autoScale.scaleUpMetric = props.getProperty("scaleUpMetric");
autoScale.scaleUpNamespace = props.getProperty("scaleUpNamespace");
autoScale.scaleUpEvalPeriods = Integer.parseInt(props.getProperty("scaleUpEvalPeriods"));
autoScale.scaleUpPeriod = Integer.parseInt(props.getProperty("scaleUpPeriod"));
autoScale.scaleUpComparison = props.getProperty("scaleUpComparison");
autoScale.scaleUpThreshold = Double.parseDouble(props.getProperty("scaleUpThreshold"));
autoScale.scaleUpUnit = props.getProperty("scaleUpUnit");
autoScale.scaleUpAdjustmentType = props.getProperty("scaleUpAdjustmentType");
autoScale.scaleUpAdjustment = Integer.parseInt(props.getProperty("scaleUpAdjustment"));
autoScale.scaleUpCooldown = Integer.parseInt(props.getProperty("scaleUpCooldown"));
autoScale.scaleDownStatistic = props.getProperty("scaleDownStatistic");
autoScale.scaleDownMetric = props.getProperty("scaleDownMetric");
autoScale.scaleDownNamespace = props.getProperty("scaleDownNamespace");
autoScale.scaleDownEvalPeriods = Integer.parseInt(props.getProperty("scaleDownEvalPeriods"));
autoScale.scaleDownPeriod = Integer.parseInt(props.getProperty("scaleDownPeriod"));
autoScale.scaleDownComparison = props.getProperty("scaleDownComparison");
autoScale.scaleDownThreshold = Double.parseDouble(props.getProperty("scaleDownThreshold"));
autoScale.scaleDownUnit = props.getProperty("scaleDownUnit");
autoScale.scaleDownAdjustmentType = props.getProperty("scaleDownAdjustmentType");
autoScale.scaleDownAdjustment = Integer.parseInt(props.getProperty("scaleDownAdjustment"));
autoScale.scaleDownCooldown = Integer.parseInt(props.getProperty("scaleDownCooldown"));
autoScale.setupAutoScaling();
System.out.println("Successfully set up auto scaling [" + autoScale.autoScaleName + "].");
}
}