Class: Fog::AWS::EC2::Server
- Inherits:
-
Model
- Object
- Model
- Fog::AWS::EC2::Server
show all
- Defined in:
- lib/fog/aws/models/ec2/server.rb
Instance Attribute Summary
Attributes inherited from Model
#connection
Instance Method Summary
collapse
Methods inherited from Model
#_dump, _load, aliases, attribute, attributes, #attributes, #collection, identity, #identity, #inspect, #merge_attributes, #new_record?, #reload, #requires, #wait_for
Constructor Details
#initialize(attributes) ⇒ Server
Returns a new instance of Server.
26
27
28
29
|
# File 'lib/fog/aws/models/ec2/server.rb', line 26
def initialize(attributes)
@groups ||= ["default"]
super
end
|
Instance Method Details
#addresses ⇒ Object
31
32
33
34
35
|
# File 'lib/fog/aws/models/ec2/server.rb', line 31
def addresses
requires :id
connection.addresses(:server => self)
end
|
#destroy ⇒ Object
37
38
39
40
41
42
|
# File 'lib/fog/aws/models/ec2/server.rb', line 37
def destroy
requires :id
connection.terminate_instances(@id)
true
end
|
#flavor ⇒ Object
60
61
62
|
# File 'lib/fog/aws/models/ec2/server.rb', line 60
def flavor
@flavor || connection.flavors.all.detect {|flavor| flavor.id == @flavor_id}
end
|
#flavor=(new_flavor) ⇒ Object
56
57
58
|
# File 'lib/fog/aws/models/ec2/server.rb', line 56
def flavor=(new_flavor)
@flavor = new_flavor
end
|
#flavor_id ⇒ Object
def security_group
connection.security_groups.all(@group_id)
end
def security_group=(new_security_group)
@group_id = new_security_group.name
end
52
53
54
|
# File 'lib/fog/aws/models/ec2/server.rb', line 52
def flavor_id
@flavor && @flavor.id || 'm1.small'
end
|
#key_pair ⇒ Object
64
65
66
67
68
|
# File 'lib/fog/aws/models/ec2/server.rb', line 64
def key_pair
requires :key_name
connection.keypairs.all(@key_name).first
end
|
#key_pair=(new_keypair) ⇒ Object
70
71
72
|
# File 'lib/fog/aws/models/ec2/server.rb', line 70
def key_pair=(new_keypair)
@key_name = new_keypair.name
end
|
#monitoring=(new_monitoring) ⇒ Object
74
75
76
77
78
79
80
|
# File 'lib/fog/aws/models/ec2/server.rb', line 74
def monitoring=(new_monitoring)
if new_monitoring.is_a?(Hash)
@monitoring = new_monitoring['state']
else
@monitoring = new_monitoring
end
end
|
#placement=(new_placement) ⇒ Object
82
83
84
85
86
87
88
|
# File 'lib/fog/aws/models/ec2/server.rb', line 82
def placement=(new_placement)
if new_placement.is_a?(Hash)
@availability_zone = new_placement['availabilityZone']
else
@availability_zone = new_placement
end
end
|
#ready? ⇒ Boolean
90
91
92
|
# File 'lib/fog/aws/models/ec2/server.rb', line 90
def ready?
@state == 'running'
end
|
#reboot ⇒ Object
94
95
96
97
98
|
# File 'lib/fog/aws/models/ec2/server.rb', line 94
def reboot
requires :id
connection.reboot_instances(@id)
true
end
|
#save ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/fog/aws/models/ec2/server.rb', line 100
def save
requires :image_id
options = {'InstanceType' => flavor}
if @availability_zone
options['Placement.AvailabilityZone'] = @availability_zone
end
unless @groups.empty?
options.merge!(AWS.indexed_param("SecurityGroup", @groups))
end
if @kernel_id
options['KernelId'] = @kernel_id
end
if @key_name
options['KeyName'] = @key_name
end
if @monitoring
options['Monitoring.Enabled'] = @monitoring
end
if @ramdisk_id
options['RamdiskId'] = @ramdisk_id
end
if @user_data
options['UserData'] = @user_data
end
data = connection.run_instances(@image_id, 1, 1, options)
merge_attributes(data.body['instancesSet'].first)
true
end
|
#volumes ⇒ Object
130
131
132
133
134
|
# File 'lib/fog/aws/models/ec2/server.rb', line 130
def volumes
requires :id
connection.volumes(:server => self)
end
|