class OVH::Provisioner::APIObject::Vrack
Represent a VRack
Attributes
dedicated_servers[R]
description[R]
name[R]
tasks[R]
Public Instance Methods
add(api_object)
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 26 def add(api_object) path = path_from(api_object) ok, msg = parse_task(post(path, path => api_object.id)) "#{api_object.id}: #{ok ? 'ok' : 'failed'}\n #{msg}" end
remove(api_object)
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 32 def remove(api_object) path = "#{path_from(api_object)}/#{api_object.id}" ok, msg = parse_task(delete(path)) "#{api_object.id}: #{ok ? 'ok' : 'failed'}\n #{msg}" end
to_s()
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 38 def to_s "#{name}: #{id}#{" - #{description}" unless description.empty?}" \ "#{list_to_s(:dedicated_servers)}" \ "#{list_to_s(:tasks)}" end
Private Instance Methods
list_to_s(list_sym)
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 65 def list_to_s(list_sym) list = send(list_sym) return '' if list.nil? || list.empty? header = ["\n #{list_sym}:"] tail = list.map { |i| " #{i}" }.sort (header + tail).join("\n") end
parse_task(msg)
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 79 def parse_task(msg) return [false, msg] if msg.is_a?(String) method = /^[[:lower:]]+/.match(msg['function']).to_a.first [ true, "#{msg['status']} #{msg['serviceName']}.#{method}" \ "(#{msg['targetDomain']})" ] end
path_from(api_object)
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 74 def path_from(api_object) name = api_object.class.classname "#{name[0..0].downcase}#{name[1..-1]}" end
set_dedicated_server()
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 52 def set_dedicated_server @dedicated_servers = get('dedicatedServer') end
set_general()
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 46 def set_general general = get @name = general['name'] @description = general['description'] end
set_tasks()
click to toggle source
# File lib/ovh/provisioner/api_object/vrack.rb, line 56 def set_tasks tasks = get('task') futures = tasks.map { |t| future.get("task/#{t}") } @tasks = futures.map do |future| _ok, msg = parse_task(future.value) msg end end