resat 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 corresponds to one of the REST CRUD operations and applies to a
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> requests for making web requests that
170
- don't map to a CRUD operation. A custom request is defined by a <i>type</i>
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,14 @@
1
+ # Hostname used for API calls
2
+ host: auth.api.rackspacecloud.com
3
+
4
+ # Common base URL to all API calls
5
+ base_url:
6
+
7
+ # Port
8
+ port: 443
9
+
10
+ # Use HTTPS?
11
+ use_ssl: yes
12
+
13
+ # Output file
14
+ output: output.yml
@@ -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,3 @@
1
+ ---
2
+ - name: servers
3
+ value: "{\"servers\":[]}"
@@ -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
+
@@ -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
- @uri = uri_class.build( :host => @host || Config.host, :port => port )
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 = "#{base_url}#{@resource}"
42
- path = "#{path}/#{@id}" if @id
43
- path = "#{path}.#{@format}" if @format && !@custom
44
- path = "#{path}#{@custom.separator}#{@custom.name}" if @custom
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 @custom.type
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 operation for request on '#{@resource}'."
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
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  module Resat
6
- VERSION = '0.7.3'
6
+ VERSION = '0.7.4'
7
7
  end
8
8
 
9
9
  require File.join(File.dirname(__FILE__), 'engine')
@@ -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
- path = test if File.file?(test = File.join(dir, inc + '.yml'))
168
- path = test if File.file?(test = File.join(dir, inc + '.yaml'))
169
- path = test if File.file?(test = File.join(dir, inc))
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
@@ -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
- "operation": { enum: [create, index, show, update, destroy] } # Request operation
88
- "custom": # Custom operation
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 } # Custom operation name
93
- "type": { enum: [get, post, put, delete], required: yes } # Custom operation request type
94
- "separator": { type: str, default: / } # Separator between base URI and operation name
95
- "resource": { type: str, required: yes } # Request resource
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 } # Request format (only applies to GET requests)
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, required: yes } # Field extractor applies to
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.3
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: 2009-12-07 00:00:00 -08:00
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