Class: Deltacloud::Drivers::Digitalocean::DigitaloceanDriver
- Inherits:
-
BaseDriver
- Object
- BaseDriver
- Deltacloud::Drivers::Digitalocean::DigitaloceanDriver
show all
- Defined in:
- lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb
Defined Under Namespace
Classes: Client
Constant Summary
Constants inherited
from BaseDriver
BaseDriver::MEMBER_SHOW_METHODS, BaseDriver::STATE_MACHINE_OPTS
Instance Method Summary
collapse
-
#create_instance(credentials, image_id, opts = {}) ⇒ Object
-
#destroy_image(credentials, image_id) ⇒ Object
You can only destroy images you own.
-
#destroy_instance(credentials, instance_id) ⇒ Object
-
#images(credentials, opts = {}) ⇒ Object
By default images will return list of ‘all’ images available to launch.
-
#instance(credentials, opts = {}) ⇒ Object
-
#instances(credentials, opts = {}) ⇒ Object
-
#realms(credentials, opts = {}) ⇒ Object
-
#reboot_instance(credentials, instance_id) ⇒ Object
-
#start_instance(credentials, instance_id) ⇒ Object
-
#stop_instance(credentials, instance_id) ⇒ Object
Methods inherited from BaseDriver
#address, #api_provider, #blob, #bucket, #catched_exceptions_list, #configured_providers, constraints, define_hardware_profile, define_instance_states, driver_name, feature, features, #filter_hardware_profiles, #filter_on, #find_hardware_profile, #firewall, #hardware_profile, #hardware_profiles, hardware_profiles, #has_capability?, #has_feature?, has_feature?, #image, #instance_actions_for, #instance_state_machine, instance_state_machine, #key, #name, #realm, #storage_snapshot, #storage_volume, #supported_collections
Methods included from Exceptions
exception_from_status, exceptions, included, logger, #safely
Instance Method Details
#create_instance(credentials, image_id, opts = {}) ⇒ Object
171
172
173
174
175
176
177
178
179
180
181
182
183
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 171
def create_instance(credentials, image_id, opts={})
safely do
client = new_client(credentials)
args = { :image_id => image_id }
args.merge!(:region_id => opts[:realm_id]) if opts[:realm_id]
args.merge!(:size_id => opts[:hwp_id]) if opts[:hwp_id]
args.merge!(:name => opts[:name] || "inst#{Time.now.to_i}")
convert_instance(
credentials.user,
client.get("droplets/new", args)['droplet']
)
end
end
|
#destroy_image(credentials, image_id) ⇒ Object
You can only destroy images you own.
147
148
149
150
151
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 147
def destroy_image(credentials, image_id)
safely do
new_client(credentials).get('images/%s/destroy', image_id)
end
end
|
#destroy_instance(credentials, instance_id) ⇒ Object
185
186
187
188
189
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 185
def destroy_instance(credentials, instance_id)
safely do
new_client(credentials).get("droplets/#{instance_id}/destroy/")
end
end
|
#images(credentials, opts = {}) ⇒ Object
By default images will return list of ‘all’ images available to launch. With ‘owner_id’ you can filter them using ‘global’ and ‘my_images’ values to get less images.
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 126
def images(credentials, opts={})
unless opts[:id]
filter = opts[:owner_id] ? { :filter => opts[:owner_id] } : {}
img_arr = safely do
new_client(credentials).get('images', filter)['images'].map do |i|
convert_image(credentials, i)
end
end
filter_on( img_arr, :architecture, opts )
else
safely do
[convert_image(
credentials,
new_client(credentials).get('images/%s' % opts[:id])['image']
)]
end
end
end
|
#instance(credentials, opts = {}) ⇒ Object
162
163
164
165
166
167
168
169
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 162
def instance(credentials, opts={})
safely do
convert_instance(
credentials.user,
new_client(credentials).get("droplets/#{opts[:id]}")["droplet"]
)
end
end
|
#instances(credentials, opts = {}) ⇒ Object
153
154
155
156
157
158
159
160
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 153
def instances(credentials, opts={})
inst_arr = safely do
new_client(credentials).get('droplets')['droplets'].map do |i|
convert_instance(credentials.user, i)
end
end
filter_on inst_arr, :state, opts
end
|
#realms(credentials, opts = {}) ⇒ Object
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 108
def realms(credentials, opts={})
safely do
new_client(credentials).get('regions')['regions'].map do |r|
Realm.new(
:id => r['id'],
:name => r['name'],
:state => 'AVAILABLE',
:limit => :unlimited
)
end
end
end
|
#reboot_instance(credentials, instance_id) ⇒ Object
203
204
205
206
207
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 203
def reboot_instance(credentials, instance_id)
safely do
new_client(credentials).get("droplets/#{instance_id}/reboot/")
end
end
|
#start_instance(credentials, instance_id) ⇒ Object
197
198
199
200
201
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 197
def start_instance(credentials, instance_id)
safely do
new_client(credentials).get("droplets/#{instance_id}/power_on/")
end
end
|
#stop_instance(credentials, instance_id) ⇒ Object
191
192
193
194
195
|
# File 'lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb', line 191
def stop_instance(credentials, instance_id)
safely do
new_client(credentials).get("droplets/#{instance_id}/shutdown")
end
end
|