factor-connector-rackspace 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd086fcede3fd0b90313daeca1ecb16c1d2c0d75
4
- data.tar.gz: 74b081e21aad2ae72c97eae57b98207e7ece6423
3
+ metadata.gz: 0c7fd97ba1f4dcfffff47b62ea024fa7c6ab5bf0
4
+ data.tar.gz: f0a851fa2a1b8fe08a558a6b5dfc2b608e434fe1
5
5
  SHA512:
6
- metadata.gz: a5914c0905ff1d789ce61598aea42658427a5032622a2fc673d88091da571b1531b7a06b8307012b35df1a62f4d43a5e0e1077eef19f2a888d597dc51267de9d
7
- data.tar.gz: 80daffd7883613d7997415969e72ca219393d3692012fd57b051ff2ac2b89cb1045becda625706e696dff77b2b31752a916b2c6e47fab81cf9efef56acc14b46
6
+ metadata.gz: 6809c7e4f1492ad193580dbd68cfb04a3c4866a383e32363694b0a18ec2bbcf454020d9d05780331d222184d61db006e3cd9cd8f5e755dfe70034199dca7994a
7
+ data.tar.gz: 55ccf88e5e73ad0447f5842e8e8233466245c3142aeb877416c0713de437031c9b1176087fffb1f824809e582ea1ce160836e7e0742ed8bb47a6d6063464098d
@@ -78,7 +78,8 @@ Factor::Connector.service 'rackspace_compute' do
78
78
  image_id = params['image_id'] || params['image']
79
79
  region = (params['region'] || 'ord').to_sym
80
80
  name = params['name']
81
- wait = params['wait']
81
+ wait = params['wait'] || true
82
+ key_name = params['key_name']
82
83
 
83
84
  fail "Username is required" unless username
84
85
  fail "API Key is required" unless api_key
@@ -107,6 +108,7 @@ Factor::Connector.service 'rackspace_compute' do
107
108
  image_id: image_id
108
109
  }
109
110
  server_settings[:name] = name if name
111
+ server_settings[:key_name] = key_name if key_name
110
112
 
111
113
  info "Creating server"
112
114
  begin
@@ -146,6 +148,7 @@ Factor::Connector.service 'rackspace_compute' do
146
148
  fail "API Key is required" unless api_key
147
149
  fail "Flavor ID is required" unless flavor_id
148
150
  fail "Image ID is required" unless image_id
151
+ fail "Name is required" unless name
149
152
  fail "Private Key is required" unless private_key
150
153
  fail "Public Key is required" unless public_key
151
154
 
@@ -191,20 +194,13 @@ Factor::Connector.service 'rackspace_compute' do
191
194
  }
192
195
  server_settings[:name] = name if name
193
196
 
194
- info "Creating server"
197
+ info "Creating server, this can take a few minutes"
195
198
  begin
196
199
  server = compute.servers.bootstrap(server_settings)
197
200
  rescue
198
201
  fail "Failed to create server with provided settings"
199
202
  end
200
203
 
201
- info "Waiting for the server. This can take a few minutes."
202
- begin
203
- server.wait_for { ready? }
204
- rescue
205
- fail "Server creation started, but couldn't get the status"
206
- end
207
-
208
204
  server.reload
209
205
  server_info = server.attributes
210
206
 
@@ -0,0 +1,174 @@
1
+ require 'factor-connector-api'
2
+ require 'fog'
3
+
4
+ Factor::Connector.service 'rackspace_load_balancers' do
5
+ action 'list' do |params|
6
+ username = params['username']
7
+ api_key = params['api_key']
8
+ region = (params['region'] || 'ord').to_sym
9
+
10
+ fail "Username is required" unless username
11
+ fail "API Key is required" unless api_key
12
+
13
+ balancer_payload = {
14
+ :rackspace_username => username,
15
+ :rackspace_api_key => api_key,
16
+ :rackspace_region => region
17
+ }
18
+
19
+ info "Initializing connection settings"
20
+ begin
21
+ fog_wrapper = Fog::Rackspace::LoadBalancers.new balancer_payload
22
+ rescue
23
+ fail "Couldn't initialize connection"
24
+ end
25
+
26
+ info "Retrieving list of LoadBalancers"
27
+ begin
28
+ load_balancers = fog_wrapper.load_balancers.map { |s| s.attributes }
29
+ rescue
30
+ fail "Failed to retrieve LoadBalancers"
31
+ end
32
+
33
+ action_callback load_balancers
34
+ end
35
+
36
+ action 'get' do |params|
37
+ username = params['username']
38
+ api_key = params['api_key']
39
+ region = params['region']
40
+ load_balancer_id = params['load_balancer_id']
41
+
42
+ fail "Username is required" unless username
43
+ fail "API key is required" unless api_key
44
+
45
+ balancer_payload = {
46
+ :rackspace_username => username,
47
+ :rackspace_api_key => api_key,
48
+ :rackspace_region => region
49
+ }
50
+
51
+ info "Initializing connection settings"
52
+ begin
53
+ fog_wrapper = Fog::Rackspace::LoadBalancers.new balancer_payload
54
+ rescue
55
+ fail "Couldn't initialize connection"
56
+ end
57
+
58
+ info "Getting your LoadBalancer"
59
+ begin
60
+ load_balancer = fog_wrapper.get_load_balancer(load_balancer_id)
61
+ load_balancer_hash = load_balancer.body['loadBalancer']
62
+ rescue
63
+ fail "Failed to get your LoadBalancer"
64
+ end
65
+
66
+ action_callback load_balancer_hash
67
+ end
68
+
69
+ action 'delete' do |params|
70
+ username = params['username']
71
+ api_key = params['api_key']
72
+ region = (params['region'] || 'ord').to_sym
73
+ load_balancer_id = params['load_balancer_id']
74
+
75
+ fail "Username is required" unless username
76
+ fail "API Key is required" unless api_key
77
+
78
+ balancer_payload = {
79
+ :rackspace_username => username,
80
+ :rackspace_api_key => api_key,
81
+ :rackspace_region => region
82
+ }
83
+
84
+ info "Initializing connection settings"
85
+ begin
86
+ fog_wrapper = Fog::Rackspace::LoadBalancers.new balancer_payload
87
+ rescue
88
+ fail "Couldn't initialize connection"
89
+ end
90
+
91
+ info "Deleting LoadBalancer"
92
+ begin
93
+ load_balancer = fog_wrapper.delete_load_balancer(load_balancer_id)
94
+ load_balancer_hash = load_balancer.body['loadBalancer']
95
+ rescue
96
+ fail "Failed to delete LoadBalancer"
97
+ end
98
+
99
+ action_callback load_balancer_hash
100
+ end
101
+
102
+ action 'create' do |params|
103
+ username = params['username']
104
+ api_key = params['api_key']
105
+ region = (params['region'] || 'ord').to_sym
106
+ name = params['name']
107
+ protocol = params['protocol']
108
+ port = params['port']
109
+ ip_type = params['ip_type']
110
+ algorithm = params['algorithm']
111
+
112
+ fail "Username is required" unless username
113
+ fail "API Key is required" unless api_key
114
+
115
+ balancer_payload = {
116
+ :rackspace_username => username,
117
+ :rackspace_api_key => api_key,
118
+ :rackspace_region => region
119
+ }
120
+
121
+ info "Initializing connection settings"
122
+ begin
123
+ fog_wrapper = Fog::Rackspace::LoadBalancers.new balancer_payload
124
+ rescue
125
+ fail "Couldn't initialize connection"
126
+ end
127
+
128
+ info "Creating LoadBalancer"
129
+ begin
130
+ load_balancer = fog_wrapper.create_load_balancer(name, protocol, port, virtual_ips = [{'type' => ip_type}], nodes = nil, options = {:algorithm => algorithm })
131
+ load_balancer_hash = load_balancer.body['loadBalancer']
132
+ rescue
133
+ fail "Failed to create LoadBalancer"
134
+ end
135
+
136
+ action_callback load_balancer_hash
137
+ end
138
+
139
+ action 'add_node' do |params|
140
+ username = params['username']
141
+ api_key = params['api_key']
142
+ region = params['region']
143
+ load_balancer_id = params['load_balancer_id']
144
+ address = params['address']
145
+ port = params['port']
146
+ condition = params['condition']
147
+
148
+ fail "Username is required" unless username
149
+ fail "API Key is required" unless api_key
150
+
151
+ balancer_payload = {
152
+ :rackspace_username => username,
153
+ :rackspace_api_key => api_key,
154
+ :rackspace_region => region
155
+ }
156
+
157
+ info "Initializing connection settings"
158
+ begin
159
+ fog_wrapper = Fog::Rackspace::LoadBalancers.new balancer_payload
160
+ rescue
161
+ fail "Couldn't initialize connection"
162
+ end
163
+
164
+ info "Adding node"
165
+ begin
166
+ load_balancer = fog_wrapper.create_node(load_balancer_id, address, port, condition, options = {})
167
+ load_balancer_hash = load_balancer.body
168
+ rescue
169
+ info "Failed to add node"
170
+ end
171
+
172
+ action_callback load_balancer_hash
173
+ end
174
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factor-connector-rackspace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Skierkowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factor-connector-api
@@ -104,6 +104,7 @@ files:
104
104
  - lib/factor/connector/rackspace_compute.rb
105
105
  - lib/factor/connector/rackspace_compute_flavors.rb
106
106
  - lib/factor/connector/rackspace_compute_images.rb
107
+ - lib/factor/connector/rackspace_loadbalancers.rb
107
108
  homepage: https://factor.io
108
109
  licenses: []
109
110
  metadata: {}