class Moob::IbmEServer

Public Class Methods

new(hostname, options = {}) click to toggle source
Calls superclass method Moob::BaseLom::new
# File lib/moob/ibmeserver.rb, line 5
def initialize hostname, options = {}
    super hostname, options
    @username ||= 'USERID'
    @password ||= 'PASSW0RD'
end

Public Instance Methods

authenticate() click to toggle source
# File lib/moob/ibmeserver.rb, line 11
def authenticate
    @session.handle_cookies nil

    home = @session.get ''
    raise ResponseError.new home unless home.status == 200

    auth = @session.post 'private/check_userlogin', {
        'userid' => @username,
        'passwd' => @password
    }
    raise ResponseError.new auth unless auth.status == 200

    init = @session.post 'private/start_menus', {
      'JUNK' => '1',
      'TIMEOUT' => '05'
    }
    raise ResponseError.new init unless init.status == 200

    return self
end
detect() click to toggle source
# File lib/moob/ibmeserver.rb, line 37
def detect
    begin
        home = @session.get 'private/userlogin.ssi'
        home.body =~ /Remote Supervisor Adapter/
    rescue
        false
    end
end
get_infos() click to toggle source
# File lib/moob/ibmeserver.rb, line 51
def get_infos
  page = @session.get 'private/vpd.ssi'
  raise ResponseError.new page unless page.status == 200

  infos = {}

  infos[:macs] = Hash[
    page.body.scan /<TR><TD[^>]*>MAC ([^:]*):<\/TD><TD[^>]*>([^<]*)<\/TD><\/TR>/
  ]

  infos[:type]   = grab page.body, 'Machine type'
  infos[:model]  = grab page.body, 'Machine model'
  infos[:serial] = grab page.body, 'Serial number'
  infos[:uuid]   = grab page.body, 'UUID'
end
infos() click to toggle source
# File lib/moob/ibmeserver.rb, line 33
def infos
  return JSON.pretty_generate get_infos
end
logout() click to toggle source
# File lib/moob/ibmeserver.rb, line 46
def logout
  page = @session.get 'private/logoff'
  raise ResponseError.new page unless page.status == 200
end

Private Instance Methods

grab(contents, name) click to toggle source
# File lib/moob/ibmeserver.rb, line 68
def grab contents, name
  if contents =~ /<TR><TD[^>]*>#{name}:<\/TD><TD[^>]*>([^<]*)<\/TD><\/TR>/
    return $1
  end
end