resat 0.7.3 → 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +11 -3
- data/examples/rackspace/all +12 -0
- data/examples/rackspace/config/rack.yml +14 -0
- data/examples/rackspace/out.js +1 -0
- data/examples/rackspace/output.yml +3 -0
- data/examples/rackspace/process_all.rb +14 -0
- data/examples/rackspace/process_output.rb +35 -0
- data/examples/rackspace/scenarios/list_servers.yml +19 -0
- data/examples/rackspace/scenarios/login.yml +23 -0
- data/lib/api_request.rb +17 -8
- data/lib/resat.rb +1 -1
- data/lib/scenario_runner.rb +6 -3
- data/schemas/scenarios.yaml +14 -8
- metadata +10 -2
data/README.rdoc
CHANGED
@@ -152,7 +152,7 @@ The first element of the scenario is its name. The name is used by the command
|
|
152
152
|
line tool for update and error outputs.
|
153
153
|
|
154
154
|
The second element is the list of steps. A step must contain a request. A
|
155
|
-
request
|
155
|
+
request can correspond to one of the REST CRUD operations and apply to a
|
156
156
|
resource. CRUD operations are <i>create</i>, <i>show</i>, <i>index</i>, <i>update</i>,
|
157
157
|
and <i>destroy</i>.
|
158
158
|
|
@@ -166,8 +166,8 @@ the <i>id</i> element:
|
|
166
166
|
resource: servers
|
167
167
|
id: 42
|
168
168
|
|
169
|
-
Resat also allows defining <i>custom</i>
|
170
|
-
don't map to a CRUD operation. A custom
|
169
|
+
Resat also allows defining <i>custom</i> REST operations for making web requests that
|
170
|
+
don't map to a standard CRUD operation. A custom operation is defined by a <i>type</i>
|
171
171
|
corresponding to the HTTP verb that the request should use (i.e. <tt>get</tt>, <tt>post</tt>,
|
172
172
|
<tt>put</tt> or <tt>delete</tt>) and its name.
|
173
173
|
|
@@ -179,6 +179,14 @@ corresponding to the HTTP verb that the request should use (i.e. <tt>get</tt>, <
|
|
179
179
|
name: public_timeline.xml # Operation name
|
180
180
|
type: get # GET request
|
181
181
|
|
182
|
+
Alternatively, the path of a request can be defined manually:
|
183
|
+
|
184
|
+
name: Twitter Timeline
|
185
|
+
steps:
|
186
|
+
- request:
|
187
|
+
path: statuses/public_timeline.xml
|
188
|
+
type: get
|
189
|
+
|
182
190
|
Requests can then be followed by filters which can validate the response and/or
|
183
191
|
extract elements from it.
|
184
192
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
rm 'out.js'
|
3
|
+
echo 'Getting servers from rackcloud11'
|
4
|
+
resat scenarios/list_servers.yml -V -d user:rackcloud11 -d key:9477e9d847d669ce9c4485e14db02319 -f
|
5
|
+
ruby process_output.rb 11
|
6
|
+
echo 'Getting servers from rackcloud12'
|
7
|
+
resat scenarios/list_servers.yml -V -d user:rackcloud12 -d key:566068e103b7df816d2accdafdb088eb -f
|
8
|
+
ruby process_output.rb 12
|
9
|
+
echo 'Getting servers from rackcloud13'
|
10
|
+
resat scenarios/list_servers.yml -V -d user:rackcloud13 -d key:0d6b70709af2319fb7714942b1de0f94 -f
|
11
|
+
ruby process_output.rb 13
|
12
|
+
ruby process_all.rb
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"servers":[{"name":"slice75026","addresses":{"public":["67.23.45.78"],"private":["10.176.193.72"]},"progress":100,"imageId":9,"metadata":{},"id":75026,"flavorId":1,"hostId":"0b71cb5a6f8ff843f899e89ba76efb4c","status":"ACTIVE"},{"name":"slice75044","addresses":{"public":["67.23.45.88"],"private":["10.176.193.82"]},"progress":100,"imageId":9,"metadata":{},"id":75044,"flavorId":1,"hostId":"dc9ffecb65df19b72d4e85067bf21a9d","status":"ACTIVE"},{"name":"new-server-test","addresses":{"public":["174.143.207.30"],"private":["10.176.198.223"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79535,"flavorId":1,"hostId":"74b90e1722e3f72ef3cb3327b14d6f19","status":"ACTIVE"},{"name":"new-server-test2","addresses":{"public":["174.143.207.31"],"private":["10.176.198.224"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79538,"flavorId":1,"hostId":"cc0aa729e0ed41ab6c488e7d9a111a8a","status":"ACTIVE"},{"name":"jgrackspaceTst2","addresses":{"public":["174.143.180.74"],"private":["10.176.200.182"]},"progress":100,"imageId":9,"metadata":{},"id":82609,"flavorId":2,"hostId":"e78db2a677f42cd1f18cf86d027584a9","status":"ACTIVE"},{"name":"tve-super-awesome-server-08","addresses":{"public":["174.143.182.242"],"private":["10.176.198.200"]},"progress":100,"imageId":7,"metadata":{"data1":"Ohoho!","data2":"Ehehe!"},"id":84077,"flavorId":4,"hostId":"0cf3759a4f6bdac79bbc4d7d16e31d31","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143787390","addresses":{"public":["174.143.206.13"],"private":["10.176.196.147"]},"progress":100,"imageId":11,"metadata":{},"id":100741,"flavorId":1,"hostId":"f757ed7082553590593818064ff5ec8d","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143813325","addresses":{"public":["174.143.180.140"],"private":["10.176.198.3"]},"progress":100,"imageId":11,"metadata":{},"id":100742,"flavorId":1,"hostId":"65e4a04de2776918d475dbb971e99580","status":"ACTIVE"},{"name":"RS-TSBlankRack-125614591644","addresses":{"public":["174.143.181.7"],"private":["10.176.197.190"]},"progress":100,"imageId":11,"metadata":{},"id":100758,"flavorId":1,"hostId":"73b35a7e3a9435185cf35f42faa565ec","status":"ACTIVE"},{"name":"RS-ping-pongreciever-Rackspacev1-1256146452552","addresses":{"public":["67.23.47.5"],"private":["10.176.194.238"]},"progress":100,"imageId":11,"metadata":{},"id":100762,"flavorId":1,"hostId":"9fa4daad4ba37d4572424bfcd1d3ee22","status":"ACTIVE"},{"name":"RS-PRACK-1256571836376","addresses":{"public":["174.143.181.102"],"private":["10.176.198.31"]},"progress":100,"imageId":10,"metadata":{},"id":102863,"flavorId":1,"hostId":"99acd27b0082e2c9f80593a683fd7496","status":"ACTIVE"},{"name":"RS-StageRACK-1256575826994","addresses":{"public":["174.143.182.59"],"private":["10.176.200.111"]},"progress":100,"imageId":10,"metadata":{},"id":102910,"flavorId":1,"hostId":"6ca01874d2e72e9f121023a25cac8c35","status":"ACTIVE"},{"name":"RS-StageRACK-1256575849697","addresses":{"public":["174.143.182.213"],"private":["10.176.200.113"]},"progress":100,"imageId":10,"metadata":{},"id":102911,"flavorId":1,"hostId":"abaf0d89c641b4ab0341f34bca3d54bd","status":"ACTIVE"},{"name":"RS-StageRACK-125657598282","addresses":{"public":["174.143.182.216"],"private":["10.176.200.114"]},"progress":100,"imageId":10,"metadata":{},"id":102912,"flavorId":1,"hostId":"229068006d3f9e1c78cab9f121a4b958","status":"ACTIVE"},{"name":"RS-StageRACK-1256577861658","addresses":{"public":["174.143.182.221"],"private":["10.176.200.121"]},"progress":100,"imageId":10,"metadata":{},"id":102922,"flavorId":1,"hostId":"698425f9d570275d894fef01df7fd34b","status":"ACTIVE"},{"name":"RS-StageRACK-1256577893631","addresses":{"public":["174.143.182.222"],"private":["10.176.200.124"]},"progress":100,"imageId":10,"metadata":{},"id":102924,"flavorId":1,"hostId":"8fb63d50e5e88bc70ba0c2f4c3414637","status":"ACTIVE"},{"name":"RS-StageRACK-1256578313514","addresses":{"public":["174.143.182.227"],"private":["10.176.200.125"]},"progress":100,"imageId":10,"metadata":{},"id":102927,"flavorId":1,"hostId":"c81ca96999db446f6161e29f96fc0490","status":"ACTIVE"},{"name":"RS-StageRACK-1256578365384","addresses":{"public":["174.143.182.228"],"private":["10.176.200.128"]},"progress":100,"imageId":10,"metadata":{},"id":102928,"flavorId":1,"hostId":"3f38e469c9760bde75b81dab81939f1b","status":"ACTIVE"},{"name":"RS-StageRACK-1256591502131","addresses":{"public":["174.143.207.93"],"private":["10.176.198.202"]},"progress":100,"imageId":10,"metadata":{},"id":103022,"flavorId":1,"hostId":"ff3ac7e0b9f8c91b041c756ca020628b","status":"ACTIVE"},{"name":"RS-DONOTDELETEMARTIN-1256677280718","addresses":{"public":["174.143.206.53"],"private":["10.176.196.190"]},"progress":100,"imageId":10,"metadata":{},"id":103502,"flavorId":2,"hostId":"99a23dd12d73183c2e1faa651a4bd5a7","status":"ACTIVE"},{"name":"slice103976","addresses":{"public":["174.143.180.87"],"private":["10.176.198.41"]},"progress":100,"imageId":10,"metadata":{},"id":103976,"flavorId":2,"hostId":"db7832081663367471dde7bc4567dd8f","status":"ACTIVE"},{"name":"slice104707","addresses":{"public":["174.143.181.37"],"private":["10.176.198.240"]},"progress":100,"imageId":10,"metadata":{},"id":104707,"flavorId":2,"hostId":"c0cc23eeb2694f41bd8dada1711c7ed9","status":"ACTIVE"},{"name":"m12","addresses":{"public":["67.23.45.141"],"private":["10.176.195.196"]},"progress":100,"imageId":10,"metadata":{},"id":105360,"flavorId":2,"hostId":"1d75b92d037346f418b56d8f3cd7f1d1","status":"ACTIVE"},{"name":"RS-iancheftest-1257195243453","addresses":{"public":["174.143.182.7"],"private":["10.176.199.124"]},"progress":100,"imageId":10,"metadata":{},"id":106498,"flavorId":1,"hostId":"5339c0f9477ebb6eba0f7888cb357e13","status":"ACTIVE"},{"name":"RS-patrickracktest-1257370187513","addresses":{"public":["174.143.207.94"],"private":["10.176.196.18"]},"progress":100,"imageId":11,"metadata":{},"id":107719,"flavorId":1,"hostId":"e3f896d6a23c2bac1d82455283a78d56","status":"ACTIVE"},{"name":"RS-Awesome-125790468880","addresses":{"public":["174.143.204.220"],"private":["10.176.205.85"]},"progress":100,"imageId":9,"metadata":{},"id":111213,"flavorId":1,"hostId":"df63d67427fa181a62763c3f77bd2ee1","status":"ACTIVE"},{"name":"RS-PeterExperiment-1257972127588","addresses":{"public":["67.23.45.171"],"private":["10.176.205.114"]},"progress":100,"imageId":10,"metadata":{},"id":111681,"flavorId":2,"hostId":"9639c79380d3e469908cfb3e6e03c472","status":"ACTIVE"},{"name":"RS-PeterExperimentv1-1257972619614","addresses":{"public":["174.143.204.232"],"private":["10.176.205.115"]},"progress":100,"imageId":11,"metadata":{},"id":111684,"flavorId":3,"hostId":"c2efff3ba71db91dbb181af8bcf0195f","status":"ACTIVE"},{"name":"RS-DaneRS-125815580520","addresses":{"public":["174.143.204.23"],"private":["10.176.205.180"]},"progress":0,"imageId":20574,"metadata":{},"id":112810,"flavorId":1,"hostId":"0eca0e3e34f065a0ec22f09caf71b617","status":"BUILD"},{"name":"RS-RebootMe-1258494428264","addresses":{"public":["67.23.47.85"],"private":["10.176.206.23"]},"progress":100,"imageId":11,"metadata":{},"id":114584,"flavorId":1,"hostId":"90153713e24027fbf4aa4dc943fe7f16","status":"ACTIVE"},{"name":"RS-RelaunchMe-1258494433415","addresses":{"public":["174.143.205.103"],"private":["10.176.206.24"]},"progress":100,"imageId":11,"metadata":{},"id":114585,"flavorId":1,"hostId":"77350e12679599597699ef7f91be9a8e","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1258762176933","addresses":{"public":["174.143.207.182"],"private":["10.176.206.115"]},"progress":100,"imageId":10,"metadata":{},"id":116332,"flavorId":4,"hostId":"94f7bb6ace9babde573be05fd0e73548","status":"ACTIVE"},{"name":"RS-DomsRackspaceServerTestv1-1259781709147","addresses":{"public":["174.143.183.6"],"private":["10.176.207.165"]},"progress":100,"imageId":12,"metadata":{},"id":121434,"flavorId":3,"hostId":"16ad84d1cfb2139a62ab365537e686d6","status":"ACTIVE"},{"name":"RS-MultiPetericity1-1259791225514","addresses":{"public":["174.143.183.22"],"private":["10.176.207.181"]},"progress":100,"imageId":11,"metadata":{},"id":121527,"flavorId":1,"hostId":"60be17707163639d467cd093a7acdf95","status":"ACTIVE"},{"name":"RS-DomsDemoArray1-1259792157215","addresses":{"public":["174.143.183.24"],"private":["10.176.207.182"]},"progress":100,"imageId":10,"metadata":{},"id":121532,"flavorId":2,"hostId":"b7d9ac4fbb4fe1080bbbe26c0586646b","status":"ACTIVE"},{"name":"RS-DomsDemoArray2-125979223042","addresses":{"public":["174.143.183.26"],"private":["10.176.207.183"]},"progress":100,"imageId":10,"metadata":{},"id":121533,"flavorId":1,"hostId":"89433d649ac0849f868ec28e4b6030a3","status":"ACTIVE"},{"name":"RS-PeterTemplate-1259971447287","addresses":{"public":["67.23.46.38"],"private":["10.176.208.64"]},"progress":100,"imageId":11,"metadata":{},"id":122795,"flavorId":1,"hostId":"2624f82e2b9744c21143af90c405aa4f","status":"ACTIVE"},{"name":"RS-DaneMonitored-1260232014452","addresses":{"public":["174.143.206.202"],"private":["10.176.208.103"]},"progress":100,"imageId":11,"metadata":{},"id":123920,"flavorId":1,"hostId":"b1abe2350d48630c8155d4a36dd23243","status":"ACTIVE"},{"name":"RS-DaneLocal1-1260232204876","addresses":{"public":["174.143.180.157"],"private":["10.176.208.104"]},"progress":100,"imageId":11,"metadata":{},"id":123922,"flavorId":1,"hostId":"e306179589f0cb365b3c2952b7806c94","status":"ACTIVE"},{"name":"RS-pbrack1-1260247002553","addresses":{"public":["174.143.183.156"],"private":["10.176.208.145"]},"progress":100,"imageId":12,"metadata":{},"id":124009,"flavorId":4,"hostId":"c3b3ac143b7cf95b9fe2bc35425a9514","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1260309676762","addresses":{"public":["174.143.183.195"],"private":["10.176.208.202"]},"progress":100,"imageId":12,"metadata":{},"id":124380,"flavorId":4,"hostId":"7c00404c3efa68400c80dab94475515f","status":"ACTIVE"},{"name":"RS-pbrack2-1260313643645","addresses":{"public":["174.143.183.217"],"private":["10.176.208.227"]},"progress":100,"imageId":12,"metadata":{},"id":124430,"flavorId":4,"hostId":"b5918306dec21da5b82f627fba3c5772","status":"ACTIVE"},{"name":"RS-DaneLocal2-1260319774539","addresses":{"public":["174.143.182.207"],"private":["10.176.209.1"]},"progress":100,"imageId":11,"metadata":{},"id":124495,"flavorId":1,"hostId":"35cad8e289464fe350b587361e1e20b7","status":"ACTIVE"},{"name":"RS-racklvm-126039722488","addresses":{"public":["174.143.181.234"],"private":["10.176.209.40"]},"progress":100,"imageId":10,"metadata":{},"id":124965,"flavorId":3,"hostId":"31ac8305c106795cf06b1f266cda0766","status":"ACTIVE"},{"name":"RS-racklvmv1-1260399674244","addresses":{"public":["174.143.207.216"],"private":["10.176.209.51"]},"progress":100,"imageId":10,"metadata":{},"id":125001,"flavorId":3,"hostId":"c138d5be588326c098a3241cdf7fe467","status":"ACTIVE"},{"name":"RS-rackspacetest1v2-1260404616323","addresses":{"public":["174.143.182.142"],"private":["10.176.209.68"]},"progress":100,"imageId":11,"metadata":{},"id":125052,"flavorId":2,"hostId":"3781e0b810d023bd58afd7d3a8d54fe5","status":"ACTIVE"},{"name":"RS-aarackspacetest-126040522735","addresses":{"public":["174.143.182.254"],"private":["10.176.209.71"]},"progress":100,"imageId":11,"metadata":{},"id":125061,"flavorId":3,"hostId":"e12d14510f7f1ce15c3a1565e1d27d7b","status":"ACTIVE"},{"name":"RS-danerack1-1260409846109","addresses":{"public":["174.143.183.5"],"private":["10.176.209.72"]},"progress":100,"imageId":11,"metadata":{},"id":125099,"flavorId":1,"hostId":"936cc34b3e603a480512493b9fbb664e","status":"ACTIVE"},{"name":"RS-racklvmv2-126046299622","addresses":{"public":["67.23.47.59"],"private":["10.176.209.88"]},"progress":100,"imageId":10,"metadata":{},"id":125430,"flavorId":3,"hostId":"63c0a27313416b6b1cde0d28a0a20726","status":"ACTIVE"}],"cloud":"11"},{"servers":[],"cloud":"13"},{"servers":[{"name":"slice75026","addresses":{"public":["67.23.45.78"],"private":["10.176.193.72"]},"progress":100,"imageId":9,"metadata":{},"id":75026,"flavorId":1,"hostId":"0b71cb5a6f8ff843f899e89ba76efb4c","status":"ACTIVE"},{"name":"slice75044","addresses":{"public":["67.23.45.88"],"private":["10.176.193.82"]},"progress":100,"imageId":9,"metadata":{},"id":75044,"flavorId":1,"hostId":"dc9ffecb65df19b72d4e85067bf21a9d","status":"ACTIVE"},{"name":"new-server-test","addresses":{"public":["174.143.207.30"],"private":["10.176.198.223"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79535,"flavorId":1,"hostId":"74b90e1722e3f72ef3cb3327b14d6f19","status":"ACTIVE"},{"name":"new-server-test2","addresses":{"public":["174.143.207.31"],"private":["10.176.198.224"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79538,"flavorId":1,"hostId":"cc0aa729e0ed41ab6c488e7d9a111a8a","status":"ACTIVE"},{"name":"jgrackspaceTst2","addresses":{"public":["174.143.180.74"],"private":["10.176.200.182"]},"progress":100,"imageId":9,"metadata":{},"id":82609,"flavorId":2,"hostId":"e78db2a677f42cd1f18cf86d027584a9","status":"ACTIVE"},{"name":"tve-super-awesome-server-08","addresses":{"public":["174.143.182.242"],"private":["10.176.198.200"]},"progress":100,"imageId":7,"metadata":{"data1":"Ohoho!","data2":"Ehehe!"},"id":84077,"flavorId":4,"hostId":"0cf3759a4f6bdac79bbc4d7d16e31d31","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143787390","addresses":{"public":["174.143.206.13"],"private":["10.176.196.147"]},"progress":100,"imageId":11,"metadata":{},"id":100741,"flavorId":1,"hostId":"f757ed7082553590593818064ff5ec8d","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143813325","addresses":{"public":["174.143.180.140"],"private":["10.176.198.3"]},"progress":100,"imageId":11,"metadata":{},"id":100742,"flavorId":1,"hostId":"65e4a04de2776918d475dbb971e99580","status":"ACTIVE"},{"name":"RS-TSBlankRack-125614591644","addresses":{"public":["174.143.181.7"],"private":["10.176.197.190"]},"progress":100,"imageId":11,"metadata":{},"id":100758,"flavorId":1,"hostId":"73b35a7e3a9435185cf35f42faa565ec","status":"ACTIVE"},{"name":"RS-ping-pongreciever-Rackspacev1-1256146452552","addresses":{"public":["67.23.47.5"],"private":["10.176.194.238"]},"progress":100,"imageId":11,"metadata":{},"id":100762,"flavorId":1,"hostId":"9fa4daad4ba37d4572424bfcd1d3ee22","status":"ACTIVE"},{"name":"RS-PRACK-1256571836376","addresses":{"public":["174.143.181.102"],"private":["10.176.198.31"]},"progress":100,"imageId":10,"metadata":{},"id":102863,"flavorId":1,"hostId":"99acd27b0082e2c9f80593a683fd7496","status":"ACTIVE"},{"name":"RS-StageRACK-1256575826994","addresses":{"public":["174.143.182.59"],"private":["10.176.200.111"]},"progress":100,"imageId":10,"metadata":{},"id":102910,"flavorId":1,"hostId":"6ca01874d2e72e9f121023a25cac8c35","status":"ACTIVE"},{"name":"RS-StageRACK-1256575849697","addresses":{"public":["174.143.182.213"],"private":["10.176.200.113"]},"progress":100,"imageId":10,"metadata":{},"id":102911,"flavorId":1,"hostId":"abaf0d89c641b4ab0341f34bca3d54bd","status":"ACTIVE"},{"name":"RS-StageRACK-125657598282","addresses":{"public":["174.143.182.216"],"private":["10.176.200.114"]},"progress":100,"imageId":10,"metadata":{},"id":102912,"flavorId":1,"hostId":"229068006d3f9e1c78cab9f121a4b958","status":"ACTIVE"},{"name":"RS-StageRACK-1256577861658","addresses":{"public":["174.143.182.221"],"private":["10.176.200.121"]},"progress":100,"imageId":10,"metadata":{},"id":102922,"flavorId":1,"hostId":"698425f9d570275d894fef01df7fd34b","status":"ACTIVE"},{"name":"RS-StageRACK-1256577893631","addresses":{"public":["174.143.182.222"],"private":["10.176.200.124"]},"progress":100,"imageId":10,"metadata":{},"id":102924,"flavorId":1,"hostId":"8fb63d50e5e88bc70ba0c2f4c3414637","status":"ACTIVE"},{"name":"RS-StageRACK-1256578313514","addresses":{"public":["174.143.182.227"],"private":["10.176.200.125"]},"progress":100,"imageId":10,"metadata":{},"id":102927,"flavorId":1,"hostId":"c81ca96999db446f6161e29f96fc0490","status":"ACTIVE"},{"name":"RS-StageRACK-1256578365384","addresses":{"public":["174.143.182.228"],"private":["10.176.200.128"]},"progress":100,"imageId":10,"metadata":{},"id":102928,"flavorId":1,"hostId":"3f38e469c9760bde75b81dab81939f1b","status":"ACTIVE"},{"name":"RS-StageRACK-1256591502131","addresses":{"public":["174.143.207.93"],"private":["10.176.198.202"]},"progress":100,"imageId":10,"metadata":{},"id":103022,"flavorId":1,"hostId":"ff3ac7e0b9f8c91b041c756ca020628b","status":"ACTIVE"},{"name":"RS-DONOTDELETEMARTIN-1256677280718","addresses":{"public":["174.143.206.53"],"private":["10.176.196.190"]},"progress":100,"imageId":10,"metadata":{},"id":103502,"flavorId":2,"hostId":"99a23dd12d73183c2e1faa651a4bd5a7","status":"ACTIVE"},{"name":"slice103976","addresses":{"public":["174.143.180.87"],"private":["10.176.198.41"]},"progress":100,"imageId":10,"metadata":{},"id":103976,"flavorId":2,"hostId":"db7832081663367471dde7bc4567dd8f","status":"ACTIVE"},{"name":"slice104707","addresses":{"public":["174.143.181.37"],"private":["10.176.198.240"]},"progress":100,"imageId":10,"metadata":{},"id":104707,"flavorId":2,"hostId":"c0cc23eeb2694f41bd8dada1711c7ed9","status":"ACTIVE"},{"name":"m12","addresses":{"public":["67.23.45.141"],"private":["10.176.195.196"]},"progress":100,"imageId":10,"metadata":{},"id":105360,"flavorId":2,"hostId":"1d75b92d037346f418b56d8f3cd7f1d1","status":"ACTIVE"},{"name":"RS-iancheftest-1257195243453","addresses":{"public":["174.143.182.7"],"private":["10.176.199.124"]},"progress":100,"imageId":10,"metadata":{},"id":106498,"flavorId":1,"hostId":"5339c0f9477ebb6eba0f7888cb357e13","status":"ACTIVE"},{"name":"RS-patrickracktest-1257370187513","addresses":{"public":["174.143.207.94"],"private":["10.176.196.18"]},"progress":100,"imageId":11,"metadata":{},"id":107719,"flavorId":1,"hostId":"e3f896d6a23c2bac1d82455283a78d56","status":"ACTIVE"},{"name":"RS-Awesome-125790468880","addresses":{"public":["174.143.204.220"],"private":["10.176.205.85"]},"progress":100,"imageId":9,"metadata":{},"id":111213,"flavorId":1,"hostId":"df63d67427fa181a62763c3f77bd2ee1","status":"ACTIVE"},{"name":"RS-PeterExperiment-1257972127588","addresses":{"public":["67.23.45.171"],"private":["10.176.205.114"]},"progress":100,"imageId":10,"metadata":{},"id":111681,"flavorId":2,"hostId":"9639c79380d3e469908cfb3e6e03c472","status":"ACTIVE"},{"name":"RS-PeterExperimentv1-1257972619614","addresses":{"public":["174.143.204.232"],"private":["10.176.205.115"]},"progress":100,"imageId":11,"metadata":{},"id":111684,"flavorId":3,"hostId":"c2efff3ba71db91dbb181af8bcf0195f","status":"ACTIVE"},{"name":"RS-DaneRS-125815580520","addresses":{"public":["174.143.204.23"],"private":["10.176.205.180"]},"progress":0,"imageId":20574,"metadata":{},"id":112810,"flavorId":1,"hostId":"0eca0e3e34f065a0ec22f09caf71b617","status":"BUILD"},{"name":"RS-RebootMe-1258494428264","addresses":{"public":["67.23.47.85"],"private":["10.176.206.23"]},"progress":100,"imageId":11,"metadata":{},"id":114584,"flavorId":1,"hostId":"90153713e24027fbf4aa4dc943fe7f16","status":"ACTIVE"},{"name":"RS-RelaunchMe-1258494433415","addresses":{"public":["174.143.205.103"],"private":["10.176.206.24"]},"progress":100,"imageId":11,"metadata":{},"id":114585,"flavorId":1,"hostId":"77350e12679599597699ef7f91be9a8e","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1258762176933","addresses":{"public":["174.143.207.182"],"private":["10.176.206.115"]},"progress":100,"imageId":10,"metadata":{},"id":116332,"flavorId":4,"hostId":"94f7bb6ace9babde573be05fd0e73548","status":"ACTIVE"},{"name":"RS-DomsRackspaceServerTestv1-1259781709147","addresses":{"public":["174.143.183.6"],"private":["10.176.207.165"]},"progress":100,"imageId":12,"metadata":{},"id":121434,"flavorId":3,"hostId":"16ad84d1cfb2139a62ab365537e686d6","status":"ACTIVE"},{"name":"RS-MultiPetericity1-1259791225514","addresses":{"public":["174.143.183.22"],"private":["10.176.207.181"]},"progress":100,"imageId":11,"metadata":{},"id":121527,"flavorId":1,"hostId":"60be17707163639d467cd093a7acdf95","status":"ACTIVE"},{"name":"RS-DomsDemoArray1-1259792157215","addresses":{"public":["174.143.183.24"],"private":["10.176.207.182"]},"progress":100,"imageId":10,"metadata":{},"id":121532,"flavorId":2,"hostId":"b7d9ac4fbb4fe1080bbbe26c0586646b","status":"ACTIVE"},{"name":"RS-DomsDemoArray2-125979223042","addresses":{"public":["174.143.183.26"],"private":["10.176.207.183"]},"progress":100,"imageId":10,"metadata":{},"id":121533,"flavorId":1,"hostId":"89433d649ac0849f868ec28e4b6030a3","status":"ACTIVE"},{"name":"RS-PeterTemplate-1259971447287","addresses":{"public":["67.23.46.38"],"private":["10.176.208.64"]},"progress":100,"imageId":11,"metadata":{},"id":122795,"flavorId":1,"hostId":"2624f82e2b9744c21143af90c405aa4f","status":"ACTIVE"},{"name":"RS-DaneMonitored-1260232014452","addresses":{"public":["174.143.206.202"],"private":["10.176.208.103"]},"progress":100,"imageId":11,"metadata":{},"id":123920,"flavorId":1,"hostId":"b1abe2350d48630c8155d4a36dd23243","status":"ACTIVE"},{"name":"RS-DaneLocal1-1260232204876","addresses":{"public":["174.143.180.157"],"private":["10.176.208.104"]},"progress":100,"imageId":11,"metadata":{},"id":123922,"flavorId":1,"hostId":"e306179589f0cb365b3c2952b7806c94","status":"ACTIVE"},{"name":"RS-pbrack1-1260247002553","addresses":{"public":["174.143.183.156"],"private":["10.176.208.145"]},"progress":100,"imageId":12,"metadata":{},"id":124009,"flavorId":4,"hostId":"c3b3ac143b7cf95b9fe2bc35425a9514","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1260309676762","addresses":{"public":["174.143.183.195"],"private":["10.176.208.202"]},"progress":100,"imageId":12,"metadata":{},"id":124380,"flavorId":4,"hostId":"7c00404c3efa68400c80dab94475515f","status":"ACTIVE"},{"name":"RS-pbrack2-1260313643645","addresses":{"public":["174.143.183.217"],"private":["10.176.208.227"]},"progress":100,"imageId":12,"metadata":{},"id":124430,"flavorId":4,"hostId":"b5918306dec21da5b82f627fba3c5772","status":"ACTIVE"},{"name":"RS-DaneLocal2-1260319774539","addresses":{"public":["174.143.182.207"],"private":["10.176.209.1"]},"progress":100,"imageId":11,"metadata":{},"id":124495,"flavorId":1,"hostId":"35cad8e289464fe350b587361e1e20b7","status":"ACTIVE"},{"name":"RS-racklvm-126039722488","addresses":{"public":["174.143.181.234"],"private":["10.176.209.40"]},"progress":100,"imageId":10,"metadata":{},"id":124965,"flavorId":3,"hostId":"31ac8305c106795cf06b1f266cda0766","status":"ACTIVE"},{"name":"RS-racklvmv1-1260399674244","addresses":{"public":["174.143.207.216"],"private":["10.176.209.51"]},"progress":100,"imageId":10,"metadata":{},"id":125001,"flavorId":3,"hostId":"c138d5be588326c098a3241cdf7fe467","status":"ACTIVE"},{"name":"RS-rackspacetest1v2-1260404616323","addresses":{"public":["174.143.182.142"],"private":["10.176.209.68"]},"progress":100,"imageId":11,"metadata":{},"id":125052,"flavorId":2,"hostId":"3781e0b810d023bd58afd7d3a8d54fe5","status":"ACTIVE"},{"name":"RS-aarackspacetest-126040522735","addresses":{"public":["174.143.182.254"],"private":["10.176.209.71"]},"progress":100,"imageId":11,"metadata":{},"id":125061,"flavorId":3,"hostId":"e12d14510f7f1ce15c3a1565e1d27d7b","status":"ACTIVE"},{"name":"RS-danerack1-1260409846109","addresses":{"public":["174.143.183.5"],"private":["10.176.209.72"]},"progress":100,"imageId":11,"metadata":{},"id":125099,"flavorId":1,"hostId":"936cc34b3e603a480512493b9fbb664e","status":"ACTIVE"},{"name":"RS-racklvmv2-126046299622","addresses":{"public":["67.23.47.59"],"private":["10.176.209.88"]},"progress":100,"imageId":10,"metadata":{},"id":125430,"flavorId":3,"hostId":"63c0a27313416b6b1cde0d28a0a20726","status":"ACTIVE"}],"cloud":"11"},{"servers":[],"cloud":"13"},{"servers":[{"name":"slice75026","addresses":{"public":["67.23.45.78"],"private":["10.176.193.72"]},"progress":100,"imageId":9,"metadata":{},"id":75026,"flavorId":1,"hostId":"0b71cb5a6f8ff843f899e89ba76efb4c","status":"ACTIVE"},{"name":"slice75044","addresses":{"public":["67.23.45.88"],"private":["10.176.193.82"]},"progress":100,"imageId":9,"metadata":{},"id":75044,"flavorId":1,"hostId":"dc9ffecb65df19b72d4e85067bf21a9d","status":"ACTIVE"},{"name":"new-server-test","addresses":{"public":["174.143.207.30"],"private":["10.176.198.223"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79535,"flavorId":1,"hostId":"74b90e1722e3f72ef3cb3327b14d6f19","status":"ACTIVE"},{"name":"new-server-test2","addresses":{"public":["174.143.207.31"],"private":["10.176.198.224"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79538,"flavorId":1,"hostId":"cc0aa729e0ed41ab6c488e7d9a111a8a","status":"ACTIVE"},{"name":"jgrackspaceTst2","addresses":{"public":["174.143.180.74"],"private":["10.176.200.182"]},"progress":100,"imageId":9,"metadata":{},"id":82609,"flavorId":2,"hostId":"e78db2a677f42cd1f18cf86d027584a9","status":"ACTIVE"},{"name":"tve-super-awesome-server-08","addresses":{"public":["174.143.182.242"],"private":["10.176.198.200"]},"progress":100,"imageId":7,"metadata":{"data1":"Ohoho!","data2":"Ehehe!"},"id":84077,"flavorId":4,"hostId":"0cf3759a4f6bdac79bbc4d7d16e31d31","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143787390","addresses":{"public":["174.143.206.13"],"private":["10.176.196.147"]},"progress":100,"imageId":11,"metadata":{},"id":100741,"flavorId":1,"hostId":"f757ed7082553590593818064ff5ec8d","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143813325","addresses":{"public":["174.143.180.140"],"private":["10.176.198.3"]},"progress":100,"imageId":11,"metadata":{},"id":100742,"flavorId":1,"hostId":"65e4a04de2776918d475dbb971e99580","status":"ACTIVE"},{"name":"RS-TSBlankRack-125614591644","addresses":{"public":["174.143.181.7"],"private":["10.176.197.190"]},"progress":100,"imageId":11,"metadata":{},"id":100758,"flavorId":1,"hostId":"73b35a7e3a9435185cf35f42faa565ec","status":"ACTIVE"},{"name":"RS-ping-pongreciever-Rackspacev1-1256146452552","addresses":{"public":["67.23.47.5"],"private":["10.176.194.238"]},"progress":100,"imageId":11,"metadata":{},"id":100762,"flavorId":1,"hostId":"9fa4daad4ba37d4572424bfcd1d3ee22","status":"ACTIVE"},{"name":"RS-PRACK-1256571836376","addresses":{"public":["174.143.181.102"],"private":["10.176.198.31"]},"progress":100,"imageId":10,"metadata":{},"id":102863,"flavorId":1,"hostId":"99acd27b0082e2c9f80593a683fd7496","status":"ACTIVE"},{"name":"RS-StageRACK-1256575826994","addresses":{"public":["174.143.182.59"],"private":["10.176.200.111"]},"progress":100,"imageId":10,"metadata":{},"id":102910,"flavorId":1,"hostId":"6ca01874d2e72e9f121023a25cac8c35","status":"ACTIVE"},{"name":"RS-StageRACK-1256575849697","addresses":{"public":["174.143.182.213"],"private":["10.176.200.113"]},"progress":100,"imageId":10,"metadata":{},"id":102911,"flavorId":1,"hostId":"abaf0d89c641b4ab0341f34bca3d54bd","status":"ACTIVE"},{"name":"RS-StageRACK-125657598282","addresses":{"public":["174.143.182.216"],"private":["10.176.200.114"]},"progress":100,"imageId":10,"metadata":{},"id":102912,"flavorId":1,"hostId":"229068006d3f9e1c78cab9f121a4b958","status":"ACTIVE"},{"name":"RS-StageRACK-1256577861658","addresses":{"public":["174.143.182.221"],"private":["10.176.200.121"]},"progress":100,"imageId":10,"metadata":{},"id":102922,"flavorId":1,"hostId":"698425f9d570275d894fef01df7fd34b","status":"ACTIVE"},{"name":"RS-StageRACK-1256577893631","addresses":{"public":["174.143.182.222"],"private":["10.176.200.124"]},"progress":100,"imageId":10,"metadata":{},"id":102924,"flavorId":1,"hostId":"8fb63d50e5e88bc70ba0c2f4c3414637","status":"ACTIVE"},{"name":"RS-StageRACK-1256578313514","addresses":{"public":["174.143.182.227"],"private":["10.176.200.125"]},"progress":100,"imageId":10,"metadata":{},"id":102927,"flavorId":1,"hostId":"c81ca96999db446f6161e29f96fc0490","status":"ACTIVE"},{"name":"RS-StageRACK-1256578365384","addresses":{"public":["174.143.182.228"],"private":["10.176.200.128"]},"progress":100,"imageId":10,"metadata":{},"id":102928,"flavorId":1,"hostId":"3f38e469c9760bde75b81dab81939f1b","status":"ACTIVE"},{"name":"RS-StageRACK-1256591502131","addresses":{"public":["174.143.207.93"],"private":["10.176.198.202"]},"progress":100,"imageId":10,"metadata":{},"id":103022,"flavorId":1,"hostId":"ff3ac7e0b9f8c91b041c756ca020628b","status":"ACTIVE"},{"name":"RS-DONOTDELETEMARTIN-1256677280718","addresses":{"public":["174.143.206.53"],"private":["10.176.196.190"]},"progress":100,"imageId":10,"metadata":{},"id":103502,"flavorId":2,"hostId":"99a23dd12d73183c2e1faa651a4bd5a7","status":"ACTIVE"},{"name":"slice103976","addresses":{"public":["174.143.180.87"],"private":["10.176.198.41"]},"progress":100,"imageId":10,"metadata":{},"id":103976,"flavorId":2,"hostId":"db7832081663367471dde7bc4567dd8f","status":"ACTIVE"},{"name":"slice104707","addresses":{"public":["174.143.181.37"],"private":["10.176.198.240"]},"progress":100,"imageId":10,"metadata":{},"id":104707,"flavorId":2,"hostId":"c0cc23eeb2694f41bd8dada1711c7ed9","status":"ACTIVE"},{"name":"m12","addresses":{"public":["67.23.45.141"],"private":["10.176.195.196"]},"progress":100,"imageId":10,"metadata":{},"id":105360,"flavorId":2,"hostId":"1d75b92d037346f418b56d8f3cd7f1d1","status":"ACTIVE"},{"name":"RS-iancheftest-1257195243453","addresses":{"public":["174.143.182.7"],"private":["10.176.199.124"]},"progress":100,"imageId":10,"metadata":{},"id":106498,"flavorId":1,"hostId":"5339c0f9477ebb6eba0f7888cb357e13","status":"ACTIVE"},{"name":"RS-patrickracktest-1257370187513","addresses":{"public":["174.143.207.94"],"private":["10.176.196.18"]},"progress":100,"imageId":11,"metadata":{},"id":107719,"flavorId":1,"hostId":"e3f896d6a23c2bac1d82455283a78d56","status":"ACTIVE"},{"name":"RS-Awesome-125790468880","addresses":{"public":["174.143.204.220"],"private":["10.176.205.85"]},"progress":100,"imageId":9,"metadata":{},"id":111213,"flavorId":1,"hostId":"df63d67427fa181a62763c3f77bd2ee1","status":"ACTIVE"},{"name":"RS-PeterExperiment-1257972127588","addresses":{"public":["67.23.45.171"],"private":["10.176.205.114"]},"progress":100,"imageId":10,"metadata":{},"id":111681,"flavorId":2,"hostId":"9639c79380d3e469908cfb3e6e03c472","status":"ACTIVE"},{"name":"RS-PeterExperimentv1-1257972619614","addresses":{"public":["174.143.204.232"],"private":["10.176.205.115"]},"progress":100,"imageId":11,"metadata":{},"id":111684,"flavorId":3,"hostId":"c2efff3ba71db91dbb181af8bcf0195f","status":"ACTIVE"},{"name":"RS-DaneRS-125815580520","addresses":{"public":["174.143.204.23"],"private":["10.176.205.180"]},"progress":0,"imageId":20574,"metadata":{},"id":112810,"flavorId":1,"hostId":"0eca0e3e34f065a0ec22f09caf71b617","status":"BUILD"},{"name":"RS-RebootMe-1258494428264","addresses":{"public":["67.23.47.85"],"private":["10.176.206.23"]},"progress":100,"imageId":11,"metadata":{},"id":114584,"flavorId":1,"hostId":"90153713e24027fbf4aa4dc943fe7f16","status":"ACTIVE"},{"name":"RS-RelaunchMe-1258494433415","addresses":{"public":["174.143.205.103"],"private":["10.176.206.24"]},"progress":100,"imageId":11,"metadata":{},"id":114585,"flavorId":1,"hostId":"77350e12679599597699ef7f91be9a8e","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1258762176933","addresses":{"public":["174.143.207.182"],"private":["10.176.206.115"]},"progress":100,"imageId":10,"metadata":{},"id":116332,"flavorId":4,"hostId":"94f7bb6ace9babde573be05fd0e73548","status":"ACTIVE"},{"name":"RS-DomsRackspaceServerTestv1-1259781709147","addresses":{"public":["174.143.183.6"],"private":["10.176.207.165"]},"progress":100,"imageId":12,"metadata":{},"id":121434,"flavorId":3,"hostId":"16ad84d1cfb2139a62ab365537e686d6","status":"ACTIVE"},{"name":"RS-MultiPetericity1-1259791225514","addresses":{"public":["174.143.183.22"],"private":["10.176.207.181"]},"progress":100,"imageId":11,"metadata":{},"id":121527,"flavorId":1,"hostId":"60be17707163639d467cd093a7acdf95","status":"ACTIVE"},{"name":"RS-DomsDemoArray1-1259792157215","addresses":{"public":["174.143.183.24"],"private":["10.176.207.182"]},"progress":100,"imageId":10,"metadata":{},"id":121532,"flavorId":2,"hostId":"b7d9ac4fbb4fe1080bbbe26c0586646b","status":"ACTIVE"},{"name":"RS-DomsDemoArray2-125979223042","addresses":{"public":["174.143.183.26"],"private":["10.176.207.183"]},"progress":100,"imageId":10,"metadata":{},"id":121533,"flavorId":1,"hostId":"89433d649ac0849f868ec28e4b6030a3","status":"ACTIVE"},{"name":"RS-PeterTemplate-1259971447287","addresses":{"public":["67.23.46.38"],"private":["10.176.208.64"]},"progress":100,"imageId":11,"metadata":{},"id":122795,"flavorId":1,"hostId":"2624f82e2b9744c21143af90c405aa4f","status":"ACTIVE"},{"name":"RS-DaneMonitored-1260232014452","addresses":{"public":["174.143.206.202"],"private":["10.176.208.103"]},"progress":100,"imageId":11,"metadata":{},"id":123920,"flavorId":1,"hostId":"b1abe2350d48630c8155d4a36dd23243","status":"ACTIVE"},{"name":"RS-DaneLocal1-1260232204876","addresses":{"public":["174.143.180.157"],"private":["10.176.208.104"]},"progress":100,"imageId":11,"metadata":{},"id":123922,"flavorId":1,"hostId":"e306179589f0cb365b3c2952b7806c94","status":"ACTIVE"},{"name":"RS-pbrack1-1260247002553","addresses":{"public":["174.143.183.156"],"private":["10.176.208.145"]},"progress":100,"imageId":12,"metadata":{},"id":124009,"flavorId":4,"hostId":"c3b3ac143b7cf95b9fe2bc35425a9514","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1260309676762","addresses":{"public":["174.143.183.195"],"private":["10.176.208.202"]},"progress":100,"imageId":12,"metadata":{},"id":124380,"flavorId":4,"hostId":"7c00404c3efa68400c80dab94475515f","status":"ACTIVE"},{"name":"RS-pbrack2-1260313643645","addresses":{"public":["174.143.183.217"],"private":["10.176.208.227"]},"progress":100,"imageId":12,"metadata":{},"id":124430,"flavorId":4,"hostId":"b5918306dec21da5b82f627fba3c5772","status":"ACTIVE"},{"name":"RS-DaneLocal2-1260319774539","addresses":{"public":["174.143.182.207"],"private":["10.176.209.1"]},"progress":100,"imageId":11,"metadata":{},"id":124495,"flavorId":1,"hostId":"35cad8e289464fe350b587361e1e20b7","status":"ACTIVE"},{"name":"RS-racklvm-126039722488","addresses":{"public":["174.143.181.234"],"private":["10.176.209.40"]},"progress":100,"imageId":10,"metadata":{},"id":124965,"flavorId":3,"hostId":"31ac8305c106795cf06b1f266cda0766","status":"ACTIVE"},{"name":"RS-racklvmv1-1260399674244","addresses":{"public":["174.143.207.216"],"private":["10.176.209.51"]},"progress":100,"imageId":10,"metadata":{},"id":125001,"flavorId":3,"hostId":"c138d5be588326c098a3241cdf7fe467","status":"ACTIVE"},{"name":"RS-rackspacetest1v2-1260404616323","addresses":{"public":["174.143.182.142"],"private":["10.176.209.68"]},"progress":100,"imageId":11,"metadata":{},"id":125052,"flavorId":2,"hostId":"3781e0b810d023bd58afd7d3a8d54fe5","status":"ACTIVE"},{"name":"RS-aarackspacetest-126040522735","addresses":{"public":["174.143.182.254"],"private":["10.176.209.71"]},"progress":100,"imageId":11,"metadata":{},"id":125061,"flavorId":3,"hostId":"e12d14510f7f1ce15c3a1565e1d27d7b","status":"ACTIVE"},{"name":"RS-danerack1-1260409846109","addresses":{"public":["174.143.183.5"],"private":["10.176.209.72"]},"progress":100,"imageId":11,"metadata":{},"id":125099,"flavorId":1,"hostId":"936cc34b3e603a480512493b9fbb664e","status":"ACTIVE"},{"name":"RS-racklvmv2-126046299622","addresses":{"public":["67.23.47.59"],"private":["10.176.209.88"]},"progress":100,"imageId":10,"metadata":{},"id":125430,"flavorId":3,"hostId":"63c0a27313416b6b1cde0d28a0a20726","status":"ACTIVE"}],"cloud":"11"},{"servers":[],"cloud":"13"},{"servers":[{"name":"slice75026","addresses":{"public":["67.23.45.78"],"private":["10.176.193.72"]},"progress":100,"imageId":9,"metadata":{},"id":75026,"flavorId":1,"hostId":"0b71cb5a6f8ff843f899e89ba76efb4c","status":"ACTIVE"},{"name":"slice75044","addresses":{"public":["67.23.45.88"],"private":["10.176.193.82"]},"progress":100,"imageId":9,"metadata":{},"id":75044,"flavorId":1,"hostId":"dc9ffecb65df19b72d4e85067bf21a9d","status":"ACTIVE"},{"name":"new-server-test","addresses":{"public":["174.143.207.30"],"private":["10.176.198.223"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79535,"flavorId":1,"hostId":"74b90e1722e3f72ef3cb3327b14d6f19","status":"ACTIVE"},{"name":"new-server-test2","addresses":{"public":["174.143.207.31"],"private":["10.176.198.224"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79538,"flavorId":1,"hostId":"cc0aa729e0ed41ab6c488e7d9a111a8a","status":"ACTIVE"},{"name":"jgrackspaceTst2","addresses":{"public":["174.143.180.74"],"private":["10.176.200.182"]},"progress":100,"imageId":9,"metadata":{},"id":82609,"flavorId":2,"hostId":"e78db2a677f42cd1f18cf86d027584a9","status":"ACTIVE"},{"name":"tve-super-awesome-server-08","addresses":{"public":["174.143.182.242"],"private":["10.176.198.200"]},"progress":100,"imageId":7,"metadata":{"data1":"Ohoho!","data2":"Ehehe!"},"id":84077,"flavorId":4,"hostId":"0cf3759a4f6bdac79bbc4d7d16e31d31","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143787390","addresses":{"public":["174.143.206.13"],"private":["10.176.196.147"]},"progress":100,"imageId":11,"metadata":{},"id":100741,"flavorId":1,"hostId":"f757ed7082553590593818064ff5ec8d","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143813325","addresses":{"public":["174.143.180.140"],"private":["10.176.198.3"]},"progress":100,"imageId":11,"metadata":{},"id":100742,"flavorId":1,"hostId":"65e4a04de2776918d475dbb971e99580","status":"ACTIVE"},{"name":"RS-TSBlankRack-125614591644","addresses":{"public":["174.143.181.7"],"private":["10.176.197.190"]},"progress":100,"imageId":11,"metadata":{},"id":100758,"flavorId":1,"hostId":"73b35a7e3a9435185cf35f42faa565ec","status":"ACTIVE"},{"name":"RS-ping-pongreciever-Rackspacev1-1256146452552","addresses":{"public":["67.23.47.5"],"private":["10.176.194.238"]},"progress":100,"imageId":11,"metadata":{},"id":100762,"flavorId":1,"hostId":"9fa4daad4ba37d4572424bfcd1d3ee22","status":"ACTIVE"},{"name":"RS-PRACK-1256571836376","addresses":{"public":["174.143.181.102"],"private":["10.176.198.31"]},"progress":100,"imageId":10,"metadata":{},"id":102863,"flavorId":1,"hostId":"99acd27b0082e2c9f80593a683fd7496","status":"ACTIVE"},{"name":"RS-StageRACK-1256575826994","addresses":{"public":["174.143.182.59"],"private":["10.176.200.111"]},"progress":100,"imageId":10,"metadata":{},"id":102910,"flavorId":1,"hostId":"6ca01874d2e72e9f121023a25cac8c35","status":"ACTIVE"},{"name":"RS-StageRACK-1256575849697","addresses":{"public":["174.143.182.213"],"private":["10.176.200.113"]},"progress":100,"imageId":10,"metadata":{},"id":102911,"flavorId":1,"hostId":"abaf0d89c641b4ab0341f34bca3d54bd","status":"ACTIVE"},{"name":"RS-StageRACK-125657598282","addresses":{"public":["174.143.182.216"],"private":["10.176.200.114"]},"progress":100,"imageId":10,"metadata":{},"id":102912,"flavorId":1,"hostId":"229068006d3f9e1c78cab9f121a4b958","status":"ACTIVE"},{"name":"RS-StageRACK-1256577861658","addresses":{"public":["174.143.182.221"],"private":["10.176.200.121"]},"progress":100,"imageId":10,"metadata":{},"id":102922,"flavorId":1,"hostId":"698425f9d570275d894fef01df7fd34b","status":"ACTIVE"},{"name":"RS-StageRACK-1256577893631","addresses":{"public":["174.143.182.222"],"private":["10.176.200.124"]},"progress":100,"imageId":10,"metadata":{},"id":102924,"flavorId":1,"hostId":"8fb63d50e5e88bc70ba0c2f4c3414637","status":"ACTIVE"},{"name":"RS-StageRACK-1256578313514","addresses":{"public":["174.143.182.227"],"private":["10.176.200.125"]},"progress":100,"imageId":10,"metadata":{},"id":102927,"flavorId":1,"hostId":"c81ca96999db446f6161e29f96fc0490","status":"ACTIVE"},{"name":"RS-StageRACK-1256578365384","addresses":{"public":["174.143.182.228"],"private":["10.176.200.128"]},"progress":100,"imageId":10,"metadata":{},"id":102928,"flavorId":1,"hostId":"3f38e469c9760bde75b81dab81939f1b","status":"ACTIVE"},{"name":"RS-StageRACK-1256591502131","addresses":{"public":["174.143.207.93"],"private":["10.176.198.202"]},"progress":100,"imageId":10,"metadata":{},"id":103022,"flavorId":1,"hostId":"ff3ac7e0b9f8c91b041c756ca020628b","status":"ACTIVE"},{"name":"RS-DONOTDELETEMARTIN-1256677280718","addresses":{"public":["174.143.206.53"],"private":["10.176.196.190"]},"progress":100,"imageId":10,"metadata":{},"id":103502,"flavorId":2,"hostId":"99a23dd12d73183c2e1faa651a4bd5a7","status":"ACTIVE"},{"name":"slice103976","addresses":{"public":["174.143.180.87"],"private":["10.176.198.41"]},"progress":100,"imageId":10,"metadata":{},"id":103976,"flavorId":2,"hostId":"db7832081663367471dde7bc4567dd8f","status":"ACTIVE"},{"name":"slice104707","addresses":{"public":["174.143.181.37"],"private":["10.176.198.240"]},"progress":100,"imageId":10,"metadata":{},"id":104707,"flavorId":2,"hostId":"c0cc23eeb2694f41bd8dada1711c7ed9","status":"ACTIVE"},{"name":"m12","addresses":{"public":["67.23.45.141"],"private":["10.176.195.196"]},"progress":100,"imageId":10,"metadata":{},"id":105360,"flavorId":2,"hostId":"1d75b92d037346f418b56d8f3cd7f1d1","status":"ACTIVE"},{"name":"RS-iancheftest-1257195243453","addresses":{"public":["174.143.182.7"],"private":["10.176.199.124"]},"progress":100,"imageId":10,"metadata":{},"id":106498,"flavorId":1,"hostId":"5339c0f9477ebb6eba0f7888cb357e13","status":"ACTIVE"},{"name":"RS-patrickracktest-1257370187513","addresses":{"public":["174.143.207.94"],"private":["10.176.196.18"]},"progress":100,"imageId":11,"metadata":{},"id":107719,"flavorId":1,"hostId":"e3f896d6a23c2bac1d82455283a78d56","status":"ACTIVE"},{"name":"RS-Awesome-125790468880","addresses":{"public":["174.143.204.220"],"private":["10.176.205.85"]},"progress":100,"imageId":9,"metadata":{},"id":111213,"flavorId":1,"hostId":"df63d67427fa181a62763c3f77bd2ee1","status":"ACTIVE"},{"name":"RS-PeterExperiment-1257972127588","addresses":{"public":["67.23.45.171"],"private":["10.176.205.114"]},"progress":100,"imageId":10,"metadata":{},"id":111681,"flavorId":2,"hostId":"9639c79380d3e469908cfb3e6e03c472","status":"ACTIVE"},{"name":"RS-PeterExperimentv1-1257972619614","addresses":{"public":["174.143.204.232"],"private":["10.176.205.115"]},"progress":100,"imageId":11,"metadata":{},"id":111684,"flavorId":3,"hostId":"c2efff3ba71db91dbb181af8bcf0195f","status":"ACTIVE"},{"name":"RS-DaneRS-125815580520","addresses":{"public":["174.143.204.23"],"private":["10.176.205.180"]},"progress":0,"imageId":20574,"metadata":{},"id":112810,"flavorId":1,"hostId":"0eca0e3e34f065a0ec22f09caf71b617","status":"BUILD"},{"name":"RS-RebootMe-1258494428264","addresses":{"public":["67.23.47.85"],"private":["10.176.206.23"]},"progress":100,"imageId":11,"metadata":{},"id":114584,"flavorId":1,"hostId":"90153713e24027fbf4aa4dc943fe7f16","status":"ACTIVE"},{"name":"RS-RelaunchMe-1258494433415","addresses":{"public":["174.143.205.103"],"private":["10.176.206.24"]},"progress":100,"imageId":11,"metadata":{},"id":114585,"flavorId":1,"hostId":"77350e12679599597699ef7f91be9a8e","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1258762176933","addresses":{"public":["174.143.207.182"],"private":["10.176.206.115"]},"progress":100,"imageId":10,"metadata":{},"id":116332,"flavorId":4,"hostId":"94f7bb6ace9babde573be05fd0e73548","status":"ACTIVE"},{"name":"RS-DomsRackspaceServerTestv1-1259781709147","addresses":{"public":["174.143.183.6"],"private":["10.176.207.165"]},"progress":100,"imageId":12,"metadata":{},"id":121434,"flavorId":3,"hostId":"16ad84d1cfb2139a62ab365537e686d6","status":"ACTIVE"},{"name":"RS-MultiPetericity1-1259791225514","addresses":{"public":["174.143.183.22"],"private":["10.176.207.181"]},"progress":100,"imageId":11,"metadata":{},"id":121527,"flavorId":1,"hostId":"60be17707163639d467cd093a7acdf95","status":"ACTIVE"},{"name":"RS-DomsDemoArray1-1259792157215","addresses":{"public":["174.143.183.24"],"private":["10.176.207.182"]},"progress":100,"imageId":10,"metadata":{},"id":121532,"flavorId":2,"hostId":"b7d9ac4fbb4fe1080bbbe26c0586646b","status":"ACTIVE"},{"name":"RS-DomsDemoArray2-125979223042","addresses":{"public":["174.143.183.26"],"private":["10.176.207.183"]},"progress":100,"imageId":10,"metadata":{},"id":121533,"flavorId":1,"hostId":"89433d649ac0849f868ec28e4b6030a3","status":"ACTIVE"},{"name":"RS-PeterTemplate-1259971447287","addresses":{"public":["67.23.46.38"],"private":["10.176.208.64"]},"progress":100,"imageId":11,"metadata":{},"id":122795,"flavorId":1,"hostId":"2624f82e2b9744c21143af90c405aa4f","status":"ACTIVE"},{"name":"RS-DaneMonitored-1260232014452","addresses":{"public":["174.143.206.202"],"private":["10.176.208.103"]},"progress":100,"imageId":11,"metadata":{},"id":123920,"flavorId":1,"hostId":"b1abe2350d48630c8155d4a36dd23243","status":"ACTIVE"},{"name":"RS-DaneLocal1-1260232204876","addresses":{"public":["174.143.180.157"],"private":["10.176.208.104"]},"progress":100,"imageId":11,"metadata":{},"id":123922,"flavorId":1,"hostId":"e306179589f0cb365b3c2952b7806c94","status":"ACTIVE"},{"name":"RS-pbrack1-1260247002553","addresses":{"public":["174.143.183.156"],"private":["10.176.208.145"]},"progress":100,"imageId":12,"metadata":{},"id":124009,"flavorId":4,"hostId":"c3b3ac143b7cf95b9fe2bc35425a9514","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1260309676762","addresses":{"public":["174.143.183.195"],"private":["10.176.208.202"]},"progress":100,"imageId":12,"metadata":{},"id":124380,"flavorId":4,"hostId":"7c00404c3efa68400c80dab94475515f","status":"ACTIVE"},{"name":"RS-pbrack2-1260313643645","addresses":{"public":["174.143.183.217"],"private":["10.176.208.227"]},"progress":100,"imageId":12,"metadata":{},"id":124430,"flavorId":4,"hostId":"b5918306dec21da5b82f627fba3c5772","status":"ACTIVE"},{"name":"RS-DaneLocal2-1260319774539","addresses":{"public":["174.143.182.207"],"private":["10.176.209.1"]},"progress":100,"imageId":11,"metadata":{},"id":124495,"flavorId":1,"hostId":"35cad8e289464fe350b587361e1e20b7","status":"ACTIVE"},{"name":"RS-racklvm-126039722488","addresses":{"public":["174.143.181.234"],"private":["10.176.209.40"]},"progress":100,"imageId":10,"metadata":{},"id":124965,"flavorId":3,"hostId":"31ac8305c106795cf06b1f266cda0766","status":"ACTIVE"},{"name":"RS-racklvmv1-1260399674244","addresses":{"public":["174.143.207.216"],"private":["10.176.209.51"]},"progress":100,"imageId":10,"metadata":{},"id":125001,"flavorId":3,"hostId":"c138d5be588326c098a3241cdf7fe467","status":"ACTIVE"},{"name":"RS-rackspacetest1v2-1260404616323","addresses":{"public":["174.143.182.142"],"private":["10.176.209.68"]},"progress":100,"imageId":11,"metadata":{},"id":125052,"flavorId":2,"hostId":"3781e0b810d023bd58afd7d3a8d54fe5","status":"ACTIVE"},{"name":"RS-aarackspacetest-126040522735","addresses":{"public":["174.143.182.254"],"private":["10.176.209.71"]},"progress":100,"imageId":11,"metadata":{},"id":125061,"flavorId":3,"hostId":"e12d14510f7f1ce15c3a1565e1d27d7b","status":"ACTIVE"},{"name":"RS-danerack1-1260409846109","addresses":{"public":["174.143.183.5"],"private":["10.176.209.72"]},"progress":100,"imageId":11,"metadata":{},"id":125099,"flavorId":1,"hostId":"936cc34b3e603a480512493b9fbb664e","status":"ACTIVE"},{"name":"RS-racklvmv2-126046299622","addresses":{"public":["67.23.47.59"],"private":["10.176.209.88"]},"progress":100,"imageId":10,"metadata":{},"id":125430,"flavorId":3,"hostId":"63c0a27313416b6b1cde0d28a0a20726","status":"ACTIVE"}],"cloud":"11"},{"servers":[],"cloud":"13"},{"servers":[{"name":"slice75026","addresses":{"public":["67.23.45.78"],"private":["10.176.193.72"]},"progress":100,"imageId":9,"metadata":{},"id":75026,"flavorId":1,"hostId":"0b71cb5a6f8ff843f899e89ba76efb4c","status":"ACTIVE"},{"name":"slice75044","addresses":{"public":["67.23.45.88"],"private":["10.176.193.82"]},"progress":100,"imageId":9,"metadata":{},"id":75044,"flavorId":1,"hostId":"dc9ffecb65df19b72d4e85067bf21a9d","status":"ACTIVE"},{"name":"new-server-test","addresses":{"public":["174.143.207.30"],"private":["10.176.198.223"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79535,"flavorId":1,"hostId":"74b90e1722e3f72ef3cb3327b14d6f19","status":"ACTIVE"},{"name":"new-server-test2","addresses":{"public":["174.143.207.31"],"private":["10.176.198.224"]},"progress":100,"imageId":8,"metadata":{"My Server Name":"Apache1"},"id":79538,"flavorId":1,"hostId":"cc0aa729e0ed41ab6c488e7d9a111a8a","status":"ACTIVE"},{"name":"jgrackspaceTst2","addresses":{"public":["174.143.180.74"],"private":["10.176.200.182"]},"progress":100,"imageId":9,"metadata":{},"id":82609,"flavorId":2,"hostId":"e78db2a677f42cd1f18cf86d027584a9","status":"ACTIVE"},{"name":"tve-super-awesome-server-08","addresses":{"public":["174.143.182.242"],"private":["10.176.198.200"]},"progress":100,"imageId":7,"metadata":{"data1":"Ohoho!","data2":"Ehehe!"},"id":84077,"flavorId":4,"hostId":"0cf3759a4f6bdac79bbc4d7d16e31d31","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143787390","addresses":{"public":["174.143.206.13"],"private":["10.176.196.147"]},"progress":100,"imageId":11,"metadata":{},"id":100741,"flavorId":1,"hostId":"f757ed7082553590593818064ff5ec8d","status":"ACTIVE"},{"name":"RS-TSBlankRack-1256143813325","addresses":{"public":["174.143.180.140"],"private":["10.176.198.3"]},"progress":100,"imageId":11,"metadata":{},"id":100742,"flavorId":1,"hostId":"65e4a04de2776918d475dbb971e99580","status":"ACTIVE"},{"name":"RS-TSBlankRack-125614591644","addresses":{"public":["174.143.181.7"],"private":["10.176.197.190"]},"progress":100,"imageId":11,"metadata":{},"id":100758,"flavorId":1,"hostId":"73b35a7e3a9435185cf35f42faa565ec","status":"ACTIVE"},{"name":"RS-ping-pongreciever-Rackspacev1-1256146452552","addresses":{"public":["67.23.47.5"],"private":["10.176.194.238"]},"progress":100,"imageId":11,"metadata":{},"id":100762,"flavorId":1,"hostId":"9fa4daad4ba37d4572424bfcd1d3ee22","status":"ACTIVE"},{"name":"RS-PRACK-1256571836376","addresses":{"public":["174.143.181.102"],"private":["10.176.198.31"]},"progress":100,"imageId":10,"metadata":{},"id":102863,"flavorId":1,"hostId":"99acd27b0082e2c9f80593a683fd7496","status":"ACTIVE"},{"name":"RS-StageRACK-1256575826994","addresses":{"public":["174.143.182.59"],"private":["10.176.200.111"]},"progress":100,"imageId":10,"metadata":{},"id":102910,"flavorId":1,"hostId":"6ca01874d2e72e9f121023a25cac8c35","status":"ACTIVE"},{"name":"RS-StageRACK-1256575849697","addresses":{"public":["174.143.182.213"],"private":["10.176.200.113"]},"progress":100,"imageId":10,"metadata":{},"id":102911,"flavorId":1,"hostId":"abaf0d89c641b4ab0341f34bca3d54bd","status":"ACTIVE"},{"name":"RS-StageRACK-125657598282","addresses":{"public":["174.143.182.216"],"private":["10.176.200.114"]},"progress":100,"imageId":10,"metadata":{},"id":102912,"flavorId":1,"hostId":"229068006d3f9e1c78cab9f121a4b958","status":"ACTIVE"},{"name":"RS-StageRACK-1256577861658","addresses":{"public":["174.143.182.221"],"private":["10.176.200.121"]},"progress":100,"imageId":10,"metadata":{},"id":102922,"flavorId":1,"hostId":"698425f9d570275d894fef01df7fd34b","status":"ACTIVE"},{"name":"RS-StageRACK-1256577893631","addresses":{"public":["174.143.182.222"],"private":["10.176.200.124"]},"progress":100,"imageId":10,"metadata":{},"id":102924,"flavorId":1,"hostId":"8fb63d50e5e88bc70ba0c2f4c3414637","status":"ACTIVE"},{"name":"RS-StageRACK-1256578313514","addresses":{"public":["174.143.182.227"],"private":["10.176.200.125"]},"progress":100,"imageId":10,"metadata":{},"id":102927,"flavorId":1,"hostId":"c81ca96999db446f6161e29f96fc0490","status":"ACTIVE"},{"name":"RS-StageRACK-1256578365384","addresses":{"public":["174.143.182.228"],"private":["10.176.200.128"]},"progress":100,"imageId":10,"metadata":{},"id":102928,"flavorId":1,"hostId":"3f38e469c9760bde75b81dab81939f1b","status":"ACTIVE"},{"name":"RS-StageRACK-1256591502131","addresses":{"public":["174.143.207.93"],"private":["10.176.198.202"]},"progress":100,"imageId":10,"metadata":{},"id":103022,"flavorId":1,"hostId":"ff3ac7e0b9f8c91b041c756ca020628b","status":"ACTIVE"},{"name":"RS-DONOTDELETEMARTIN-1256677280718","addresses":{"public":["174.143.206.53"],"private":["10.176.196.190"]},"progress":100,"imageId":10,"metadata":{},"id":103502,"flavorId":2,"hostId":"99a23dd12d73183c2e1faa651a4bd5a7","status":"ACTIVE"},{"name":"slice103976","addresses":{"public":["174.143.180.87"],"private":["10.176.198.41"]},"progress":100,"imageId":10,"metadata":{},"id":103976,"flavorId":2,"hostId":"db7832081663367471dde7bc4567dd8f","status":"ACTIVE"},{"name":"slice104707","addresses":{"public":["174.143.181.37"],"private":["10.176.198.240"]},"progress":100,"imageId":10,"metadata":{},"id":104707,"flavorId":2,"hostId":"c0cc23eeb2694f41bd8dada1711c7ed9","status":"ACTIVE"},{"name":"m12","addresses":{"public":["67.23.45.141"],"private":["10.176.195.196"]},"progress":100,"imageId":10,"metadata":{},"id":105360,"flavorId":2,"hostId":"1d75b92d037346f418b56d8f3cd7f1d1","status":"ACTIVE"},{"name":"RS-iancheftest-1257195243453","addresses":{"public":["174.143.182.7"],"private":["10.176.199.124"]},"progress":100,"imageId":10,"metadata":{},"id":106498,"flavorId":1,"hostId":"5339c0f9477ebb6eba0f7888cb357e13","status":"ACTIVE"},{"name":"RS-patrickracktest-1257370187513","addresses":{"public":["174.143.207.94"],"private":["10.176.196.18"]},"progress":100,"imageId":11,"metadata":{},"id":107719,"flavorId":1,"hostId":"e3f896d6a23c2bac1d82455283a78d56","status":"ACTIVE"},{"name":"RS-Awesome-125790468880","addresses":{"public":["174.143.204.220"],"private":["10.176.205.85"]},"progress":100,"imageId":9,"metadata":{},"id":111213,"flavorId":1,"hostId":"df63d67427fa181a62763c3f77bd2ee1","status":"ACTIVE"},{"name":"RS-PeterExperiment-1257972127588","addresses":{"public":["67.23.45.171"],"private":["10.176.205.114"]},"progress":100,"imageId":10,"metadata":{},"id":111681,"flavorId":2,"hostId":"9639c79380d3e469908cfb3e6e03c472","status":"ACTIVE"},{"name":"RS-PeterExperimentv1-1257972619614","addresses":{"public":["174.143.204.232"],"private":["10.176.205.115"]},"progress":100,"imageId":11,"metadata":{},"id":111684,"flavorId":3,"hostId":"c2efff3ba71db91dbb181af8bcf0195f","status":"ACTIVE"},{"name":"RS-DaneRS-125815580520","addresses":{"public":["174.143.204.23"],"private":["10.176.205.180"]},"progress":0,"imageId":20574,"metadata":{},"id":112810,"flavorId":1,"hostId":"0eca0e3e34f065a0ec22f09caf71b617","status":"BUILD"},{"name":"RS-RebootMe-1258494428264","addresses":{"public":["67.23.47.85"],"private":["10.176.206.23"]},"progress":100,"imageId":11,"metadata":{},"id":114584,"flavorId":1,"hostId":"90153713e24027fbf4aa4dc943fe7f16","status":"ACTIVE"},{"name":"RS-RelaunchMe-1258494433415","addresses":{"public":["174.143.205.103"],"private":["10.176.206.24"]},"progress":100,"imageId":11,"metadata":{},"id":114585,"flavorId":1,"hostId":"77350e12679599597699ef7f91be9a8e","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1258762176933","addresses":{"public":["174.143.207.182"],"private":["10.176.206.115"]},"progress":100,"imageId":10,"metadata":{},"id":116332,"flavorId":4,"hostId":"94f7bb6ace9babde573be05fd0e73548","status":"ACTIVE"},{"name":"RS-DomsRackspaceServerTestv1-1259781709147","addresses":{"public":["174.143.183.6"],"private":["10.176.207.165"]},"progress":100,"imageId":12,"metadata":{},"id":121434,"flavorId":3,"hostId":"16ad84d1cfb2139a62ab365537e686d6","status":"ACTIVE"},{"name":"RS-MultiPetericity1-1259791225514","addresses":{"public":["174.143.183.22"],"private":["10.176.207.181"]},"progress":100,"imageId":11,"metadata":{},"id":121527,"flavorId":1,"hostId":"60be17707163639d467cd093a7acdf95","status":"ACTIVE"},{"name":"RS-DomsDemoArray1-1259792157215","addresses":{"public":["174.143.183.24"],"private":["10.176.207.182"]},"progress":100,"imageId":10,"metadata":{},"id":121532,"flavorId":2,"hostId":"b7d9ac4fbb4fe1080bbbe26c0586646b","status":"ACTIVE"},{"name":"RS-DomsDemoArray2-125979223042","addresses":{"public":["174.143.183.26"],"private":["10.176.207.183"]},"progress":100,"imageId":10,"metadata":{},"id":121533,"flavorId":1,"hostId":"89433d649ac0849f868ec28e4b6030a3","status":"ACTIVE"},{"name":"RS-PeterTemplate-1259971447287","addresses":{"public":["67.23.46.38"],"private":["10.176.208.64"]},"progress":100,"imageId":11,"metadata":{},"id":122795,"flavorId":1,"hostId":"2624f82e2b9744c21143af90c405aa4f","status":"ACTIVE"},{"name":"RS-DaneMonitored-1260232014452","addresses":{"public":["174.143.206.202"],"private":["10.176.208.103"]},"progress":100,"imageId":11,"metadata":{},"id":123920,"flavorId":1,"hostId":"b1abe2350d48630c8155d4a36dd23243","status":"ACTIVE"},{"name":"RS-DaneLocal1-1260232204876","addresses":{"public":["174.143.180.157"],"private":["10.176.208.104"]},"progress":100,"imageId":11,"metadata":{},"id":123922,"flavorId":1,"hostId":"e306179589f0cb365b3c2952b7806c94","status":"ACTIVE"},{"name":"RS-pbrack1-1260247002553","addresses":{"public":["174.143.183.156"],"private":["10.176.208.145"]},"progress":100,"imageId":12,"metadata":{},"id":124009,"flavorId":4,"hostId":"c3b3ac143b7cf95b9fe2bc35425a9514","status":"ACTIVE"},{"name":"RS-jgrackSpaceTst2-1260309676762","addresses":{"public":["174.143.183.195"],"private":["10.176.208.202"]},"progress":100,"imageId":12,"metadata":{},"id":124380,"flavorId":4,"hostId":"7c00404c3efa68400c80dab94475515f","status":"ACTIVE"},{"name":"RS-pbrack2-1260313643645","addresses":{"public":["174.143.183.217"],"private":["10.176.208.227"]},"progress":100,"imageId":12,"metadata":{},"id":124430,"flavorId":4,"hostId":"b5918306dec21da5b82f627fba3c5772","status":"ACTIVE"},{"name":"RS-DaneLocal2-1260319774539","addresses":{"public":["174.143.182.207"],"private":["10.176.209.1"]},"progress":100,"imageId":11,"metadata":{},"id":124495,"flavorId":1,"hostId":"35cad8e289464fe350b587361e1e20b7","status":"ACTIVE"},{"name":"RS-racklvm-126039722488","addresses":{"public":["174.143.181.234"],"private":["10.176.209.40"]},"progress":100,"imageId":10,"metadata":{},"id":124965,"flavorId":3,"hostId":"31ac8305c106795cf06b1f266cda0766","status":"ACTIVE"},{"name":"RS-racklvmv1-1260399674244","addresses":{"public":["174.143.207.216"],"private":["10.176.209.51"]},"progress":100,"imageId":10,"metadata":{},"id":125001,"flavorId":3,"hostId":"c138d5be588326c098a3241cdf7fe467","status":"ACTIVE"},{"name":"RS-rackspacetest1v2-1260404616323","addresses":{"public":["174.143.182.142"],"private":["10.176.209.68"]},"progress":100,"imageId":11,"metadata":{},"id":125052,"flavorId":2,"hostId":"3781e0b810d023bd58afd7d3a8d54fe5","status":"ACTIVE"},{"name":"RS-aarackspacetest-126040522735","addresses":{"public":["174.143.182.254"],"private":["10.176.209.71"]},"progress":100,"imageId":11,"metadata":{},"id":125061,"flavorId":3,"hostId":"e12d14510f7f1ce15c3a1565e1d27d7b","status":"ACTIVE"},{"name":"RS-danerack1-1260409846109","addresses":{"public":["174.143.183.5"],"private":["10.176.209.72"]},"progress":100,"imageId":11,"metadata":{},"id":125099,"flavorId":1,"hostId":"936cc34b3e603a480512493b9fbb664e","status":"ACTIVE"},{"name":"RS-racklvmv2-126046299622","addresses":{"public":["67.23.47.59"],"private":["10.176.209.88"]},"progress":100,"imageId":10,"metadata":{},"id":125430,"flavorId":3,"hostId":"63c0a27313416b6b1cde0d28a0a20726","status":"ACTIVE"}],"cloud":"11"},{"servers":[],"cloud":"13"}]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
dest = ARGV.size > 0 ? ARGV[0] : 'out.js'
|
5
|
+
begin
|
6
|
+
all = JSON.load(IO.read(dest))
|
7
|
+
rescue Exception => e
|
8
|
+
puts "Could not load JSON: #{e.message}"
|
9
|
+
exit 1
|
10
|
+
end
|
11
|
+
msg = ''
|
12
|
+
all.each { |p| msg << "\n\nCloud rackcloud#{p['cloud']}\n" + '-' * 80 + "\n" + p['servers'].map(&:inspect).join("\n") }
|
13
|
+
puts msg
|
14
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'yaml'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
class RackspaceServers
|
6
|
+
|
7
|
+
attr_reader :servers
|
8
|
+
|
9
|
+
def initialize(path)
|
10
|
+
begin
|
11
|
+
yaml = YAML.load(IO.read(path))
|
12
|
+
rescue Exception => e
|
13
|
+
puts "Could not load YAML: #{e.message}"
|
14
|
+
exit 1
|
15
|
+
end
|
16
|
+
servers_json = yaml[0]['value']
|
17
|
+
@servers = JSON.load(servers_json)['servers']
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
cloud = ARGV.size > 0 ? ARGV[0] : 'cloud'
|
23
|
+
path = ARGV.size > 1 ? ARGV[1] : 'output.yml'
|
24
|
+
dest = ARGV.size > 2 ? ARGV[2] : 'out.js'
|
25
|
+
|
26
|
+
rs = RackspaceServers.new(path)
|
27
|
+
puts "Found #{rs.servers.size} server(s):"
|
28
|
+
rs.servers.each { |s| puts s['name'] + ": " + s['addresses']['public'].join(', ') }
|
29
|
+
|
30
|
+
out = JSON.load(IO.read(dest)) rescue {} if File.file?(dest)
|
31
|
+
out ||= []
|
32
|
+
out << { 'cloud' => cloud, 'servers' => rs.servers }
|
33
|
+
File.open(dest, 'w') { |f| f.puts JSON.dump(out) }
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# List all servers with detail information
|
2
|
+
includes:
|
3
|
+
- login
|
4
|
+
name: List servers
|
5
|
+
config: ../config/rack.yml
|
6
|
+
steps:
|
7
|
+
- request:
|
8
|
+
path: $url/servers/detail
|
9
|
+
type: get
|
10
|
+
headers:
|
11
|
+
- name: X-Auth-Token
|
12
|
+
value: $token
|
13
|
+
filters:
|
14
|
+
- name: save servers
|
15
|
+
target: body
|
16
|
+
extractors:
|
17
|
+
- variable: servers
|
18
|
+
save: yes
|
19
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Login & retrieve auth token and server management URL
|
2
|
+
name: Login
|
3
|
+
steps:
|
4
|
+
- request:
|
5
|
+
path: v1.0
|
6
|
+
type: get
|
7
|
+
headers:
|
8
|
+
- name: X-Auth-User
|
9
|
+
value: $user
|
10
|
+
- name: X-Auth-Key
|
11
|
+
value: $key
|
12
|
+
filters:
|
13
|
+
- name: extract token
|
14
|
+
target: header
|
15
|
+
extractors:
|
16
|
+
- field: x-auth-token
|
17
|
+
variable: token
|
18
|
+
export: yes
|
19
|
+
- field: x-server-management-url
|
20
|
+
variable: url
|
21
|
+
export: yes
|
22
|
+
save: yes
|
23
|
+
|
data/lib/api_request.rb
CHANGED
@@ -35,13 +35,20 @@ module Resat
|
|
35
35
|
Variables.substitute!(@id) if @id
|
36
36
|
uri_class = (@use_ssl || @use_ssl.nil? && Config.use_ssl) ? URI::HTTPS : URI::HTTP
|
37
37
|
port = @port || Config.port || uri_class::DEFAULT_PORT
|
38
|
-
|
38
|
+
Variables.substitute!(port)
|
39
|
+
host = @host || Config.host
|
40
|
+
Variables.substitute!(host)
|
41
|
+
@uri = uri_class.build( :host => host, :port => port )
|
39
42
|
base_url = "/#{@base_url || Config.base_url}/".squeeze('/')
|
40
43
|
Variables.substitute!(base_url)
|
41
|
-
path =
|
42
|
-
|
43
|
-
|
44
|
-
|
44
|
+
path = @path
|
45
|
+
unless path
|
46
|
+
path = "#{base_url}#{@resource}"
|
47
|
+
path = "#{path}/#{@id}" if @id
|
48
|
+
path = "#{path}.#{@format}" if @format && !@format.empty? && !@custom
|
49
|
+
path = "#{path}#{@custom.separator}#{@custom.name}" if @custom
|
50
|
+
end
|
51
|
+
Variables.substitute!(path)
|
45
52
|
@uri.merge!(path)
|
46
53
|
|
47
54
|
# 3. Build request
|
@@ -51,15 +58,15 @@ module Resat
|
|
51
58
|
when 'update' then request_class = Net::HTTP::Put
|
52
59
|
when 'destroy' then request_class = Net::HTTP::Delete
|
53
60
|
else
|
54
|
-
if @custom
|
55
|
-
case
|
61
|
+
if type = (@type || @custom && @custom.type)
|
62
|
+
case type
|
56
63
|
when 'get' then request_class = Net::HTTP::Get
|
57
64
|
when 'post' then request_class = Net::HTTP::Post
|
58
65
|
when 'put' then request_class = Net::HTTP::Put
|
59
66
|
when 'delete' then request_class = Net::HTTP::Delete
|
60
67
|
end
|
61
68
|
else
|
62
|
-
@failures << "Missing request
|
69
|
+
@failures << "Missing request type for request on '#{@resource}'."
|
63
70
|
return
|
64
71
|
end
|
65
72
|
end
|
@@ -107,6 +114,7 @@ module Resat
|
|
107
114
|
def has_response_field?(field, target)
|
108
115
|
return unless @response
|
109
116
|
return @response.key?(field) if target == 'header'
|
117
|
+
return true if field.nil? || field.empty?
|
110
118
|
doc = REXML::Document.new(@response.body) rescue nil
|
111
119
|
return doc && !doc.elements[field].nil?
|
112
120
|
end
|
@@ -115,6 +123,7 @@ module Resat
|
|
115
123
|
def get_response_field(field, target)
|
116
124
|
return unless @response
|
117
125
|
return @response[field] if target == 'header'
|
126
|
+
return @response.body if field.nil? || field.empty?
|
118
127
|
doc = REXML::Document.new(@response.body)
|
119
128
|
elem = doc.elements[field]
|
120
129
|
return elem.get_text.to_s if elem
|
data/lib/resat.rb
CHANGED
data/lib/scenario_runner.rb
CHANGED
@@ -164,9 +164,12 @@ module Resat
|
|
164
164
|
# File extension is optional in YAML definition
|
165
165
|
# We'll use the one in the current folder if we can't find it in the same
|
166
166
|
# folder as the including file
|
167
|
-
|
168
|
-
path =
|
169
|
-
|
167
|
+
val = File.join(dir, inc + '.yml')
|
168
|
+
path = val if File.file?(val)
|
169
|
+
val = File.join(dir, inc + '.yaml')
|
170
|
+
path = val if File.file?(val)
|
171
|
+
val = File.join(dir, inc)
|
172
|
+
path = val if File.file?(val)
|
170
173
|
return path if path
|
171
174
|
subs = Dir.entries(dir).select { |f| File.directory?(f) }
|
172
175
|
subs = subs - FileSet::IGNORED_FOLDERS
|
data/schemas/scenarios.yaml
CHANGED
@@ -7,6 +7,9 @@
|
|
7
7
|
# is marked as 'ignore' (that way it becomes possible to define
|
8
8
|
# include-only scenarios).
|
9
9
|
#
|
10
|
+
# A request can be defined either as a REST request by listing the REST
|
11
|
+
# resource and operation or by specifying the path manually.
|
12
|
+
#
|
10
13
|
# Each step may define guards, that is conditions that must be validated
|
11
14
|
# before the flow can proceed. These conditions may apply to the response
|
12
15
|
# header or body and may define a pattern that a given field must validate
|
@@ -84,17 +87,20 @@ mapping:
|
|
84
87
|
"use_ssl": { type: bool } # http or https (config override)
|
85
88
|
"username": { type: str } # Basic auth username (config override)
|
86
89
|
"password": { type: str } # Basic auth password (config override)
|
87
|
-
"
|
88
|
-
"
|
90
|
+
"resource": { type: str } # REST request resource
|
91
|
+
"operation": { enum: [create, index, show, update, destroy] } # REST request operation
|
92
|
+
"custom": # REST custom operation
|
89
93
|
type: map
|
90
94
|
class: Resat::CustomOperation
|
91
95
|
mapping:
|
92
|
-
"name": { type: str, required: yes } #
|
93
|
-
"
|
94
|
-
"
|
95
|
-
"
|
96
|
+
"name": { type: str, required: yes } # REST custom operation name
|
97
|
+
"separator": { type: str, default: / } # REST separator between base URI and operation name
|
98
|
+
"type": { enum: [get, post, put, delete], required: yes } # REST custom operation request type
|
99
|
+
"path": { type: str } # Request path (override REST settings)
|
100
|
+
"type": { enum: [get, post, put, delete] } # Request type (override REST settings)
|
101
|
+
"absolute": { type: str } # Absolute
|
96
102
|
"id": { type: str } # Request resource id
|
97
|
-
"format": { enum: [js, xml, html], default: xml }
|
103
|
+
"format": { enum: [js, xml, html, ''], default: xml } # Request format (only applies to GET requests)
|
98
104
|
"delay": { type: str} # Delay before request is made (integer or range)
|
99
105
|
"params": # Request body parameters
|
100
106
|
&name_value_pairs
|
@@ -152,7 +158,7 @@ mapping:
|
|
152
158
|
- type: map
|
153
159
|
class: Resat::Extractor
|
154
160
|
mapping:
|
155
|
-
"field": { type: str
|
161
|
+
"field": { type: str } # Field extractor applies to, whole body if not specified
|
156
162
|
"pattern": { type: str, pattern: /.*\(.*\).*/ } # Pattern used to extract data (if any)
|
157
163
|
"variable": { type: str, required: yes, unique: yes } # Variable extracted data should be stored in
|
158
164
|
"save": { type: bool, default: no } # Whether variable should be saved in output file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raphael Simon
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-04-09 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -53,6 +53,14 @@ files:
|
|
53
53
|
- schemas/config.yaml
|
54
54
|
- schemas/scenarios.yaml
|
55
55
|
- schemas/variables.yaml
|
56
|
+
- examples/rackspace/all
|
57
|
+
- examples/rackspace/config/rack.yml
|
58
|
+
- examples/rackspace/out.js
|
59
|
+
- examples/rackspace/output.yml
|
60
|
+
- examples/rackspace/process_all.rb
|
61
|
+
- examples/rackspace/process_output.rb
|
62
|
+
- examples/rackspace/scenarios/list_servers.yml
|
63
|
+
- examples/rackspace/scenarios/login.yml
|
56
64
|
- examples/rightscale/additional/run_server.yml
|
57
65
|
- examples/rightscale/config/resat.yaml
|
58
66
|
- examples/rightscale/README.rdoc
|