Class: ServerRegistryClient::ServerProcessor::V1

Inherits:
Base
  • Object
show all
Defined in:
lib/server-registry-client/server_processor/v1.rb

Instance Attribute Summary

Attributes inherited from Base

#api_version, #last_response, #server_registry_url_root

Instance Method Summary collapse

Constructor Details

#initialize(server_registry_url) ⇒ V1

Returns a new instance of V1.



4
5
6
7
# File 'lib/server-registry-client/server_processor/v1.rb', line 4

def initialize(server_registry_url)
	super
	self.api_version = "v1"
end

Instance Method Details

#add_server_to_categories(server, category_names) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/server-registry-client/server_processor/v1.rb', line 29

def add_server_to_categories(server, category_names)
	server_json_hash = server_to_json_hash(server)
	server_json_hash[:categories] = (category_names.kind_of?(Array) ? category_names : [category_names])

	server_json = jsonify(server_json_hash)

	make_web_request("/api/#{api_version}/servers", {
		:method => :post,
		:body => server_json
	}) do |response, response_body|
		unless response.success?
			raise ServerRegistryClient::ServerCommunicationError, "Server responded: #{print_typhoeus_response(response)}"
		end
	end
end

#get_all_serversObject



21
22
23
24
25
26
27
# File 'lib/server-registry-client/server_processor/v1.rb', line 21

def get_all_servers
	response_json = make_web_request("/api/#{api_version}/servers")
		
	return response_json.map do |server_json|
		server_from_json(server_json)
	end
end

#remove_server_from_category(server, category_name) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/server-registry-client/server_processor/v1.rb', line 45

def remove_server_from_category(server, category_name)
	server_name = server.hostname || server.ip_address
	server_removed = true

	make_web_request("/api/#{api_version}/category/#{category_name}/server/#{server_name}", {
		:method => :delete
	}) do |response, response_body|
		unless response.success?
			server_removed = false
		end
	end

	return server_removed
end

#remove_servers_like(server_to_match) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/server-registry-client/server_processor/v1.rb', line 60

def remove_servers_like(server_to_match)
	all_servers = get_all_servers

	servers_to_delete = all_servers.find_all do |server|
		server_to_match.matches?(server)	
	end

	servers_to_delete.each do |server|
		make_web_request("/api/#{api_version}/server/#{server.id}", {
			:method => :delete
		})
	end
end

#servers_in_category(category) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/server-registry-client/server_processor/v1.rb', line 9

def servers_in_category(category)
	response_json = make_web_request("/api/#{api_version}/category/#{category}")

	if response_json.nil? || last_response.response_code == 404
		return []
	else
		return response_json[:servers].map do |server_json|
			server_from_json(server_json)
		end
	end
end