module Service
Constants
- DEFAULT_OPTIONS
-
CLI options
- FORCE
- JSON_FORMAT
- NUMBER
- PERIOD
- STATE
- STATE_STR
- TOP
Public Class Methods
Source
# File lib/opennebula/oneflow_client.rb, line 138 def self.build_json_action(perform, params = nil) body = {} body['perform'] = perform body['params'] = params if params action = {} action['action'] = body JSON.pretty_generate action end
Build a json specifying an action @param [String] perform action to be performed (e.g.: shutdown) @param [Hash, nil] params contains the params for the action @return [String] json representing the action
Source
# File lib/opennebula/oneflow_client.rb, line 255 def self.list_to_id(names, poolname) client = Service::Client.new resource_path = case poolname when 'SERVICE' then '/service' when 'SERVICE TEMPLATE' then '/service_template' end response = client.get(resource_path) if CloudClient.is_error?(response) return -1, "OpenNebula #{poolname} name not found," << ' use the ID instead' end pool = JSON.parse(response.body) result = names.split(',').collect do |name| if name.match(/^[0123456789]+$/) name.to_i else rc = name_to_id(name, pool, poolname) if rc.first == -1 return rc[0], rc[1] end rc[1] end end [0, result] end
Source
# File lib/opennebula/oneflow_client.rb, line 289 def self.list_to_id_desc(poolname) "Comma-separated list of OpenNebula #{poolname} names or ids" end
Source
# File lib/opennebula/oneflow_client.rb, line 240 def self.name_to_id(name, pool, ename) if pool['DOCUMENT_POOL']['DOCUMENT'].nil? return -1, "#{ename} named #{name} not found." end objects = pool['DOCUMENT_POOL']['DOCUMENT'].select {|object| object['NAME'] == name } return -1, "#{ename} named #{name} not found." unless objects.length>0 return -1, "There are multiple #{ename}s with name #{name}." if objects.length>1 result = objects.first['ID'] [0, result] end
Source
# File lib/opennebula/oneflow_client.rb, line 316 def self.perform_action(id, &block) exit_code = 0 response = block.call(id) if block_given? if CloudClient.is_error?(response) puts response exit_code = response.code.to_i end exit_code end
Perform an action on a resource @param [Integer] id resource id @param [Block] block action to be performed @return [Integer] exit_code
Source
# File lib/opennebula/oneflow_client.rb, line 297 def self.perform_actions(ids, &block) exit_code = 0 ids.each do |id| response = block.call(id) if block_given? if CloudClient.is_error?(response) puts response exit_code = response.code.to_i end end exit_code end
Perform an action on several resources @param [Array] ids resources ids @param [Block] block action to be performed @return [Integer] exit_code
Source
# File lib/opennebula/oneflow_client.rb, line 215 def self.rname_to_id(name, poolname) return 0, name.to_i if name.match(/^[0123456789]+$/) client = Service::Client.new resource_path = case poolname when 'SERVICE' then '/service' when 'SERVICE TEMPLATE' then '/service_template' end response = client.get(resource_path) if CloudClient.is_error?(response) return -1, "OpenNebula #{poolname} name not found," << ' use the ID instead' end pool = JSON.parse(response.body) name_to_id(name, pool, poolname) end
def self.rname_to_id(name, poolname, options)
Source
# File lib/opennebula/oneflow_client.rb, line 236 def self.rname_to_id_desc(poolname) "OpenNebula #{poolname} name or id" end
Source
# File lib/opennebula/oneflow_client.rb, line 130 def self.state_str(state_number) STATE_STR[state_number.to_i] end
Returns the string representation of the service state @param [String] state String number representing the state @return the state string