Sha256: 48b78566db9f4b0661e5c700d4974be6874a063fdaf2a8c4418a0db611700fda
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
require 'json' class BuildCloud::LaunchConfiguration include ::BuildCloud::Component @@objects = [] def initialize ( fog_interfaces, log, options = {} ) @as = fog_interfaces[:as] @log = log @options = options @log.debug( options.inspect ) required_options(:id, :image_id, :key_name, :user_data, :instance_type) require_one_of(:security_groups, :security_group_names) end def create return if exists? @log.info( "Creating launch configuration #{@options[:id]}" ) options = @options.dup unless options[:security_groups] options[:security_groups] = [] options[:security_group_names].each do |sg| options[:security_groups] << BuildCloud::SecurityGroup.get_id_by_name( sg ) end options.delete(:security_group_names) end options[:user_data] = JSON.generate( @options[:user_data] ) launch_config = @as.configurations.new( options ) launch_config.save @log.debug( launch_config.inspect ) end def read @as.configurations.select { |lc| lc.id == @options[:id] }.first end alias_method :fog_object, :read def delete return unless exists? @log.info( "Deleting Launch Configuration #{@options[:id]}" ) fog_object.destroy end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
build-cloud-0.0.1 | lib/build-cloud/launchconfiguration.rb |