Class: AvstCloud::RackspaceServer

Inherits:
CloudServer show all
Defined in:
lib/avst-cloud/rackspace_server.rb

Constant Summary

Constants inherited from CloudServer

CloudServer::UNIMPLEMENTED

Instance Attribute Summary

Attributes inherited from CloudServer

#access_password, #access_user, #ip_address, #server, #server_name

Instance Method Summary collapse

Methods inherited from CloudServer

#bootstrap, #initialize, #post_provisioning_commands, #provision, #run_tasks, #status, #wait_for_state

Methods included from Logging

included, logger, #logger, logger=, mask_message, show_passwords=

Constructor Details

This class inherits a constructor from AvstCloud::CloudServer

Instance Method Details

#destroyObject



54
55
56
57
58
59
60
61
62
# File 'lib/avst-cloud/rackspace_server.rb', line 54

def destroy
    if @server
        logger.debug "Killing #{@server_name}"
        @server.destroy
        logger.debug "Server #{@server_name} destroyed...".green
    else
        raise "Server #{@server_name} does not exist!".red
    end
end

#startObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/avst-cloud/rackspace_server.rb', line 41

def start
    if @server
        logger.debug "Starting #{@server_name}"
        @server.reboot 'HARD'
        logger.debug "Waiting for ACTIVE state..."
        wait_for_state() {|serv| serv.ready?}
        logger.debug "[DONE]\n\n"
        logger.debug "Server #{@server_name} started...".green
    else
        raise "Server #{@server_name} does not exist!".red
    end
end

#stopObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/avst-cloud/rackspace_server.rb', line 20

def stop
    if @server
        logger.debug "Stopping #{@server_name}"
        shutdown_command = AvstCloud::SshCommandTask.new(['shutdown -h now'])
        begin
            run_tasks([AvstCloud::WaitUntilReady.new, shutdown_command])
        rescue IOError => e
            logger.debug "Connection closed #{e.message}"
            unless e.message == "closed stream"
                raise "Error while shutting down server. Expected Connection closed. Got #{e.message}"
            end
        end
        logger.debug "Waiting for SHUTOFF state..."
        wait_for_state() {|serv| serv.state == 'SHUTOFF'}
        logger.debug "[DONE]\n\n"
        logger.debug "Server #{@server_name} stopped...".green
    else
        raise "Server #{@server_name} does not exist!".red
    end
end