check_root_user(instance_id)
click to toggle source
def check_root_user(instance_id)
request(
:expects => 200,
:method => 'GET',
:path => "instances/#{instance_id}/root"
)
end
create_database(instance_id, name, options = {})
click to toggle source
def create_database(instance_id, name, options = {})
data = {
'databases' => [{
'name' => name,
'character_set' => options[:character_set],
'collate' => options[:collate]
}]
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'POST',
:path => "instances/#{instance_id}/databases"
)
end
create_instance(name, flavor_id, volume_size, options = {})
click to toggle source
def create_instance(name, flavor_id, volume_size, options = {})
data = {
'instance' => {
'name' => name,
'flavorRef' => flavor_id,
'volume' => {
'size' => volume_size
}
}
}
request(
:body => Fog::JSON.encode(data),
:expects => 200,
:method => 'POST',
:path => 'instances'
)
end
create_user(instance_id, name, password, options = {})
click to toggle source
def create_user(instance_id, name, password, options = {})
data = {
'users' => [{
'name' => name,
'password' => password,
'databases' => options[:databases]
}]
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'POST',
:path => "instances/#{instance_id}/users"
)
end
delete_database(instance_id, name)
click to toggle source
def delete_database(instance_id, name)
request(
:expects => 202,
:method => 'DELETE',
:path => "instances/#{instance_id}/databases/#{name}"
)
end
delete_instance(instance_id)
click to toggle source
def delete_instance(instance_id)
request(
:expects => 202,
:method => 'DELETE',
:path => "instances/#{instance_id}"
)
end
delete_user(instance_id, name)
click to toggle source
def delete_user(instance_id, name)
request(
:expects => 202,
:method => 'DELETE',
:path => "instances/#{instance_id}/users/#{name}"
)
end
enable_root_user(instance_id)
click to toggle source
def enable_root_user(instance_id)
request(
:expects => 200,
:method => 'POST',
:path => "instances/#{instance_id}/root"
)
end
get_flavor(flavor_id)
click to toggle source
def get_flavor(flavor_id)
request(
:expects => 200,
:method => 'GET',
:path => "flavors/#{flavor_id}"
)
end
get_instance(instance_id)
click to toggle source
def get_instance(instance_id)
request(
:expects => 200,
:method => 'GET',
:path => "instances/#{instance_id}"
)
end
list_databases(instance_id)
click to toggle source
def list_databases(instance_id)
request(
:expects => 200,
:method => 'GET',
:path => "instances/#{instance_id}/databases"
)
end
list_flavors()
click to toggle source
def list_flavors()
request(
:expects => 200,
:method => 'GET',
:path => 'flavors'
)
end
list_instances()
click to toggle source
def list_instances()
request(
:expects => 200,
:method => 'GET',
:path => 'instances'
)
end
list_users(instance_id)
click to toggle source
def list_users(instance_id)
request(
:expects => 200,
:method => 'GET',
:path => "instances/#{instance_id}/users"
)
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_instance(instance_id, flavor_id)
click to toggle source
def resize_instance(instance_id, flavor_id)
data = {
'resize' => {
'flavorRef' => flavor_id
}
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'POST',
:path => "instances/#{instance_id}/action"
)
end
resize_instance_volume(instance_id, volume_size)
click to toggle source
def resize_instance_volume(instance_id, volume_size)
data = {
'resize' => {
'volume' => {
'size' => volume_size
}
}
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'POST',
:path => "instances/#{instance_id}/action"
)
end
restart_instance(instance_id)
click to toggle source
def restart_instance(instance_id)
data = {
'restart' => {}
}
request(
:body => Fog::JSON.encode(data),
:expects => 202,
:method => 'POST',
:path => "instances/#{instance_id}/action"
)
end