Ejemplo n.º 1
0
    def create_launch_config(lconfig_name,
                             image_id,
                             inst_type,
                             key_name,
                             security_groups,
                             spot_price=0,
                             user_data_file=None,
                             user_data=None,
                             block_dev_mappings=None,
                             ebs_optimized=False,
                             overwrite=False):

        existing_config = Cluster.get_launch_config(lconfig_name)
        if existing_config is not None:
            if overwrite:
                existing_config.delete()
                Cluster.log_info(
                    "Deleted launch config %s to overwrite new config",
                    lconfig_name)
            else:
                Cluster.log_error("Launch config %s already exists.",
                                  lconfig_name)
                raise Exception("Launch configuration already exists")

        auto_scale_conn = Cluster._autoscale()

        if user_data is None:
            if user_data_file is not None:
                with open(user_data_file, 'r') as udf:
                    user_data = udf.read()

        lconfig = LaunchConfiguration()
        lconfig.instance_type = inst_type
        lconfig.name = lconfig_name
        lconfig.image_id = image_id
        lconfig.key_name = key_name
        lconfig.security_groups = security_groups
        lconfig.user_data = user_data

        if spot_price > 0:
            lconfig.spot_price = spot_price

        if block_dev_mappings is not None:
            lconfig.block_device_mappings = block_dev_mappings

        if ebs_optimized:
            lconfig.ebs_optimized = True

        auto_scale_conn.create_launch_configuration(lconfig)
        Cluster.log_info("Created launch configuration %s", lconfig.name)
Ejemplo n.º 2
0
    def create_launch_config(lconfig_name, image_id, inst_type, key_name, security_groups,
                             spot_price=0,
                             user_data_file=None,
                             user_data=None,
                             block_dev_mappings=None,
                             ebs_optimized=False,
                             overwrite=False):

        existing_config = Cluster.get_launch_config(lconfig_name)
        if existing_config is not None:
            if overwrite:
                existing_config.delete()
                Cluster.log_info("Deleted launch config %s to overwrite new config", lconfig_name)
            else:
                Cluster.log_error("Launch config %s already exists.", lconfig_name)
                raise Exception("Launch configuration already exists")

        auto_scale_conn = Cluster._autoscale()

        if user_data is None:
            if user_data_file is not None:
                with open(user_data_file, 'r') as udf:
                    user_data = udf.read()

        lconfig = LaunchConfiguration()
        lconfig.instance_type = inst_type
        lconfig.name = lconfig_name
        lconfig.image_id = image_id
        lconfig.key_name = key_name
        lconfig.security_groups = security_groups
        lconfig.user_data = user_data

        if spot_price > 0:
            lconfig.spot_price = spot_price

        if block_dev_mappings is not None:
            lconfig.block_device_mappings = block_dev_mappings

        if ebs_optimized:
            lconfig.ebs_optimized = True

        auto_scale_conn.create_launch_configuration(lconfig)
        Cluster.log_info("Created launch configuration %s", lconfig.name)