attach_volume(server_id, volume_id, device)
click to toggle source
def attach_volume(server_id, volume_id, device)
data = {
'volumeAttachment' => {
'volumeId' => volume_id,
'device' => device
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [200],
:method => 'POST',
:path => "servers/#{server_id}/os-volume_attachments"
)
end
change_server_password(server_id, password)
click to toggle source
def change_server_password(server_id, password)
data = {
'changePassword' => {
'adminPass' => password
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
confirm_resize_server(server_id)
click to toggle source
def confirm_resize_server(server_id)
data = {
'confirmResize' => nil
}
request(
:body => Fog::JSON.encode(data),
:expects => [204],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
create_server(name, image_id, flavor_id, min_count, max_count, options = {})
click to toggle source
def create_server(name, image_id, flavor_id, min_count, max_count, options = {})
data = {
'server' => {
'name' => name,
'imageRef' => image_id,
'flavorRef' => flavor_id,
'minCount' => min_count,
'maxCount' => max_count
}
}
data['server']['OS-DCF:diskConfig'] = options[:disk_config] unless options[:disk_config].nil?
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers"
)
end
delete_attachment(server_id, volume_id)
click to toggle source
def delete_attachment(server_id, volume_id)
request(
:expects => [202],
:method => 'DELETE',
:path => "servers/#{server_id}/os-volume_attachments/#{volume_id}"
)
end
delete_server(server_id)
click to toggle source
def delete_server(server_id)
request(
:expects => [204],
:method => 'DELETE',
:path => "servers/#{server_id}"
)
end
get_attachment(server_id, volume_id)
click to toggle source
def get_attachment(server_id, volume_id)
request(
:expects => [200, 203, 300],
:method => 'GET',
:path => "servers/#{server_id}/os-volume_attachments/#{volume_id}"
)
end
get_flavor(flavor_id)
click to toggle source
def get_flavor(flavor_id)
request(
:expects => [200, 203],
:method => 'GET',
:path => "flavors/#{flavor_id}"
)
end
get_image(image_id)
click to toggle source
def get_image(image_id)
request(
:expects => [200, 203],
:method => 'GET',
:path => "images/#{image_id}"
)
end
get_server(server_id)
click to toggle source
def get_server(server_id)
request(
:expects => [200, 203, 300],
:method => 'GET',
:path => "servers/#{server_id}"
)
end
list_attachments(server_id)
click to toggle source
def list_attachments(server_id)
request(
:expects => [200, 203, 300],
:method => 'GET',
:path => "servers/#{server_id}/os-volume_attachments"
)
end
list_flavors()
click to toggle source
def list_flavors
request(
:expects => [200, 203],
:method => 'GET',
:path => 'flavors'
)
end
list_images()
click to toggle source
def list_images
request(
:expects => [200, 203],
:method => 'GET',
:path => 'images'
)
end
list_servers()
click to toggle source
def list_servers
request(
:expects => [200, 203, 300],
:method => 'GET',
:path => 'servers/detail'
)
end
reboot_server(server_id, type)
click to toggle source
def reboot_server(server_id, type)
data = {
'reboot' => {
'type' => type
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
rebuild_server(server_id, image_id)
click to toggle source
def rebuild_server(server_id, image_id)
data = {
'rebuild' => {
'imageRef' => image_id
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
request(params)
click to toggle source
def request(params)
begin
response = @connection.request(params.merge!({
:headers => {
'Content-Type' => 'application/json',
'X-Auth-Token' => @auth_token
}.merge!(params[:headers] || {}),
:host => @host,
:path => "#{@path}/#{params[:path]}"
}))
rescue Excon::Errors::NotFound => error
raise NotFound.slurp error
rescue Excon::Errors::BadRequest => error
raise BadRequest.slurp error
rescue Excon::Errors::InternalServerError => error
raise InternalServerError.slurp error
rescue Excon::Errors::HTTPStatusError => error
raise ServiceError.slurp error
end
unless response.body.empty?
response.body = Fog::JSON.decode(response.body)
end
response
end
resize_server(server_id, flavor_id)
click to toggle source
def resize_server(server_id, flavor_id)
data = {
'resize' => {
'flavorRef' => flavor_id
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
revert_resize_server(server_id)
click to toggle source
def revert_resize_server(server_id)
data = {
'revertResize' => nil
}
request(
:body => Fog::JSON.encode(data),
:expects => [202],
:method => 'POST',
:path => "servers/#{server_id}/action"
)
end
update_server(server_id, name)
click to toggle source
def update_server(server_id, name)
data = {
'server' => {
'name' => name
}
}
request(
:body => Fog::JSON.encode(data),
:expects => [200],
:method => 'PUT',
:path => "servers/#{server_id}"
)
end