class ProxmoxRb::QemuKvm
Public Class Methods
new(ticket, node, id)
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 3 def initialize(ticket, node, id) @node = node @csrf = ticket.csrf @id = id @ip = ticket.host @ticket = ticket.ticket @headers = { 'Cookie' => "PVEAuthCookie=#{@ticket}", "CSRFPreventionToken" => @csrf } end
Public Instance Methods
config()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 12 def config http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE @qemu ||= http.get('/api2/json/nodes/' + @node + '/' + @id + '/config', @headers).body JSON.parse( @qemu )['data'] end
delete()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 36 def delete puts "[unlinking] #{@id}" http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE req = Net::HTTP::Delete.new('/api2/json/nodes/' + @node + '/' + @id, @headers) resp = http.request(req) puts resp.body end
delete_snapshot(name)
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 77 def delete_snapshot(name) puts "[deleting snapshot #{name}] #{@id}" begin params = { snapname: name } http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Delete.new('/api2/json/nodes/' + @node + '/' + @id + '/snapshot/' + name, @headers) resp = http.request(request) puts resp rescue => e puts "retrying #{e}" sleep 1 retry end end
mac()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 28 def mac begin config['net0'].split('=')[1].split(',')[0] rescue '' end end
name()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 24 def name config['name'] rescue nil end
node()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 20 def node @node end
shutdown()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 46 def shutdown puts "[stopping] #{@id}" http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE resp = http.post('/api2/json/nodes/' + @node + '/' + @id + '/status/shutdown', nil, @headers) end
snapshot(name)
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 63 def snapshot(name) puts "[snapshotting] #{@id}" params = { snapname: name, vmstate: 1 } http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new('/api2/json/nodes/' + @node + '/' + @id + '/snapshot') request.add_field("Cookie", "PVEAuthCookie=#{@ticket}") request.add_field("CSRFPreventionToken", @csrf) request.set_form_data(params) resp = http.request(request) puts resp end
start()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 95 def start puts "[starting] #{@id}" http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE resp = http.post('/api2/json/nodes/' + @node + '/' + @id + '/status/start', nil, @headers) end
stop()
click to toggle source
# File lib/proxmox-rb/qemu_kvm.rb, line 54 def stop puts "[stopping] #{@id}" http = Net::HTTP.new(@ip, '8006') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE resp = http.post('/api2/json/nodes/' + @node + '/' + @id + '/status/stop', nil, @headers) end