class NCC::Client

Public Instance Methods

clouds(cloudname=nil) click to toggle source
# File lib/ncc/client.rb, line 55
def clouds(cloudname=nil)
    unless cloudname
        cloudnames = do_request :GET => "clouds"
        cloudnames.map do |cloudname|
            if cloudname.respond_to? :keys
                cloudname
            else
                do_request :GET => "clouds/#{cloudname}"
            end
        end
    else
        do_request :GET => "clouds/#{cloudname}"
    end
end
config_key() click to toggle source
# File lib/ncc/client.rb, line 27
def config_key
    'ncc'
end
console(cloud, id) click to toggle source
# File lib/ncc/client.rb, line 104
def console(cloud, id)
    do_request :GET => "clouds/#{cloud}/instances/#{id}/console"
end
create(cloud, attrs) click to toggle source
# File lib/ncc/client.rb, line 70
def create(cloud, attrs)
    do_request :POST => "clouds/#{cloud}/instances",
        :body => attrs
end
delete(cloud, attrs) click to toggle source
# File lib/ncc/client.rb, line 75
def delete(cloud, attrs)
    if attrs.has_key? :id
        do_request :DELETE => "clouds/#{cloud}/instances/#{attrs[:id]}"
    elsif attrs.has_key? :name
        # For now I have to do this--not optimal, should be in NCC-API
        instobj = find_by_name(cloud, attrs[:name])
        if instobj
            do_request :DELETE => "clouds/#{cloud}/instances/#{instobj['id']}"
        else
            raise "No instance found in cloud #{cloud} with name #{attrs[:name]}"
        end
    else
        raise "Need to delete instance by name or id"
    end
end
find_by_name(cloud, name) click to toggle source
# File lib/ncc/client.rb, line 91
def find_by_name(cloud, name)
    instobj = (list cloud).find { |i| i['name'] == name }
end
ignore_content_type() click to toggle source

ncc-api (probably due to nginx) returns bad content-types

# File lib/ncc/client.rb, line 32
def ignore_content_type
    true
end
info() click to toggle source
# File lib/ncc/client.rb, line 36
def info
    do_request :GET => ''
end
instance(cloud, id) click to toggle source
# File lib/ncc/client.rb, line 51
def instance(cloud, id)
    do_request :GET => "clouds/#{cloud}/instances/#{id}"
end
list(cloud=nil) click to toggle source
# File lib/ncc/client.rb, line 40
def list(cloud=nil)
    if cloud.nil?
        clouds = do_request "clouds"
        clouds.map do |c|
            list c
        end.flatten
    else
        do_request :GET => "clouds/#{cloud}/instances"
    end
end