kytoon 1.4.0 → 1.4.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.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ * Tue Aug 20 2013 Dan Prince <dprince@redhat.com> - 1.4.1
2
+ -Add ability to list remote groups with CloudCue provider.
3
+ -Test fixes for CloudCue.
4
+
1
5
  * Wed Jul 19 2013 Dan Prince <dprince@redhat.com> - 1.4.0
2
6
  -Add support for CloudCue.
3
7
  -Drop old CloudServers VPC stuff (no longer in use)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0
1
+ 1.4.1
@@ -292,7 +292,8 @@ class ServerGroup
292
292
  # :source - valid options are 'cache' and 'remote'
293
293
  def self.get(options={})
294
294
 
295
- source = options[:source] or source = "cache"
295
+ source = ENV['KYTOON_CLOUDCUE_SOURCE'] or options[:source]
296
+ source = 'cache' if source.nil? or source.empty?
296
297
  id = options[:id]
297
298
  if id.nil? then
298
299
  group = ServerGroup.most_recent
@@ -316,10 +317,20 @@ class ServerGroup
316
317
  # :source - valid options are 'remote' and 'cache'
317
318
  def self.index(options={})
318
319
 
319
- source = options[:source] or source = "cache"
320
+ source = ENV['KYTOON_CLOUDCUE_SOURCE'] or options[:source]
321
+ source = 'cache' if source.nil? or source.empty?
320
322
  server_groups=[]
321
- Dir[File.join(ServerGroup.data_dir, '*.xml')].each do |file|
322
- server_groups << ServerGroup.from_xml(IO.read(file))
323
+
324
+ if source == "remote" then
325
+ xml=Connection.get("/server_groups.xml")
326
+ dom = REXML::Document.new(xml)
327
+ REXML::XPath.each(dom, "//server-group") do |group_xml|
328
+ server_groups << ServerGroup.from_xml(group_xml.to_s)
329
+ end
330
+ else
331
+ Dir[File.join(ServerGroup.data_dir, '*.xml')].each do |file|
332
+ server_groups << ServerGroup.from_xml(IO.read(file))
333
+ end
323
334
  end
324
335
  server_groups
325
336
 
@@ -3,6 +3,7 @@ require 'test_helper'
3
3
 
4
4
  require 'fileutils'
5
5
  require 'tempfile'
6
+ require 'kytoon/providers/cloud_cue'
6
7
 
7
8
  module Kytoon
8
9
  module Providers
@@ -12,7 +13,7 @@ class ServerGroupTest < Test::Unit::TestCase
12
13
 
13
14
  def setup
14
15
  @tmp_dir=TmpDir.new_tmp_dir
15
- ServerGroup.data_dir=@tmp_dir
16
+ CloudCue::ServerGroup.data_dir=@tmp_dir
16
17
  end
17
18
 
18
19
  def teardown
@@ -129,7 +130,7 @@ class ServerGroupTest < Test::Unit::TestCase
129
130
  File.open("#{tmp_dir}/1759.xml", 'w') do |f|
130
131
  f.write(SERVER_GROUP_XML)
131
132
  end
132
- ServerGroup.data_dir=tmp_dir
133
+ CloudCue::ServerGroup.data_dir=tmp_dir
133
134
 
134
135
  Connection.stubs(:get).returns(SERVER_GROUP_XML)
135
136
 
@@ -146,11 +147,6 @@ class ServerGroupTest < Test::Unit::TestCase
146
147
  ServerGroup.get(:id => "1234", :source => "cache")
147
148
  end
148
149
 
149
- #invalid get source
150
- assert_raises(RuntimeError) do
151
- ServerGroup.get(:id => "1759", :source => "asdf")
152
- end
153
-
154
150
  end
155
151
 
156
152
  def test_index_from_cache
@@ -159,7 +155,7 @@ class ServerGroupTest < Test::Unit::TestCase
159
155
  File.open("#{tmp_dir}/1759.xml", 'w') do |f|
160
156
  f.write(SERVER_GROUP_XML)
161
157
  end
162
- ServerGroup.data_dir=tmp_dir
158
+ CloudCue::ServerGroup.data_dir=tmp_dir
163
159
 
164
160
  server_groups = ServerGroup.index
165
161
 
@@ -174,7 +170,7 @@ class ServerGroupTest < Test::Unit::TestCase
174
170
  File.open("#{tmp_dir}/1759.xml", 'w') do |f|
175
171
  f.write(SERVER_GROUP_XML)
176
172
  end
177
- ServerGroup.data_dir=tmp_dir
173
+ CloudCue::ServerGroup.data_dir=tmp_dir
178
174
 
179
175
  Connection.stubs(:get).returns(SERVER_GROUP_XML)
180
176
  server_groups = ServerGroup.index(:source => "remote")
@@ -192,7 +188,7 @@ class ServerGroupTest < Test::Unit::TestCase
192
188
  File.open("#{tmp_dir}/1759.xml", 'w') do |f|
193
189
  f.write(SERVER_GROUP_XML)
194
190
  end
195
- ServerGroup.data_dir=tmp_dir
191
+ CloudCue::ServerGroup.data_dir=tmp_dir
196
192
 
197
193
  Connection.stubs(:post).returns(SERVER_GROUP_XML)
198
194
  Connection.stubs(:get).returns(SERVER_GROUP_XML)
@@ -208,7 +204,7 @@ class ServerGroupTest < Test::Unit::TestCase
208
204
 
209
205
  def test_most_recent
210
206
 
211
- File.open("#{ServerGroup.data_dir}/5.xml", 'w') do |f|
207
+ File.open("#{CloudCue::ServerGroup.data_dir}/5.xml", 'w') do |f|
212
208
  f.write(SERVER_GROUP_XML)
213
209
  end
214
210
 
@@ -224,7 +220,7 @@ class ServerGroupTest < Test::Unit::TestCase
224
220
 
225
221
  sg=ServerGroup.from_xml(SERVER_GROUP_XML)
226
222
  assert sg.cache_to_disk
227
- assert File.exists?(File.join(ServerGroup.data_dir, "#{sg.id}.xml"))
223
+ assert File.exists?(File.join(CloudCue::ServerGroup.data_dir, "#{sg.id}.xml"))
228
224
 
229
225
  end
230
226
 
@@ -233,7 +229,7 @@ class ServerGroupTest < Test::Unit::TestCase
233
229
  sg=ServerGroup.from_xml(SERVER_GROUP_XML)
234
230
  Connection.stubs(:delete).returns("")
235
231
  sg.delete
236
- assert_equal false, File.exists?(File.join(ServerGroup.data_dir, "#{sg.id}.xml"))
232
+ assert_equal false, File.exists?(File.join(CloudCue::ServerGroup.data_dir, "#{sg.id}.xml"))
237
233
 
238
234
  end
239
235
 
data/test/test_helper.rb CHANGED
@@ -36,8 +36,6 @@ SERVER_GROUP_XML = %{
36
36
  <owner-name>dan.prince</owner-name>
37
37
  <updated-at type="datetime">2010-10-15T15:15:58-04:00</updated-at>
38
38
  <user-id type="integer">3</user-id>
39
- <vpn-network>172.19.0.0</vpn-network>
40
- <vpn-subnet>255.255.128.0</vpn-subnet>
41
39
  <servers type="array">
42
40
  <server>
43
41
  <account-id type="integer">3</account-id>
@@ -52,12 +50,11 @@ SERVER_GROUP_XML = %{
52
50
  <image-id type="integer">14</image-id>
53
51
  <internal-ip-addr>10.179.107.203</internal-ip-addr>
54
52
  <name>login1</name>
55
- <openvpn-server type="boolean">true</openvpn-server>
53
+ <gateway type="boolean">true</gateway>
56
54
  <retry-count type="integer">0</retry-count>
57
55
  <server-group-id type="integer">1759</server-group-id>
58
56
  <status>Online</status>
59
57
  <updated-at type="datetime">2010-10-15T15:18:22-04:00</updated-at>
60
- <vpn-network-interfaces type="array"/>
61
58
  </server>
62
59
  <server>
63
60
  <account-id type="integer">3</account-id>
@@ -72,106 +69,16 @@ SERVER_GROUP_XML = %{
72
69
  <image-id type="integer">49</image-id>
73
70
  <internal-ip-addr>10.179.107.204</internal-ip-addr>
74
71
  <name>test1</name>
75
- <openvpn-server type="boolean">false</openvpn-server>
72
+ <gateway type="boolean">false</gateway>
76
73
  <retry-count type="integer">0</retry-count>
77
74
  <server-group-id type="integer">1759</server-group-id>
78
75
  <status>Online</status>
79
76
  <updated-at type="datetime">2010-10-15T15:18:22-04:00</updated-at>
80
- <vpn-network-interfaces type="array"/>
81
77
  </server>
82
78
  </servers>
83
79
  </server-group>
84
80
  }
85
81
 
86
- CLIENT_XML = %{
87
- <client>
88
- <created-at type="datetime">2011-01-09T19:37:32-05:00</created-at>
89
- <description>Toolkit Client: local</description>
90
- <id type="integer">5</id>
91
- <is-windows type="boolean">false</is-windows>
92
- <name>local</name>
93
- <server-group-id type="integer">11</server-group-id>
94
- <status>Online</status>
95
- <updated-at type="datetime">2011-01-09T19:37:37-05:00</updated-at>
96
- <vpn-network-interfaces type="array">
97
- <vpn-network-interface>
98
- <ca-cert>-----BEGIN CERTIFICATE-----
99
- MIIDyDCCAzGgAwIBAgIJAORNZNRpPx87MA0GCSqGSIb3DQEBBQUAMIGfMQswCQYD
100
- VQQGEwJVUzELMAkGA1UECBMCVkExEzARBgNVBAcTCkJsYWNrc2J1cmcxEjAQBgNV
101
- BAoTCVJhY2tzcGFjZTEXMBUGA1UECxMOSW5mcmFzdHJ1Y3R1cmUxDjAMBgNVBAMT
102
- BWxvZ2luMQ4wDAYDVQQpEwVsb2dpbjEhMB8GCSqGSIb3DQEJARYSY29icmFAc25h
103
- a2VvaWwuY29tMB4XDTExMDExMDAwMzI1NVoXDTIxMDEwNzAwMzI1NVowgZ8xCzAJ
104
- BgNVBAYTAlVTMQswCQYDVQQIEwJWQTETMBEGA1UEBxMKQmxhY2tzYnVyZzESMBAG
105
- A1UEChMJUmFja3NwYWNlMRcwFQYDVQQLEw5JbmZyYXN0cnVjdHVyZTEOMAwGA1UE
106
- AxMFbG9naW4xDjAMBgNVBCkTBWxvZ2luMSEwHwYJKoZIhvcNAQkBFhJjb2JyYUBz
107
- bmFrZW9pbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL0xIVIfh8rA
108
- OCfc4BbWG+W+53iP9J6Fqhya5HSrYw3pdUCdimRBwQ0HoEnHndz2soRYc2Wtat8L
109
- qqoS/qZMBbqerzEUFHumSKLADT3y8G1gkiGsb1fBZPmExPYyG/UQQUfK7CIM/L/m
110
- W6Ji5ZEfTF9QPwHj3kVU99VUvm/BS8wXAgMBAAGjggEIMIIBBDAdBgNVHQ4EFgQU
111
- dOvLRyxDa2Xso59PFLf22sZQ07wwgdQGA1UdIwSBzDCByYAUdOvLRyxDa2Xso59P
112
- FLf22sZQ07yhgaWkgaIwgZ8xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJWQTETMBEG
113
- A1UEBxMKQmxhY2tzYnVyZzESMBAGA1UEChMJUmFja3NwYWNlMRcwFQYDVQQLEw5J
114
- bmZyYXN0cnVjdHVyZTEOMAwGA1UEAxMFbG9naW4xDjAMBgNVBCkTBWxvZ2luMSEw
115
- HwYJKoZIhvcNAQkBFhJjb2JyYUBzbmFrZW9pbC5jb22CCQDkTWTUaT8fOzAMBgNV
116
- HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAAVXIxOocwXi05004m9Znff6/cAj
117
- 2osr72g/Xux++lVqiSHf+T/R4QywsXy9//vKeXVEIyaaP9ImnWbbzHFFI+NStP4n
118
- LILyv+/eOuZ6Dv7Vv6ZacjI3fexcXYr5VW52HHbb/M7G1ePAfdAixUHNH7lh58dY
119
- WDzmJicksUYlyvI+
120
- -----END CERTIFICATE-----
121
- </ca-cert>
122
- <client-cert>-----BEGIN CERTIFICATE-----
123
- MIIEDjCCA3egAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBnzELMAkGA1UEBhMCVVMx
124
- CzAJBgNVBAgTAlZBMRMwEQYDVQQHEwpCbGFja3NidXJnMRIwEAYDVQQKEwlSYWNr
125
- c3BhY2UxFzAVBgNVBAsTDkluZnJhc3RydWN0dXJlMQ4wDAYDVQQDEwVsb2dpbjEO
126
- MAwGA1UEKRMFbG9naW4xITAfBgkqhkiG9w0BCQEWEmNvYnJhQHNuYWtlb2lsLmNv
127
- bTAeFw0xMTAxMTAwMDM3MzVaFw0yMTAxMDcwMDM3MzVaMIGfMQswCQYDVQQGEwJV
128
- UzELMAkGA1UECBMCVkExEzARBgNVBAcTCkJsYWNrc2J1cmcxEjAQBgNVBAoTCVJh
129
- Y2tzcGFjZTEXMBUGA1UECxMOSW5mcmFzdHJ1Y3R1cmUxDjAMBgNVBAMTBWxvY2Fs
130
- MQ4wDAYDVQQpEwVsb2dpbjEhMB8GCSqGSIb3DQEJARYSY29icmFAc25ha2VvaWwu
131
- Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCefsUr0T4oQUjKjW7Dpx0t
132
- KwwafBF2HUW7CI75apeTjSBgYC1CHC6cggfFkUTFvndzspbGaeuJeYtvcvkAa2BD
133
- p4jlSJgEXa+Uy1UAj1y06BePLNbKF4EfgEGf3eIWcdOtLYbOg4k33uNgto168iVO
134
- owWOR+B2/z73NIHWxvtF3wIDAQABo4IBVjCCAVIwCQYDVR0TBAIwADAtBglghkgB
135
- hvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQW
136
- BBSRXbeuamcuma4yo5B8IYSGGT3fNjCB1AYDVR0jBIHMMIHJgBR068tHLENrZeyj
137
- n08Ut/baxlDTvKGBpaSBojCBnzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlZBMRMw
138
- EQYDVQQHEwpCbGFja3NidXJnMRIwEAYDVQQKEwlSYWNrc3BhY2UxFzAVBgNVBAsT
139
- DkluZnJhc3RydWN0dXJlMQ4wDAYDVQQDEwVsb2dpbjEOMAwGA1UEKRMFbG9naW4x
140
- ITAfBgkqhkiG9w0BCQEWEmNvYnJhQHNuYWtlb2lsLmNvbYIJAORNZNRpPx87MBMG
141
- A1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOB
142
- gQApPAG1suVSPugJyQGfBaL8H+7VJdAGXnc6INX5s1AxJ3mvp4o6PQ7ytP4v/QkJ
143
- ZVMgWV8immfa3PboFgT00qqpbC2Vbf4RR972IEQfGuJLLl4YLrJsbloV9hBamKS7
144
- Z1lllmEHxFWpNK2FLSZNaeQABZyvzfZYkk6zsHoY8XsCBg==
145
- -----END CERTIFICATE-----
146
- </client-cert>
147
- <client-key>-----BEGIN RSA PRIVATE KEY-----
148
- MIICXQIBAAKBgQCefsUr0T4oQUjKjW7Dpx0tKwwafBF2HUW7CI75apeTjSBgYC1C
149
- HC6cggfFkUTFvndzspbGaeuJeYtvcvkAa2BDp4jlSJgEXa+Uy1UAj1y06BePLNbK
150
- F4EfgEGf3eIWcdOtLYbOg4k33uNgto168iVOowWOR+B2/z73NIHWxvtF3wIDAQAB
151
- AoGAf3tFykWl8ij4jHsP8Wz0CcWLGa5bOR64XIS4wyKaQoML3JjfLkKOtzHbYGzE
152
- 3Syi1bt6jKLbYZsSrRTT9SNorB3M2HI/uu1NHVyJ8fqxSJs9wQWv26XcMq6iPXR6
153
- JQmiG44r0NoHtDOw0NCoo+9il4wjTIVSwN58x69EO1hsWokCQQDREYW73F536KzN
154
- GSsLy+8VsaRiHCboi7lZwITGt4xFhykP/P5R/mNMTklVpJENuZH5jhiBr8r2O/XE
155
- NQpIEZiFAkEAwhL4EnXax5p50g2CpkJM2B9F/p3IjjMs/sdUh4/RvAVkVAzz7uOh
156
- TjtrL0T6480wA7rk3324IG5x4XTgXYVkEwJBAKkg7LgJ0N5d+xS8TIdxhctd9uZr
157
- ccpj5iDGTmNXbwF8EurdNnvsODYtisPeqn2Y5o8ktYyMQrupy+rbIaMloOUCQAsI
158
- pQ33oV6jy7VDi2AEePX4oTQeqF5dTnuVvZqPdK8p51BYBC5axrr56dggJdt5uPcd
159
- UxHZxfQiE1tsF615ff0CQQCjeBskODATJkbN0kw+6FIF9m7QoEAYtJD1jLiY/2Sv
160
- QRiYX+gvycrIph1yyIGA1qeHYnjhQp4ZijhcwSFUAAyF
161
- -----END RSA PRIVATE KEY-----
162
- </client-key>
163
- <created-at type="datetime">2011-01-09T19:37:32-05:00</created-at>
164
- <id type="integer">15</id>
165
- <interfacable-id type="integer">5</interfacable-id>
166
- <interfacable-type>Client</interfacable-type>
167
- <ptp-ip-addr>172.19.0.6</ptp-ip-addr>
168
- <updated-at type="datetime">2011-01-09T19:37:36-05:00</updated-at>
169
- <vpn-ip-addr>172.19.0.5</vpn-ip-addr>
170
- </vpn-network-interface>
171
- </vpn-network-interfaces>
172
- </client>
173
- }
174
-
175
82
  SERVER_XML = %{
176
83
 
177
84
  <linux-server>
@@ -185,7 +92,7 @@ SERVER_XML = %{
185
92
  <image-id type="integer">14</image-id>
186
93
  <internal-ip-addr>10.119.225.116</internal-ip-addr>
187
94
  <name>db1</name>
188
- <openvpn-server type="boolean">false</openvpn-server>
95
+ <gateway type="boolean">false</gateway>
189
96
  <retry-count type="integer">0</retry-count>
190
97
  <server-group-id type="integer">999</server-group-id>
191
98
  <status>Online</status>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kytoon
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-19 00:00:00.000000000 Z
12
+ date: 2013-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
@@ -283,7 +283,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
283
283
  version: '0'
284
284
  segments:
285
285
  - 0
286
- hash: 4014569105622964663
286
+ hash: 3489483367199471003
287
287
  required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  none: false
289
289
  requirements: