XenserverのAPIをrubyで叩く xenapi.rb も便利だった
これの続きです。xenap.rbをrequireして、あとはxenserverのapiのdocumentをみればすんなりいけるよね。
ディスクの使用状況を取得するサンプル。
require 'xenapi' class Net::HTTP alias_method :old_initialize, :initialize def initialize(*args) old_initialize(*args) @ssl_context = OpenSSL::SSL::SSLContext.new @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE end end # first create a connection and login session = XenAPI::Session.new('https://xenserver.host.com') begin session.login_with_password('root', 'password') srs = session.SR.get_all srs.each {|sr| record = session.SR.get_record(sr) if record["type"] == "lvm" label = record["name_label"] physical = record["physical_size"].to_i / ( 1024*1024*1024) used = record["physical_utilisation"].to_i / ( 1024*1024*1024) virtual = record["virtual_allocation"].to_i / ( 1024*1024*1024) usage =(used * 100) / physical puts "name label: #{label}" puts "size: #{usage}%(#{used} GB used)" puts "usage: #{physical} GB" puts "virtual allocation: #{virtual} GB" end } ensure session.logout end
こんな感じで。
$ ruby foo.rb name label: Local storage size: 56%(1584 GB used) usage: 2786 GB virtual allocation: 996 GB