environment-manager 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/environment_manager/api.rb +55 -22
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c891db666b68e9496cba114013f475ed907f943
|
4
|
+
data.tar.gz: a4c92f862e061ef98181cbb949863d9f05146bca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2f1fa9c6aeec590f5a83e48b0d492eb20aec9f410316bcf75b59ab8c7e56a42c26e1f00c36764b4f91c5811284d17191a2f1d1b4c98ee36ba25c9b12de94b85
|
7
|
+
data.tar.gz: 76a9a591be2bb04a88d051bb2ed3972b25ee3d0f0f95e6f9b5382974223577e7fe6302c6a09f747c9292ff2d9692403ff4b32aab7c23f0de30d211a1192dca4a
|
@@ -13,6 +13,8 @@ module EnvironmentManager
|
|
13
13
|
@user = user
|
14
14
|
@password = password
|
15
15
|
@retries = retries
|
16
|
+
@token = nil
|
17
|
+
|
16
18
|
# Sanitise input
|
17
19
|
if server.empty? or user.empty? or password.empty?
|
18
20
|
raise(IndexError, "API(server: SERVERNAME, user: USERNAME, password: PASSWORD, [retries: N])")
|
@@ -43,6 +45,7 @@ module EnvironmentManager
|
|
43
45
|
sleep 2
|
44
46
|
end
|
45
47
|
retries += 1
|
48
|
+
sleep 2
|
46
49
|
end
|
47
50
|
if not token.to_s.strip.empty?
|
48
51
|
token_bearer = "Bearer #{token}"
|
@@ -52,6 +55,19 @@ module EnvironmentManager
|
|
52
55
|
end
|
53
56
|
end
|
54
57
|
|
58
|
+
private
|
59
|
+
def get_token
|
60
|
+
if @token.nil?
|
61
|
+
@token = api_auth()
|
62
|
+
end
|
63
|
+
return @token
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def renew_token
|
68
|
+
@token = api_auth()
|
69
|
+
end
|
70
|
+
|
55
71
|
private
|
56
72
|
def query(query_endpoint, data=nil, query_type="get", headers={}, retries=5, backoff=2)
|
57
73
|
# Sanitise input
|
@@ -66,7 +82,7 @@ module EnvironmentManager
|
|
66
82
|
retry_num = 0
|
67
83
|
while retry_num < retries
|
68
84
|
retry_num += 1
|
69
|
-
token =
|
85
|
+
token = get_token()
|
70
86
|
base_url = "https://#{@server}"
|
71
87
|
request_url = "#{base_url}#{query_endpoint}"
|
72
88
|
query_headers = {"Accept" => "application/json", "Content-Type" => "application/json", "Authorization" => token}
|
@@ -74,25 +90,32 @@ module EnvironmentManager
|
|
74
90
|
query_headers.merge!(header)
|
75
91
|
end
|
76
92
|
# Add any extra headers
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
93
|
+
begin
|
94
|
+
if query_type.downcase == "get"
|
95
|
+
request = RestClient::Request.execute(url: request_url, method: :get, payload: data, headers: query_headers, verify_ssl: false, open_timeout: 10)
|
96
|
+
elsif query_type.downcase == "post"
|
97
|
+
request = RestClient::Request.execute(url: request_url, method: :post, payload: data, headers: query_headers, verify_ssl: false, open_timeout: 10)
|
98
|
+
elsif query_type.downcase == "put"
|
99
|
+
request = RestClient::Request.execute(url: request_url, method: :put, payload: data, headers: query_headers, verify_ssl: false, open_timeout: 10)
|
100
|
+
elsif query_type.downcase == "patch"
|
101
|
+
request = RestClient::Request.execute(url: request_url, method: :patch, payload: data, headers: query_headers, verify_ssl: false, open_timeout: 10)
|
102
|
+
elsif query_type.downcase == "delete"
|
103
|
+
request = RestClient::Request.execute(url: request_url, method: :delete, headers: query_headers, verify_ssl: false, open_timeout: 10)
|
104
|
+
else
|
105
|
+
raise("Cannot process query type #{query_type}")
|
106
|
+
end
|
107
|
+
status_type = request.code.to_s[0].to_i
|
108
|
+
if status_type == 2 or status_type == 3
|
109
|
+
return JSON.parse(request.body)
|
110
|
+
elsif request.code == 401
|
111
|
+
renew_token()
|
112
|
+
elsif status_type == 4
|
113
|
+
raise(request)
|
114
|
+
else
|
115
|
+
sleep backoff
|
116
|
+
end
|
117
|
+
rescue
|
118
|
+
renew_token()
|
96
119
|
end
|
97
120
|
end
|
98
121
|
raise("Max number of retries (#{retry_num}) querying Environment Manager, last http code is #{request.code}, will abort for now")
|
@@ -680,9 +703,19 @@ module EnvironmentManager
|
|
680
703
|
|
681
704
|
## Instance
|
682
705
|
public
|
683
|
-
def get_instances()
|
706
|
+
def get_instances(environment=nil, cluster=nil)
|
684
707
|
# Get all instances matching the given criteria
|
685
708
|
request_endpoint = "/api/v1/instances"
|
709
|
+
queries = Array.new()
|
710
|
+
if environment != nil
|
711
|
+
queries.push("environment=#{environment}")
|
712
|
+
end
|
713
|
+
if cluster != nil
|
714
|
+
queries.push("cluster=#{cluster}")
|
715
|
+
end
|
716
|
+
if queries.size > 0
|
717
|
+
request_endpoint << '?%s' % queries.join("&")
|
718
|
+
end
|
686
719
|
return query(request_endpoint, query_type: "GET")
|
687
720
|
end
|
688
721
|
|
@@ -723,7 +756,7 @@ module EnvironmentManager
|
|
723
756
|
if id.nil?
|
724
757
|
raise("Load Balancer ID has not been specified")
|
725
758
|
end
|
726
|
-
request_endpoint = "/api/v1/
|
759
|
+
request_endpoint = "/api/v1/load-balancer/#{id}"
|
727
760
|
return query(request_endpoint, query_type: "GET")
|
728
761
|
end
|
729
762
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: environment-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc Cluet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
64
|
rubyforge_project:
|
65
|
-
rubygems_version: 2.6.
|
65
|
+
rubygems_version: 2.6.11
|
66
66
|
signing_key:
|
67
67
|
specification_version: 4
|
68
68
|
summary: Ruby client for Environment Manager
|