Beispiel #1
0
    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()