def create(self, ninsts, avzone, user_data, spot_price=0): if self.exists(): raise Exception("%s exists" % (self.debug_str(),)) # create a placement group placement_group = Cluster.create_placement_group(self.gname) if not placement_group: self.log_error("%s - Error creating placement group", self.debug_str()) raise Exception("Error creating placement group") # create a launch configuration Cluster.create_launch_config(self.gname, UserCluster.IMAGE_ID, UserCluster.INSTANCE_TYPE, UserCluster.KEY_NAME, UserCluster.SEC_GRPS, user_data=user_data, spot_price=spot_price) self.log_info("Launch configuration %s", self.gname) # create an autoscale group agrp = Cluster.create_autoscale_group(self.gname, self.gname, self.gname, ninsts, [avzone]) if agrp is None: self.log_error("%s - Error creating autoscale group", self.debug_str()) raise Exception("Error creating placement group") self.log_info("Autoscaling group %r", agrp) self.exists()