squall 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. data/.gitignore +3 -0
  2. data/.rbenv-version +1 -0
  3. data/.rspec +1 -1
  4. data/.rvmrc +41 -1
  5. data/.travis.yml +13 -3
  6. data/README.md +122 -27
  7. data/Rakefile +5 -34
  8. data/lib/squall/data_store_zone.rb +58 -0
  9. data/lib/squall/firewall_rule.rb +66 -0
  10. data/lib/squall/hypervisor.rb +63 -11
  11. data/lib/squall/hypervisor_zone.rb +135 -0
  12. data/lib/squall/ip_address.rb +50 -3
  13. data/lib/squall/ip_address_join.rb +46 -0
  14. data/lib/squall/network.rb +21 -4
  15. data/lib/squall/network_zone.rb +73 -0
  16. data/lib/squall/payment.rb +59 -0
  17. data/lib/squall/role.rb +28 -11
  18. data/lib/squall/statistic.rb +3 -3
  19. data/lib/squall/{base.rb → support/base.rb} +8 -4
  20. data/lib/squall/{config.rb → support/config.rb} +4 -0
  21. data/lib/squall/{exception.rb → support/exception.rb} +0 -0
  22. data/lib/squall/{params.rb → support/params.rb} +0 -0
  23. data/lib/squall/support/version.rb +3 -0
  24. data/lib/squall/support/yaml.rb +5 -0
  25. data/lib/squall/template.rb +4 -0
  26. data/lib/squall/transaction.rb +4 -0
  27. data/lib/squall/user.rb +126 -30
  28. data/lib/squall/user_group.rb +56 -0
  29. data/lib/squall/virtual_machine.rb +176 -52
  30. data/lib/squall/whitelist.rb +74 -0
  31. data/lib/squall.rb +21 -12
  32. data/spec/spec_helper.rb +21 -16
  33. data/spec/squall/data_store_zone_spec.rb +97 -0
  34. data/spec/squall/firewall_rule_spec.rb +112 -0
  35. data/spec/squall/hypervisor_spec.rb +101 -48
  36. data/spec/squall/hypervisor_zone_spec.rb +190 -0
  37. data/spec/squall/ip_address_join_spec.rb +67 -0
  38. data/spec/squall/ip_address_spec.rb +68 -6
  39. data/spec/squall/network_spec.rb +0 -1
  40. data/spec/squall/network_zone_spec.rb +147 -0
  41. data/spec/squall/payment_spec.rb +98 -0
  42. data/spec/squall/role_spec.rb +31 -46
  43. data/spec/squall/statistic_spec.rb +7 -9
  44. data/spec/squall/{base_spec.rb → support/base_spec.rb} +5 -7
  45. data/spec/squall/{config_spec.rb → support/config_spec.rb} +0 -0
  46. data/spec/{params_spec.rb → squall/support/params_spec.rb} +0 -0
  47. data/spec/squall/template_spec.rb +0 -1
  48. data/spec/squall/transaction_spec.rb +0 -1
  49. data/spec/squall/user_group_spec.rb +74 -0
  50. data/spec/squall/user_spec.rb +142 -59
  51. data/spec/squall/virtual_machine_spec.rb +179 -67
  52. data/spec/squall/whitelist_spec.rb +113 -0
  53. data/spec/squall_spec.rb +4 -8
  54. data/spec/vcr_cassettes/data_store_zone/create.yml +40 -0
  55. data/spec/vcr_cassettes/data_store_zone/delete.yml +77 -0
  56. data/spec/vcr_cassettes/data_store_zone/edit.yml +77 -0
  57. data/spec/vcr_cassettes/data_store_zone/list.yml +40 -0
  58. data/spec/vcr_cassettes/data_store_zone/show.yml +77 -0
  59. data/spec/vcr_cassettes/firewall_rule/create.yml +75 -0
  60. data/spec/vcr_cassettes/firewall_rule/delete.yml +75 -0
  61. data/spec/vcr_cassettes/firewall_rule/edit.yml +75 -0
  62. data/spec/vcr_cassettes/firewall_rule/list.yml +40 -0
  63. data/spec/vcr_cassettes/hypervisor/add_data_store_join.yml +40 -0
  64. data/spec/vcr_cassettes/hypervisor/add_network_join.yml +40 -0
  65. data/spec/vcr_cassettes/hypervisor/create.yml +7 -44
  66. data/spec/vcr_cassettes/hypervisor/data_store_joins.yml +40 -0
  67. data/spec/vcr_cassettes/hypervisor/delete.yml +11 -11
  68. data/spec/vcr_cassettes/hypervisor/edit.yml +7 -46
  69. data/spec/vcr_cassettes/hypervisor/list.yml +7 -7
  70. data/spec/vcr_cassettes/hypervisor/network_joins.yml +40 -0
  71. data/spec/vcr_cassettes/hypervisor/reboot.yml +13 -13
  72. data/spec/vcr_cassettes/hypervisor/remove_data_store_join.yml +40 -0
  73. data/spec/vcr_cassettes/hypervisor/remove_network_join.yml +40 -0
  74. data/spec/vcr_cassettes/hypervisor/show.yml +13 -13
  75. data/spec/vcr_cassettes/hypervisor_zones/add_data_store_join.yml +40 -0
  76. data/spec/vcr_cassettes/hypervisor_zones/add_network_join.yml +40 -0
  77. data/spec/vcr_cassettes/hypervisor_zones/create.yml +40 -0
  78. data/spec/vcr_cassettes/hypervisor_zones/data_store_joins.yml +40 -0
  79. data/spec/vcr_cassettes/hypervisor_zones/delete.yml +77 -0
  80. data/spec/vcr_cassettes/hypervisor_zones/edit.yml +77 -0
  81. data/spec/vcr_cassettes/hypervisor_zones/hypervisors.yml +40 -0
  82. data/spec/vcr_cassettes/hypervisor_zones/list.yml +40 -0
  83. data/spec/vcr_cassettes/hypervisor_zones/network_joins.yml +40 -0
  84. data/spec/vcr_cassettes/hypervisor_zones/remove_data_store_join.yml +40 -0
  85. data/spec/vcr_cassettes/hypervisor_zones/remove_network_join.yml +40 -0
  86. data/spec/vcr_cassettes/hypervisor_zones/show.yml +77 -0
  87. data/spec/vcr_cassettes/ipaddress/create.yml +40 -0
  88. data/spec/vcr_cassettes/ipaddress/delete.yml +40 -0
  89. data/spec/vcr_cassettes/ipaddress/edit.yml +40 -0
  90. data/spec/vcr_cassettes/ipaddress/list.yml +17 -17
  91. data/spec/vcr_cassettes/ipaddress_join/assign.yml +77 -0
  92. data/spec/vcr_cassettes/ipaddress_join/delete.yml +77 -0
  93. data/spec/vcr_cassettes/ipaddress_join/list.yml +77 -0
  94. data/spec/vcr_cassettes/network/create.yml +15 -15
  95. data/spec/vcr_cassettes/network/delete.yml +6 -6
  96. data/spec/vcr_cassettes/network/edit.yml +18 -18
  97. data/spec/vcr_cassettes/network/list.yml +3 -3
  98. data/spec/vcr_cassettes/network_zones/attach.yml +114 -0
  99. data/spec/vcr_cassettes/network_zones/create.yml +40 -0
  100. data/spec/vcr_cassettes/network_zones/delete.yml +77 -0
  101. data/spec/vcr_cassettes/network_zones/detach.yml +114 -0
  102. data/spec/vcr_cassettes/network_zones/edit.yml +77 -0
  103. data/spec/vcr_cassettes/network_zones/list.yml +40 -0
  104. data/spec/vcr_cassettes/network_zones/show.yml +77 -0
  105. data/spec/vcr_cassettes/payment/create.yml +78 -0
  106. data/spec/vcr_cassettes/payment/delete.yml +77 -0
  107. data/spec/vcr_cassettes/payment/edit.yml +77 -0
  108. data/spec/vcr_cassettes/payment/list.yml +41 -0
  109. data/spec/vcr_cassettes/role/create.yml +7 -44
  110. data/spec/vcr_cassettes/role/delete.yml +6 -6
  111. data/spec/vcr_cassettes/role/edit.yml +13 -75
  112. data/spec/vcr_cassettes/role/list.yml +7 -7
  113. data/spec/vcr_cassettes/role/permissions.yml +7 -7
  114. data/spec/vcr_cassettes/role/show.yml +13 -13
  115. data/spec/vcr_cassettes/statistic/usage_statistics.yml +7 -7
  116. data/spec/vcr_cassettes/template/list.yml +3 -3
  117. data/spec/vcr_cassettes/template/make_public.yml +6 -6
  118. data/spec/vcr_cassettes/transaction/list.yml +3 -3
  119. data/spec/vcr_cassettes/transaction/show.yml +6 -6
  120. data/spec/vcr_cassettes/user/activate.yml +7 -7
  121. data/spec/vcr_cassettes/user/create.yml +7 -83
  122. data/spec/vcr_cassettes/user/data_store_zones.yml +79 -0
  123. data/spec/vcr_cassettes/user/delete.yml +11 -11
  124. data/spec/vcr_cassettes/user/edit.yml +40 -0
  125. data/spec/vcr_cassettes/user/edit_role.yml +9 -9
  126. data/spec/vcr_cassettes/user/generate_api_key.yml +7 -7
  127. data/spec/vcr_cassettes/user/hypervisors.yml +77 -0
  128. data/spec/vcr_cassettes/user/limits.yml +77 -0
  129. data/spec/vcr_cassettes/user/list.yml +8 -8
  130. data/spec/vcr_cassettes/user/monthly_bills.yml +40 -0
  131. data/spec/vcr_cassettes/user/network_zones.yml +79 -0
  132. data/spec/vcr_cassettes/user/show.yml +29 -29
  133. data/spec/vcr_cassettes/user/stats.yml +6 -6
  134. data/spec/vcr_cassettes/user/suspend.yml +7 -7
  135. data/spec/vcr_cassettes/user/virtual_machines.yml +18 -20
  136. data/spec/vcr_cassettes/user_group/create.yml +40 -0
  137. data/spec/vcr_cassettes/user_group/delete.yml +77 -0
  138. data/spec/vcr_cassettes/user_group/edit.yml +77 -0
  139. data/spec/vcr_cassettes/user_group/list.yml +40 -0
  140. data/spec/vcr_cassettes/virtual_machine/build.yml +7 -7
  141. data/spec/vcr_cassettes/virtual_machine/change_owner.yml +8 -8
  142. data/spec/vcr_cassettes/virtual_machine/change_password.yml +13 -13
  143. data/spec/vcr_cassettes/virtual_machine/console.yml +63 -0
  144. data/spec/vcr_cassettes/virtual_machine/create.yml +9 -11
  145. data/spec/vcr_cassettes/virtual_machine/delete.yml +11 -11
  146. data/spec/vcr_cassettes/virtual_machine/edit.yml +16 -18
  147. data/spec/vcr_cassettes/virtual_machine/list.yml +3 -3
  148. data/spec/vcr_cassettes/virtual_machine/migrate.yml +22 -24
  149. data/spec/vcr_cassettes/virtual_machine/reboot.yml +22 -22
  150. data/spec/vcr_cassettes/virtual_machine/resize.yml +13 -13
  151. data/spec/vcr_cassettes/virtual_machine/segregate.yml +114 -0
  152. data/spec/vcr_cassettes/virtual_machine/set_ssh_keys.yml +77 -0
  153. data/spec/vcr_cassettes/virtual_machine/set_vip.yml +77 -0
  154. data/spec/vcr_cassettes/virtual_machine/show.yml +6 -6
  155. data/spec/vcr_cassettes/virtual_machine/shutdown.yml +6 -6
  156. data/spec/vcr_cassettes/virtual_machine/startup.yml +6 -6
  157. data/spec/vcr_cassettes/virtual_machine/stats.yml +63 -0
  158. data/spec/vcr_cassettes/virtual_machine/stop.yml +22 -22
  159. data/spec/vcr_cassettes/virtual_machine/suspend.yml +13 -13
  160. data/spec/vcr_cassettes/virtual_machine/unlock.yml +13 -13
  161. data/spec/vcr_cassettes/virtual_machine/unsuspend.yml +6 -6
  162. data/spec/vcr_cassettes/whitelist/create.yml +77 -0
  163. data/spec/vcr_cassettes/whitelist/delete.yml +77 -0
  164. data/spec/vcr_cassettes/whitelist/edit.yml +77 -0
  165. data/spec/vcr_cassettes/whitelist/list.yml +40 -0
  166. data/spec/vcr_cassettes/whitelist/show.yml +77 -0
  167. data/squall.gemspec +3 -2
  168. metadata +247 -131
  169. data/Gemfile.lock +0 -100
  170. data/lib/squall/version.rb +0 -3
@@ -2,52 +2,50 @@
2
2
  - !ruby/struct:VCR::HTTPInteraction
3
3
  request: !ruby/struct:VCR::Request
4
4
  method: :get
5
- uri: http://user:pass@www.example.com:80/users/500/virtual_machines.json
5
+ uri: http://<USER>:<PASS>@<URL>:80/users/404/virtual_machines.json
6
6
  body:
7
7
  headers:
8
8
  content-type:
9
9
  - application/json
10
10
  authorization:
11
- - Basic WHAT
11
+ - Basic <REDACTED>
12
12
  response: !ruby/struct:VCR::Response
13
13
  status: !ruby/struct:VCR::ResponseStatus
14
- code: 200
15
- message: OK
14
+ code: 404
15
+ message: Not Found
16
16
  headers:
17
17
  x-ua-compatible:
18
18
  - IE=Edge,chrome=1
19
19
  x-powered-by:
20
20
  - Phusion Passenger (mod_rails/mod_rack) 3.0.1
21
- etag:
22
- - "\"d751713988987e9331980363e24189ce\""
23
21
  content-type:
24
22
  - application/json; charset=utf-8
25
23
  date:
26
- - Thu, 14 Apr 2011 16:10:46 GMT
24
+ - Fri, 10 Feb 2012 20:22:53 GMT
27
25
  server:
28
26
  - Apache/2.2.3 (CentOS)
29
27
  x-runtime:
30
- - "0.013584"
28
+ - "0.038951"
31
29
  set-cookie:
32
- - _onapp_session=WHAT; path=/; HttpOnly
30
+ - <REDACTED>
33
31
  cache-control:
34
- - max-age=0, private, must-revalidate
32
+ - no-cache
35
33
  status:
36
- - "200"
34
+ - "404"
37
35
  transfer-encoding:
38
36
  - chunked
39
- body: "[]"
37
+ body: "{\"errors\":[\"Resource not found\"]}"
40
38
  http_version: "1.1"
41
39
  - !ruby/struct:VCR::HTTPInteraction
42
40
  request: !ruby/struct:VCR::Request
43
41
  method: :get
44
- uri: http://user:pass@www.example.com:80/users/1/virtual_machines.json
42
+ uri: http://<USER>:<PASS>@<URL>:80/users/1/virtual_machines.json
45
43
  body:
46
44
  headers:
47
45
  content-type:
48
46
  - application/json
49
47
  authorization:
50
- - Basic WHAT
48
+ - Basic <REDACTED>
51
49
  response: !ruby/struct:VCR::Response
52
50
  status: !ruby/struct:VCR::ResponseStatus
53
51
  code: 200
@@ -56,24 +54,24 @@
56
54
  x-ua-compatible:
57
55
  - IE=Edge,chrome=1
58
56
  etag:
59
- - "\"d751713988987e9331980363e24189ce\""
57
+ - "\"d63e5272c65252750429f3f149c7f8ec\""
60
58
  x-powered-by:
61
59
  - Phusion Passenger (mod_rails/mod_rack) 3.0.1
62
60
  content-type:
63
61
  - application/json; charset=utf-8
64
62
  x-runtime:
65
- - "0.016482"
63
+ - "0.073640"
66
64
  server:
67
65
  - Apache/2.2.3 (CentOS)
68
66
  date:
69
- - Thu, 14 Apr 2011 16:13:18 GMT
67
+ - Fri, 10 Feb 2012 20:22:54 GMT
70
68
  set-cookie:
71
- - _onapp_session=WHAT; path=/; HttpOnly
69
+ - <REDACTED>
72
70
  status:
73
71
  - "200"
74
72
  cache-control:
75
73
  - max-age=0, private, must-revalidate
76
74
  transfer-encoding:
77
75
  - chunked
78
- body: "[{\"virtual_machine\":{\"label\":\"testing\",\"cpus\":1,\"operating_system_distro\":\"rhel\",\"created_at\":\"2011-04-14T16:24:24Z\",\"template_id\":1,\"operating_system\":\"linux\",\"cpu_shares\":1,\"monthly_bandwidth_used\":\"0.0\",\"updated_at\":\"2011-04-14T16:25:42Z\",\"memory\":256,\"local_remote_access_port\":null,\"allowed_swap\":true,\"recovery_mode\":null,\"allow_resize_without_reboot\":true,\"xen_id\":null,\"id\":61,\"hypervisor_id\":2,\"ip_addresses\":[{\"ip_address\":{\"netmask\":\"255.255.255.224\",\"disallowed_primary\":true,\"address\":\"123.123.108.226\",\"created_at\":\"2011-03-16T02:19:11Z\",\"updated_at\":\"2011-03-16T02:19:11Z\",\"network_id\":2,\"network_address\":\"123.123.108.224\",\"broadcast\":\"123.123.108.255\",\"id\":30,\"gateway\":\"123.123.108.225\"}}],\"user_id\":4,\"template_label\":\"CentOS 5.5 x64\",\"hostname\":\"delete-when-done.com\",\"booted\":false,\"total_disk_size\":\"5.0\",\"remote_access_password\":null,\"min_disk_size\":5,\"initial_root_password\":\"dffsdfssdffds\",\"identifier\":\"k4orgyjxzb6ks7\",\"locked\":false,\"built\":true}},{\"virtual_machine\":{\"label\":\"testing2\",\"cpus\":1,\"operating_system_distro\":\"rhel\",\"created_at\":\"2011-04-14T16:28:08Z\",\"template_id\":1,\"operating_system\":\"linux\",\"cpu_shares\":1,\"monthly_bandwidth_used\":\"0.0\",\"updated_at\":\"2011-04-14T16:28:08Z\",\"memory\":256,\"local_remote_access_port\":null,\"allowed_swap\":true,\"recovery_mode\":null,\"allow_resize_without_reboot\":true,\"xen_id\":null,\"id\":62,\"hypervisor_id\":2,\"ip_addresses\":[{\"ip_address\":{\"netmask\":\"255.255.255.224\",\"disallowed_primary\":false,\"address\":\"123.123.123.219\",\"created_at\":\"2011-03-16T02:17:47Z\",\"updated_at\":\"2011-03-16T02:17:47Z\",\"network_id\":1,\"network_address\":\"123.123.123.192\",\"broadcast\":\"123.123.123.223\",\"id\":26,\"gateway\":\"123.123.123.193\"}}],\"user_id\":4,\"template_label\":\"CentOS 5.5 x64\",\"hostname\":\"delete-when-done2.com\",\"booted\":false,\"total_disk_size\":\"5.0\",\"remote_access_password\":\"23fsdfsd\",\"min_disk_size\":5,\"initial_root_password\":\"sdfsdfdsfsd\",\"identifier\":\"i4zpd1kpng8da4\",\"locked\":true,\"built\":false}}]"
79
- http_version: "1.1"
76
+ body: "[{\"virtual_machine\":{\"monthly_bandwidth_used\":0,\"aflexi_id\":null,\"cpus\":1,\"label\":\"test\",\"created_at\":\"2012-02-09T10:43:07Z\",\"operating_system_distro\":\"rhel\",\"cpu_shares\":1,\"enable_autoscale\":false,\"operating_system\":\"linux\",\"template_id\":384,\"allowed_swap\":true,\"local_remote_access_port\":null,\"memory\":256,\"updated_at\":\"2012-02-10T11:50:18Z\",\"allow_resize_without_reboot\":false,\"recovery_mode\":null,\"enable_monitis\":false,\"hypervisor_id\":1,\"id\":1511,\"update_billing_stat\":false,\"xen_id\":null,\"admin_note\":null,\"allowed_hot_migrate\":false,\"user_id\":1,\"note\":null,\"strict_virtual_machine_id\":null,\"suspended\":false,\"vip\":null,\"booted\":false,\"hostname\":\"test.com\",\"max_memory\":null,\"template_label\":\"CentOS 6.2 x64\",\"total_disk_size\":6,\"add_to_marketplace\":null,\"identifier\":\"qbf3061qubd7sk\",\"initial_root_password\":\"solekam1\",\"min_disk_size\":5,\"remote_access_password\":\"lybii1fdo2ui\",\"built\":false,\"locked\":true,\"state\":\"new\",\"ip_addresses\":[{\"ip_address\":{\"address\":\"109.123.105.210\",\"disallowed_primary\":false,\"netmask\":\"255.255.255.240\",\"created_at\":\"2010-10-27T15:28:22Z\",\"broadcast\":\"109.123.105.223\",\"updated_at\":\"2011-10-10T09:03:14Z\",\"network_id\":1,\"network_address\":\"109.123.105.208\",\"id\":15,\"free\":false,\"gateway\":\"109.123.105.209\"}}]}},{\"virtual_machine\":{\"monthly_bandwidth_used\":7204,\"aflexi_id\":null,\"cpus\":1,\"label\":\"az_ip\",\"created_at\":\"2012-02-09T12:19:17Z\",\"operating_system_distro\":\"ubuntu\",\"cpu_shares\":1,\"enable_autoscale\":false,\"operating_system\":\"linux\",\"template_id\":8,\"allowed_swap\":true,\"local_remote_access_port\":null,\"memory\":128,\"updated_at\":\"2012-02-10T17:07:06Z\",\"allow_resize_without_reboot\":false,\"recovery_mode\":false,\"enable_monitis\":false,\"hypervisor_id\":1,\"id\":1517,\"update_billing_stat\":false,\"xen_id\":null,\"admin_note\":null,\"allowed_hot_migrate\":false,\"user_id\":1,\"note\":null,\"strict_virtual_machine_id\":null,\"suspended\":false,\"vip\":null,\"booted\":false,\"hostname\":\"az\",\"max_memory\":2048,\"template_label\":\"Debian 5.0 (Lenny) x64\",\"total_disk_size\":6,\"add_to_marketplace\":null,\"identifier\":\"g2wslf8wu43b6v\",\"initial_root_password\":\"qwaszx\",\"min_disk_size\":5,\"remote_access_password\":null,\"built\":true,\"locked\":false,\"state\":\"new\",\"ip_addresses\":[{\"ip_address\":{\"address\":\"109.123.105.215\",\"disallowed_primary\":false,\"netmask\":\"255.255.255.240\",\"created_at\":\"2010-10-27T15:28:22Z\",\"broadcast\":\"109.123.105.223\",\"updated_at\":\"2011-10-10T09:03:14Z\",\"network_id\":1,\"network_address\":\"109.123.105.208\",\"id\":20,\"free\":false,\"gateway\":\"109.123.105.209\"}},{\"ip_address\":{\"address\":\"83.170.67.234\",\"disallowed_primary\":false,\"netmask\":\"255.255.255.224\",\"created_at\":\"2011-01-20T11:23:31Z\",\"broadcast\":\"83.170.67.255\",\"updated_at\":\"2011-10-10T09:15:15Z\",\"network_id\":1,\"network_address\":\"83.170.67.224\",\"id\":33451,\"free\":false,\"gateway\":\"83.170.67.225\"}}]}}]"
77
+ http_version: "1.1"
@@ -0,0 +1,40 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups.json?user_group[label]=My%20new%20group
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ authorization:
11
+ - Basic <REDACTED>
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 201
15
+ message: Created
16
+ headers:
17
+ x-ua-compatible:
18
+ - IE=Edge,chrome=1
19
+ location:
20
+ - http://<URL>/user_groups/29
21
+ x-powered-by:
22
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
23
+ content-type:
24
+ - application/json; charset=utf-8
25
+ x-runtime:
26
+ - "0.029662"
27
+ server:
28
+ - Apache/2.2.3 (CentOS)
29
+ date:
30
+ - Mon, 13 Feb 2012 19:19:40 GMT
31
+ set-cookie:
32
+ - <REDACTED>
33
+ status:
34
+ - "201"
35
+ cache-control:
36
+ - no-cache
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:19:40Z\",\"updated_at\":\"2012-02-13T19:19:40Z\",\"id\":29}}"
40
+ http_version: "1.1"
@@ -0,0 +1,77 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :delete
5
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups/1.json
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ authorization:
11
+ - Basic <REDACTED>
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ua-compatible:
18
+ - IE=Edge,chrome=1
19
+ x-powered-by:
20
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
21
+ etag:
22
+ - "\"99914b932bd37a50b983c5e7c90ae93b\""
23
+ content-type:
24
+ - application/json; charset=utf-8
25
+ date:
26
+ - Mon, 13 Feb 2012 19:19:41 GMT
27
+ server:
28
+ - Apache/2.2.3 (CentOS)
29
+ x-runtime:
30
+ - "0.029305"
31
+ set-cookie:
32
+ - <REDACTED>
33
+ cache-control:
34
+ - max-age=0, private, must-revalidate
35
+ status:
36
+ - "200"
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "{}"
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :delete
44
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups/404.json
45
+ body:
46
+ headers:
47
+ content-type:
48
+ - application/json
49
+ authorization:
50
+ - Basic <REDACTED>
51
+ response: !ruby/struct:VCR::Response
52
+ status: !ruby/struct:VCR::ResponseStatus
53
+ code: 404
54
+ message: Not Found
55
+ headers:
56
+ x-ua-compatible:
57
+ - IE=Edge,chrome=1
58
+ x-powered-by:
59
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
60
+ content-type:
61
+ - application/json; charset=utf-8
62
+ x-runtime:
63
+ - "0.036511"
64
+ server:
65
+ - Apache/2.2.3 (CentOS)
66
+ date:
67
+ - Mon, 13 Feb 2012 19:19:41 GMT
68
+ set-cookie:
69
+ - <REDACTED>
70
+ status:
71
+ - "404"
72
+ cache-control:
73
+ - no-cache
74
+ transfer-encoding:
75
+ - chunked
76
+ body: "{\"errors\":[\"Resource not found\"]}"
77
+ http_version: "1.1"
@@ -0,0 +1,77 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :put
5
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups/1.json?user_group[label]=My%20new%20group
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ authorization:
11
+ - Basic <REDACTED>
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ua-compatible:
18
+ - IE=Edge,chrome=1
19
+ x-powered-by:
20
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
21
+ etag:
22
+ - "\"99914b932bd37a50b983c5e7c90ae93b\""
23
+ content-type:
24
+ - application/json; charset=utf-8
25
+ date:
26
+ - Mon, 13 Feb 2012 19:19:40 GMT
27
+ server:
28
+ - Apache/2.2.3 (CentOS)
29
+ x-runtime:
30
+ - "0.038725"
31
+ set-cookie:
32
+ - <REDACTED>
33
+ cache-control:
34
+ - max-age=0, private, must-revalidate
35
+ status:
36
+ - "200"
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "{}"
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :put
44
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups/404.json?user_group[label]=My%20new%20group
45
+ body:
46
+ headers:
47
+ content-type:
48
+ - application/json
49
+ authorization:
50
+ - Basic <REDACTED>
51
+ response: !ruby/struct:VCR::Response
52
+ status: !ruby/struct:VCR::ResponseStatus
53
+ code: 404
54
+ message: Not Found
55
+ headers:
56
+ x-ua-compatible:
57
+ - IE=Edge,chrome=1
58
+ x-powered-by:
59
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
60
+ content-type:
61
+ - application/json; charset=utf-8
62
+ x-runtime:
63
+ - "0.035516"
64
+ server:
65
+ - Apache/2.2.3 (CentOS)
66
+ date:
67
+ - Mon, 13 Feb 2012 19:19:41 GMT
68
+ set-cookie:
69
+ - <REDACTED>
70
+ status:
71
+ - "404"
72
+ cache-control:
73
+ - no-cache
74
+ transfer-encoding:
75
+ - chunked
76
+ body: "{\"errors\":[\"Resource not found\"]}"
77
+ http_version: "1.1"
@@ -0,0 +1,40 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://<USER>:<PASS>@<URL>:80/user_groups.json
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ authorization:
11
+ - Basic <REDACTED>
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ua-compatible:
18
+ - IE=Edge,chrome=1
19
+ etag:
20
+ - "\"284946cbb5d408bdafc3456b7171361d\""
21
+ x-powered-by:
22
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
23
+ content-type:
24
+ - application/json; charset=utf-8
25
+ x-runtime:
26
+ - "0.039263"
27
+ server:
28
+ - Apache/2.2.3 (CentOS)
29
+ date:
30
+ - Mon, 13 Feb 2012 19:19:40 GMT
31
+ set-cookie:
32
+ - <REDACTED>
33
+ status:
34
+ - "200"
35
+ cache-control:
36
+ - max-age=0, private, must-revalidate
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "[{\"user_group\":{\"label\":\"someother\",\"created_at\":\"2011-08-10T08:48:05Z\",\"updated_at\":\"2011-09-08T09:04:08Z\",\"id\":4}},{\"user_group\":{\"label\":\"testing_group\",\"created_at\":\"2011-08-10T08:55:36Z\",\"updated_at\":\"2011-08-10T08:55:36Z\",\"id\":5}},{\"user_group\":{\"label\":\"asdfasdfa\",\"created_at\":\"2011-10-12T09:43:35Z\",\"updated_at\":\"2011-10-12T09:43:35Z\",\"id\":8}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:11:16Z\",\"updated_at\":\"2012-02-13T19:11:16Z\",\"id\":19}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:11:51Z\",\"updated_at\":\"2012-02-13T19:11:51Z\",\"id\":20}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:12:14Z\",\"updated_at\":\"2012-02-13T19:12:14Z\",\"id\":21}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:16:51Z\",\"updated_at\":\"2012-02-13T19:16:51Z\",\"id\":25}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:17:14Z\",\"updated_at\":\"2012-02-13T19:17:14Z\",\"id\":26}},{\"user_group\":{\"label\":\"My new group\",\"created_at\":\"2012-02-13T19:17:58Z\",\"updated_at\":\"2012-02-13T19:17:58Z\",\"id\":28}}]"
40
+ http_version: "1.1"
@@ -2,13 +2,13 @@
2
2
  - !ruby/struct:VCR::HTTPInteraction
3
3
  request: !ruby/struct:VCR::Request
4
4
  method: :post
5
- uri: http://user:pass@www.example.com:80/virtual_machines/404/build.json?
5
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/404/build.json?virtual_machine[template_id]=1
6
6
  body:
7
7
  headers:
8
8
  content-type:
9
9
  - application/json
10
10
  authorization:
11
- - Basic WHAT
11
+ - Basic <REDACTED>
12
12
  response: !ruby/struct:VCR::Response
13
13
  status: !ruby/struct:VCR::ResponseStatus
14
14
  code: 404
@@ -27,7 +27,7 @@
27
27
  x-runtime:
28
28
  - "2.751480"
29
29
  set-cookie:
30
- - _onapp_session=WHAT; path=/; HttpOnly
30
+ - <REDACTED>
31
31
  cache-control:
32
32
  - no-cache
33
33
  status:
@@ -39,13 +39,13 @@
39
39
  - !ruby/struct:VCR::HTTPInteraction
40
40
  request: !ruby/struct:VCR::Request
41
41
  method: :post
42
- uri: http://user:pass@www.example.com:80/virtual_machines/72/build.json?
42
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/72/build.json?virtual_machine[template_id]=1
43
43
  body:
44
44
  headers:
45
45
  content-type:
46
46
  - application/json
47
47
  authorization:
48
- - Basic WHAT
48
+ - Basic <REDACTED>
49
49
  response: !ruby/struct:VCR::Response
50
50
  status: !ruby/struct:VCR::ResponseStatus
51
51
  code: 201
@@ -66,7 +66,7 @@
66
66
  date:
67
67
  - Wed, 20 Apr 2011 16:02:18 GMT
68
68
  set-cookie:
69
- - _onapp_session=WHAT; path=/; HttpOnly
69
+ - <REDACTED>
70
70
  status:
71
71
  - "201"
72
72
  cache-control:
@@ -74,4 +74,4 @@
74
74
  transfer-encoding:
75
75
  - chunked
76
76
  body: "{\"virtual_machine\":{\"label\":\"Testingagain\",\"cpus\":1,\"operating_system_distro\":\"rhel\",\"created_at\":\"2011-04-20T16:01:10Z\",\"template_id\":1,\"operating_system\":\"linux\",\"cpu_shares\":1,\"updated_at\":\"2011-04-20T16:02:18Z\",\"memory\":256,\"local_remote_access_port\":5901,\"allowed_swap\":true,\"recovery_mode\":false,\"allow_resize_without_reboot\":true,\"xen_id\":null,\"id\":72,\"hypervisor_id\":6,\"user_id\":4,\"template_label\":\"CentOS 5.5 x64\",\"hostname\":\"testingagain.com\",\"booted\":false,\"remote_access_password\":\"sadf234\",\"min_disk_size\":5,\"initial_root_password\":\"213fsdfsd\",\"identifier\":\"asdfdsfsdf\",\"locked\":true,\"built\":false}}"
77
- http_version: "1.1"
77
+ http_version: "1.1"
@@ -2,13 +2,13 @@
2
2
  - !ruby/struct:VCR::HTTPInteraction
3
3
  request: !ruby/struct:VCR::Request
4
4
  method: :post
5
- uri: http://user:pass@www.example.com:80/virtual_machines/404/change_owner.json?user_id=1
5
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/404/change_owner.json?user_id=1
6
6
  body:
7
7
  headers:
8
8
  content-type:
9
9
  - application/json
10
10
  authorization:
11
- - Basic WHAT
11
+ - Basic <REDACTED>
12
12
  response: !ruby/struct:VCR::Response
13
13
  status: !ruby/struct:VCR::ResponseStatus
14
14
  code: 404
@@ -27,7 +27,7 @@
27
27
  date:
28
28
  - Thu, 28 Apr 2011 15:16:51 GMT
29
29
  set-cookie:
30
- - _onapp_session=WHAT; path=/; HttpOnly
30
+ - <REDACTED>
31
31
  status:
32
32
  - "404"
33
33
  cache-control:
@@ -39,13 +39,13 @@
39
39
  - !ruby/struct:VCR::HTTPInteraction
40
40
  request: !ruby/struct:VCR::Request
41
41
  method: :post
42
- uri: http://user:pass@www.example.com:80/virtual_machines/1/change_owner.json?user_id=404
42
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/1/change_owner.json?user_id=404
43
43
  body:
44
44
  headers:
45
45
  content-type:
46
46
  - application/json
47
47
  authorization:
48
- - Basic WHAT
48
+ - Basic <REDACTED>
49
49
  response: !ruby/struct:VCR::Response
50
50
  status: !ruby/struct:VCR::ResponseStatus
51
51
  code: 500
@@ -70,13 +70,13 @@
70
70
  - !ruby/struct:VCR::HTTPInteraction
71
71
  request: !ruby/struct:VCR::Request
72
72
  method: :post
73
- uri: http://user:pass@www.example.com:80/virtual_machines/1/change_owner.json?user_id=2
73
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/1/change_owner.json?user_id=2
74
74
  body:
75
75
  headers:
76
76
  content-type:
77
77
  - application/json
78
78
  authorization:
79
- - Basic WHAT
79
+ - Basic <REDACTED>
80
80
  response: !ruby/struct:VCR::Response
81
81
  status: !ruby/struct:VCR::ResponseStatus
82
82
  code: 201
@@ -97,7 +97,7 @@
97
97
  date:
98
98
  - Thu, 28 Apr 2011 15:18:02 GMT
99
99
  set-cookie:
100
- - _onapp_session=WHAT; path=/; HttpOnly
100
+ - <REDACTED>
101
101
  status:
102
102
  - "201"
103
103
  cache-control:
@@ -2,13 +2,13 @@
2
2
  - !ruby/struct:VCR::HTTPInteraction
3
3
  request: !ruby/struct:VCR::Request
4
4
  method: :post
5
- uri: http://user:pass@www.example.com:80/virtual_machines/404/reset_password.json?new_password=password
5
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/404/reset_password.json?new_password=password
6
6
  body:
7
7
  headers:
8
8
  content-type:
9
9
  - application/json
10
10
  authorization:
11
- - Basic WHAT
11
+ - Basic <REDACTED>
12
12
  response: !ruby/struct:VCR::Response
13
13
  status: !ruby/struct:VCR::ResponseStatus
14
14
  code: 404
@@ -21,31 +21,31 @@
21
21
  content-type:
22
22
  - application/json; charset=utf-8
23
23
  date:
24
- - Thu, 28 Apr 2011 15:31:22 GMT
24
+ - Wed, 08 Feb 2012 16:41:30 GMT
25
25
  server:
26
26
  - Apache/2.2.3 (CentOS)
27
27
  x-runtime:
28
- - "0.112165"
28
+ - "0.060845"
29
29
  set-cookie:
30
- - _onapp_session=WHAT; path=/; HttpOnly
30
+ - <REDACTED>
31
31
  cache-control:
32
32
  - no-cache
33
33
  status:
34
34
  - "404"
35
35
  transfer-encoding:
36
36
  - chunked
37
- body: "{\"error\":\"Resource not found\"}"
37
+ body: "{\"errors\":[\"Resource not found\"]}"
38
38
  http_version: "1.1"
39
39
  - !ruby/struct:VCR::HTTPInteraction
40
40
  request: !ruby/struct:VCR::Request
41
41
  method: :post
42
- uri: http://user:pass@www.example.com:80/virtual_machines/1/reset_password.json?new_password=passwordsareimportant
42
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/1/reset_password.json?new_password=passwordsareimportant
43
43
  body:
44
44
  headers:
45
45
  content-type:
46
46
  - application/json
47
47
  authorization:
48
- - Basic WHAT
48
+ - Basic <REDACTED>
49
49
  response: !ruby/struct:VCR::Response
50
50
  status: !ruby/struct:VCR::ResponseStatus
51
51
  code: 201
@@ -54,24 +54,24 @@
54
54
  x-ua-compatible:
55
55
  - IE=Edge,chrome=1
56
56
  location:
57
- - http://www.example.com/virtual_machines/7z2gzavnrhmmt3
57
+ - http://www.example.com/virtual_machines/rq2l6j9j8jg51a
58
58
  x-powered-by:
59
59
  - Phusion Passenger (mod_rails/mod_rack) 3.0.1
60
60
  content-type:
61
61
  - application/json; charset=utf-8
62
62
  x-runtime:
63
- - "0.284168"
63
+ - "0.059492"
64
64
  server:
65
65
  - Apache/2.2.3 (CentOS)
66
66
  date:
67
- - Thu, 28 Apr 2011 15:31:22 GMT
67
+ - Wed, 08 Feb 2012 16:41:30 GMT
68
68
  set-cookie:
69
- - _onapp_session=WHAT; path=/; HttpOnly
69
+ - <REDACTED>
70
70
  status:
71
71
  - "201"
72
72
  cache-control:
73
73
  - no-cache
74
74
  transfer-encoding:
75
75
  - chunked
76
- body: "{\"virtual_machine\":{\"monthly_bandwidth_used\":0,\"cpus\":1,\"label\":\"testing\",\"created_at\":\"2011-04-19T18:30:33Z\",\"operating_system_distro\":null,\"cpu_shares\":1,\"operating_system\":null,\"template_id\":null,\"allowed_swap\":true,\"local_remote_access_port\":null,\"memory\":100,\"updated_at\":\"2011-04-28T15:18:02Z\",\"allow_resize_without_reboot\":null,\"recovery_mode\":null,\"hypervisor_id\":1,\"id\":1,\"xen_id\":null,\"user_note\":null,\"allowed_hot_migrate\":null,\"user_id\":2,\"note\":null,\"strict_virtual_machine_id\":null,\"suspended\":false,\"total_disk_size\":0,\"booted\":false,\"hostname\":\"bob\",\"template_label\":null,\"identifier\":\"7z2gzavnrhmmt3\",\"initial_root_password\":\"qb6xnpofw43k\",\"min_disk_size\":null,\"remote_access_password\":null,\"built\":false,\"locked\":false,\"ip_addresses\":[]}}"
76
+ body: "{\"virtual_machine\":{\"monthly_bandwidth_used\":30090,\"aflexi_id\":null,\"cpus\":1,\"label\":\"testing\",\"created_at\":\"2011-12-16T11:46:18Z\",\"operating_system_distro\":\"2003\",\"cpu_shares\":25,\"enable_autoscale\":false,\"operating_system\":\"windows\",\"template_id\":1,\"allowed_swap\":false,\"local_remote_access_port\":null,\"memory\":2048,\"updated_at\":\"2012-02-08T16:37:45Z\",\"allow_resize_without_reboot\":false,\"recovery_mode\":false,\"enable_monitis\":false,\"hypervisor_id\":1,\"id\":1333,\"update_billing_stat\":false,\"xen_id\":null,\"admin_note\":null,\"allowed_hot_migrate\":false,\"user_id\":100,\"note\":null,\"strict_virtual_machine_id\":null,\"suspended\":false,\"vip\":null,\"booted\":false,\"hostname\":\"VH\",\"max_memory\":32768,\"template_label\":\"Windows Server 2003 x86\",\"total_disk_size\":14,\"add_to_marketplace\":null,\"identifier\":\"rq2l6j9j8jg51a\",\"initial_root_password\":\"dcytl7hcvfc1\",\"min_disk_size\":10,\"remote_access_password\":\"mt3n2r4gdg99\",\"built\":true,\"locked\":false,\"state\":\"new\",\"ip_addresses\":[{\"ip_address\":{\"address\":\"83.170.67.231\",\"disallowed_primary\":false,\"netmask\":\"255.255.255.224\",\"created_at\":\"2011-01-20T11:23:30Z\",\"broadcast\":\"83.170.67.255\",\"updated_at\":\"2011-10-10T09:15:15Z\",\"network_id\":1,\"network_address\":\"83.170.67.224\",\"id\":33448,\"free\":false,\"gateway\":\"83.170.67.225\"}}]}}"
77
77
  http_version: "1.1"
@@ -0,0 +1,63 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/404/console.json
6
+ body:
7
+ headers:
8
+ content-type:
9
+ - application/json
10
+ authorization:
11
+ - Basic <REDACTED>
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 500
15
+ message: Internal Server Error
16
+ headers:
17
+ x-powered-by:
18
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
19
+ content-type:
20
+ - text/html; charset=UTF-8
21
+ date:
22
+ - Thu, 09 Feb 2012 15:37:11 GMT
23
+ server:
24
+ - Apache/2.2.3 (CentOS)
25
+ x-runtime:
26
+ - "0.002128"
27
+ status:
28
+ - "500"
29
+ transfer-encoding:
30
+ - chunked
31
+ body: <html><body><h1>500 Internal Server Error</h1>If you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong.</body></html>
32
+ http_version: "1.1"
33
+ - !ruby/struct:VCR::HTTPInteraction
34
+ request: !ruby/struct:VCR::Request
35
+ method: :post
36
+ uri: http://<USER>:<PASS>@<URL>:80/virtual_machines/1/console.json
37
+ body:
38
+ headers:
39
+ content-type:
40
+ - application/json
41
+ authorization:
42
+ - Basic <REDACTED>
43
+ response: !ruby/struct:VCR::Response
44
+ status: !ruby/struct:VCR::ResponseStatus
45
+ code: 500
46
+ message: Internal Server Error
47
+ headers:
48
+ x-powered-by:
49
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.1
50
+ content-type:
51
+ - text/html; charset=UTF-8
52
+ x-runtime:
53
+ - "0.002128"
54
+ server:
55
+ - Apache/2.2.3 (CentOS)
56
+ date:
57
+ - Thu, 09 Feb 2012 15:37:11 GMT
58
+ status:
59
+ - "500"
60
+ transfer-encoding:
61
+ - chunked
62
+ body: <html><body><h1>500 Internal Server Error</h1>If you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong.</body></html>
63
+ http_version: "1.1"