cloudster 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -16,7 +16,8 @@ Create AWS EC2 resources as shown here:
16
16
 
17
17
  app_server = Cloudster::Ec2.new(:name => 'AppServer',
18
18
  :key_name => 'mykey',
19
- :image_id => 'ami_image_id'
19
+ :image_id => 'ami_image_id',
20
+ :instance_type => 't1.micro'
20
21
  )
21
22
  app_server_2 = Cloudster::Ec2.new(:name => 'AppServer',
22
23
  :key_name => 'mykey',
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.1.0
data/cloudster.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cloudster"
8
- s.version = "2.0.0"
8
+ s.version = "2.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Emil Soman"]
data/lib/cloudster/ec2.rb CHANGED
@@ -11,7 +11,8 @@ module Cloudster
11
11
  # ec2 = Cloudster::Ec2.new(
12
12
  # :name => 'AppServer',
13
13
  # :key_name => 'mykey',
14
- # :image_id => 'ami_image_id'
14
+ # :image_id => 'ami_image_id',
15
+ # :instance_type => 't1.micro'
15
16
  # )
16
17
  #
17
18
  # ==== Parameters
@@ -19,11 +20,13 @@ module Cloudster
19
20
  # * :name: String containing the name for the Ec2 resource
20
21
  # * :key_name: String containing the name of the keypair to be used for SSH
21
22
  # * :image_id: String containing the AMI image id to be used while creating the Ec2 resource
23
+ # * :instance_type: String containing instance type ( Example : t1.micro )
22
24
  def initialize(options = {})
23
25
  require_options(options, [:name, :key_name, :image_id])
24
26
  @name = options[:name]
25
27
  @key_name = options[:key_name]
26
28
  @image_id = options[:image_id]
29
+ @instance_type = options[:instance_type]
27
30
  end
28
31
 
29
32
  # Returns a Ruby hash version of the Cloud Formation template for the resource instance
@@ -32,14 +35,15 @@ module Cloudster
32
35
  # ec2 = Cloudster::Ec2.new(
33
36
  # :name => 'AppServer',
34
37
  # :key_name => 'mykey',
35
- # :image_id => 'ami_image_id'
38
+ # :image_id => 'ami_image_id',
39
+ # :instance_type => 't1.micro'
36
40
  # )
37
41
  # ec2.template
38
42
  #
39
43
  # ==== Returns
40
44
  # * Ruby hash version of the Cloud Formation template for the resource instance
41
45
  def template
42
- Ec2.template({:name =>@name, :key_name => @key_name, :image_id => @image_id})
46
+ Ec2.template({:name =>@name, :key_name => @key_name, :image_id => @image_id, :instance_type => @instance_type})
43
47
  end
44
48
 
45
49
  # Class method that returns a Ruby hash version of the Cloud Formation template
@@ -48,7 +52,8 @@ module Cloudster
48
52
  # template = Cloudster::Ec2.template(
49
53
  # :name => 'AppServer',
50
54
  # :key_name => 'mykey',
51
- # :image_id => 'ami_image_id'
55
+ # :image_id => 'ami_image_id',
56
+ # :instance_type => 't1.micro'
52
57
  # )
53
58
  #
54
59
  # ==== Parameters
@@ -57,20 +62,21 @@ module Cloudster
57
62
  # * :name: String containing the name for the Ec2 resource
58
63
  # * :key_name: String containing the name of the keypair to be used for SSH
59
64
  # * :image_id: String containing the AMI image id to be used while creating the Ec2 resource
65
+ # * :instance_type: String containing instance type ( Example : t1.micro )
60
66
  #
61
67
  # ==== Returns
62
68
  # * Ruby hash version of the Cloud Formation template
63
69
  def self.template(options = {})
64
70
  require_options(options, [:name, :key_name, :image_id])
71
+ properties = {}
72
+ properties.merge!({"KeyName" => options[:key_name], "ImageId" => options[:image_id]})
73
+ properties.merge!({"InstanceType" => options[:instance_type]}) unless options[:instance_type].nil?
65
74
  template = {'Resources' => {
66
75
  options[:name] => {
67
76
  'Type' => 'AWS::EC2::Instance',
68
- 'Properties' => {
69
- "KeyName" => options[:key_name],
70
- "ImageId" => options[:image_id]
71
- }
72
- }
77
+ 'Properties' => properties
73
78
  }
79
+ }
74
80
  }
75
81
  return template
76
82
  end
data/spec/ec2_spec.rb CHANGED
@@ -9,13 +9,13 @@ describe Cloudster::Ec2 do
9
9
  expect { Cloudster::Ec2.new() }.to raise_error(ArgumentError, 'Missing required argument: name,key_name,image_id')
10
10
  end
11
11
  it "should not raise argument error if all arguments are provided" do
12
- expect { Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', name: 'name') }.to_not raise_error
12
+ expect { Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', :name => 'name', :instance_type => 't1.micro') }.to_not raise_error
13
13
  end
14
14
  end
15
15
  describe '#template' do
16
16
  it "should return a ruby hash for the resource cloudformation template" do
17
- ec2 = Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', name: 'name')
18
- ec2.template.should == {'Resources' => {'name' => {'Type' => 'AWS::EC2::Instance', 'Properties' => {"KeyName" => 'testkey', "ImageId" => 'image_id'} }}}
17
+ ec2 = Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', :name => 'name', :instance_type => 't1.micro' )
18
+ ec2.template.should == {'Resources' => {'name' => {'Type' => 'AWS::EC2::Instance', 'Properties' => {"KeyName" => 'testkey', "ImageId" => 'image_id', "InstanceType" => 't1.micro'} }}}
19
19
  end
20
20
  end
21
21
  describe '.template' do
@@ -23,8 +23,8 @@ describe Cloudster::Ec2 do
23
23
  expect { Cloudster::Ec2.template() }.to raise_error(ArgumentError, 'Missing required argument: name,key_name,image_id')
24
24
  end
25
25
  it "should return a ruby hash for the resource cloudformation template" do
26
- hash = Cloudster::Ec2.template(:key_name => 'testkey', :image_id => 'image_id', name: 'name')
27
- hash.should == {'Resources' => {'name' => {'Type' => 'AWS::EC2::Instance', 'Properties' => {"KeyName" => 'testkey', "ImageId" => 'image_id'} }}}
26
+ hash = Cloudster::Ec2.template(:key_name => 'testkey', :image_id => 'image_id', :name => 'name', :instance_type => 't1.micro')
27
+ hash.should == {'Resources' => {'name' => {'Type' => 'AWS::EC2::Instance', 'Properties' => {"KeyName" => 'testkey', "ImageId" => 'image_id', "InstanceType" => 't1.micro'} }}}
28
28
  end
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
162
  version: '0'
163
163
  segments:
164
164
  - 0
165
- hash: -639543533
165
+ hash: -644821325
166
166
  required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements: