Class: Fog::Compute::Tenderloin::Real
- Inherits:
-
Object
- Object
- Fog::Compute::Tenderloin::Real
- Defined in:
- lib/fog/tenderloin/compute.rb,
lib/fog/tenderloin/requests/compute/get_vm.rb,
lib/fog/tenderloin/requests/compute/stop_vm.rb,
lib/fog/tenderloin/requests/compute/list_vms.rb,
lib/fog/tenderloin/requests/compute/start_vm.rb,
lib/fog/tenderloin/requests/compute/destroy_vm.rb
Instance Method Summary collapse
- #destroy_vm(id) ⇒ Object
- #get_vm(id) ⇒ Object
-
#initialize(options) ⇒ Real
constructor
A new instance of Real.
- #list_vms ⇒ Object
- #request(params, json_resp = false) ⇒ Object
- #start_vm(id) ⇒ Object
- #stop_vm(id) ⇒ Object
- #to_dotted_hash(source, target = {}, namespace = nil) ⇒ Object
Constructor Details
#initialize(options) ⇒ Real
Returns a new instance of Real.
35 36 37 38 |
# File 'lib/fog/tenderloin/compute.rb', line 35 def initialize() @vm_glob = [:loinfile_glob] || "**/*.loin" @loin_cmd = [:loin_cmd] || "loin" end |
Instance Method Details
#destroy_vm(id) ⇒ Object
6 7 8 |
# File 'lib/fog/tenderloin/requests/compute/destroy_vm.rb', line 6 def destroy_vm(id) request(['destroy', '-f', id]) end |
#get_vm(id) ⇒ Object
6 7 8 |
# File 'lib/fog/tenderloin/requests/compute/get_vm.rb', line 6 def get_vm(id) request(['jsondump', '-f', id], true).merge({:id => id}) end |
#list_vms ⇒ Object
6 7 8 |
# File 'lib/fog/tenderloin/requests/compute/list_vms.rb', line 6 def list_vms() Dir[@vm_glob] end |
#request(params, json_resp = false) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/fog/tenderloin/compute.rb', line 40 def request(params, json_resp=false) params = params.join(" ") if params.kind_of? Array ret = `#{@loin_cmd} #{params}` raise "Error running command:\n#{ret}" if $? != 0 if json_resp to_dotted_hash(Fog::JSON.decode(ret)) else ret end end |
#start_vm(id) ⇒ Object
6 7 8 |
# File 'lib/fog/tenderloin/requests/compute/start_vm.rb', line 6 def start_vm(id) request(['up', '-f', id]) end |
#stop_vm(id) ⇒ Object
6 7 8 |
# File 'lib/fog/tenderloin/requests/compute/stop_vm.rb', line 6 def stop_vm(id) request(['halt', '-f', id]) end |
#to_dotted_hash(source, target = {}, namespace = nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/fog/tenderloin/compute.rb', line 53 def to_dotted_hash(source, target = {}, namespace = nil) prefix = "#{namespace}." if namespace case source when Hash source.each do |key, value| to_dotted_hash(value, target, "#{prefix}#{key}") end when Array source.each_with_index do |value, index| to_dotted_hash(value, target, "#{prefix}#{index}") end else target[namespace] = source end target end |