fog-proxmox 0.4.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 (199) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +4 -0
  3. data/.codeclimate.yml +14 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  6. data/.gitignore +5 -0
  7. data/.gitlab-ci.yml +42 -0
  8. data/.rubocop.yml +13 -0
  9. data/.ruby-gemset +1 -0
  10. data/.solargraph.yml +10 -0
  11. data/.travis.yml +26 -0
  12. data/.vscode/launch.json +114 -0
  13. data/.vscode/settings.json +45 -0
  14. data/.vscode/tasks.json +27 -0
  15. data/CODE_OF_CONDUCT.md +74 -0
  16. data/CONTRIBUTING.md +20 -0
  17. data/CONTRIBUTORS.md +9 -0
  18. data/Gemfile +23 -0
  19. data/Gemfile.lock +146 -0
  20. data/ISSUE_TEMPLATE.md +43 -0
  21. data/LICENSE +674 -0
  22. data/README.md +58 -0
  23. data/Rakefile +53 -0
  24. data/SUPPORT.md +9 -0
  25. data/bin/console +29 -0
  26. data/bin/setup +29 -0
  27. data/docs/compute.md +846 -0
  28. data/docs/connection_parameters.md +45 -0
  29. data/docs/getting_started.md +53 -0
  30. data/docs/identity.md +357 -0
  31. data/examples/compute.rb +279 -0
  32. data/examples/identity.rb +195 -0
  33. data/fog-proxmox.gemspec +63 -0
  34. data/fogproxmox.png +0 -0
  35. data/lib/fog/compute/proxmox.rb +131 -0
  36. data/lib/fog/compute/proxmox/models/container.rb +97 -0
  37. data/lib/fog/compute/proxmox/models/container_config.rb +90 -0
  38. data/lib/fog/compute/proxmox/models/containers.rb +40 -0
  39. data/lib/fog/compute/proxmox/models/disk.rb +67 -0
  40. data/lib/fog/compute/proxmox/models/disks.rb +49 -0
  41. data/lib/fog/compute/proxmox/models/interface.rb +50 -0
  42. data/lib/fog/compute/proxmox/models/interfaces.rb +46 -0
  43. data/lib/fog/compute/proxmox/models/node.rb +93 -0
  44. data/lib/fog/compute/proxmox/models/nodes.rb +45 -0
  45. data/lib/fog/compute/proxmox/models/server.rb +212 -0
  46. data/lib/fog/compute/proxmox/models/server_config.rb +116 -0
  47. data/lib/fog/compute/proxmox/models/servers.rb +70 -0
  48. data/lib/fog/compute/proxmox/models/snapshot.rb +70 -0
  49. data/lib/fog/compute/proxmox/models/snapshots.rb +55 -0
  50. data/lib/fog/compute/proxmox/models/storage.rb +61 -0
  51. data/lib/fog/compute/proxmox/models/storages.rb +60 -0
  52. data/lib/fog/compute/proxmox/models/task.rb +84 -0
  53. data/lib/fog/compute/proxmox/models/tasks.rb +71 -0
  54. data/lib/fog/compute/proxmox/models/volume.rb +61 -0
  55. data/lib/fog/compute/proxmox/models/volumes.rb +67 -0
  56. data/lib/fog/compute/proxmox/requests/action_server.rb +47 -0
  57. data/lib/fog/compute/proxmox/requests/check_vmid.rb +41 -0
  58. data/lib/fog/compute/proxmox/requests/clone_server.rb +46 -0
  59. data/lib/fog/compute/proxmox/requests/create_backup.rb +44 -0
  60. data/lib/fog/compute/proxmox/requests/create_server.rb +45 -0
  61. data/lib/fog/compute/proxmox/requests/create_snapshot.rb +47 -0
  62. data/lib/fog/compute/proxmox/requests/create_spice.rb +46 -0
  63. data/lib/fog/compute/proxmox/requests/create_term.rb +46 -0
  64. data/lib/fog/compute/proxmox/requests/create_vnc.rb +46 -0
  65. data/lib/fog/compute/proxmox/requests/delete_server.rb +47 -0
  66. data/lib/fog/compute/proxmox/requests/delete_snapshot.rb +48 -0
  67. data/lib/fog/compute/proxmox/requests/delete_volume.rb +40 -0
  68. data/lib/fog/compute/proxmox/requests/get_node.rb +44 -0
  69. data/lib/fog/compute/proxmox/requests/get_server_config.rb +45 -0
  70. data/lib/fog/compute/proxmox/requests/get_server_status.rb +45 -0
  71. data/lib/fog/compute/proxmox/requests/get_snapshot.rb +47 -0
  72. data/lib/fog/compute/proxmox/requests/get_storage.rb +44 -0
  73. data/lib/fog/compute/proxmox/requests/get_task.rb +44 -0
  74. data/lib/fog/compute/proxmox/requests/get_vnc.rb +46 -0
  75. data/lib/fog/compute/proxmox/requests/get_volume.rb +42 -0
  76. data/lib/fog/compute/proxmox/requests/list_nodes.rb +42 -0
  77. data/lib/fog/compute/proxmox/requests/list_servers.rb +42 -0
  78. data/lib/fog/compute/proxmox/requests/list_snapshots.rb +43 -0
  79. data/lib/fog/compute/proxmox/requests/list_storages.rb +42 -0
  80. data/lib/fog/compute/proxmox/requests/list_tasks.rb +42 -0
  81. data/lib/fog/compute/proxmox/requests/list_volumes.rb +42 -0
  82. data/lib/fog/compute/proxmox/requests/log_task.rb +45 -0
  83. data/lib/fog/compute/proxmox/requests/migrate_server.rb +44 -0
  84. data/lib/fog/compute/proxmox/requests/move_disk.rb +46 -0
  85. data/lib/fog/compute/proxmox/requests/move_volume.rb +46 -0
  86. data/lib/fog/compute/proxmox/requests/next_vmid.rb +39 -0
  87. data/lib/fog/compute/proxmox/requests/resize_container.rb +46 -0
  88. data/lib/fog/compute/proxmox/requests/resize_server.rb +43 -0
  89. data/lib/fog/compute/proxmox/requests/rollback_snapshot.rb +46 -0
  90. data/lib/fog/compute/proxmox/requests/status_task.rb +44 -0
  91. data/lib/fog/compute/proxmox/requests/stop_task.rb +41 -0
  92. data/lib/fog/compute/proxmox/requests/template_server.rb +43 -0
  93. data/lib/fog/compute/proxmox/requests/update_server.rb +46 -0
  94. data/lib/fog/compute/proxmox/requests/update_snapshot.rb +45 -0
  95. data/lib/fog/identity/proxmox.rb +132 -0
  96. data/lib/fog/identity/proxmox/models/activedirectory.rb +57 -0
  97. data/lib/fog/identity/proxmox/models/domain.rb +61 -0
  98. data/lib/fog/identity/proxmox/models/domains.rb +115 -0
  99. data/lib/fog/identity/proxmox/models/group.rb +60 -0
  100. data/lib/fog/identity/proxmox/models/groups.rb +50 -0
  101. data/lib/fog/identity/proxmox/models/ldap.rb +57 -0
  102. data/lib/fog/identity/proxmox/models/oath.rb +50 -0
  103. data/lib/fog/identity/proxmox/models/pam.rb +46 -0
  104. data/lib/fog/identity/proxmox/models/permission.rb +69 -0
  105. data/lib/fog/identity/proxmox/models/permissions.rb +61 -0
  106. data/lib/fog/identity/proxmox/models/pool.rb +84 -0
  107. data/lib/fog/identity/proxmox/models/pools.rb +50 -0
  108. data/lib/fog/identity/proxmox/models/principal.rb +47 -0
  109. data/lib/fog/identity/proxmox/models/pve.rb +46 -0
  110. data/lib/fog/identity/proxmox/models/role.rb +61 -0
  111. data/lib/fog/identity/proxmox/models/roles.rb +51 -0
  112. data/lib/fog/identity/proxmox/models/user.rb +74 -0
  113. data/lib/fog/identity/proxmox/models/users.rb +50 -0
  114. data/lib/fog/identity/proxmox/models/yubico.rb +51 -0
  115. data/lib/fog/identity/proxmox/requests/add_permission.rb +41 -0
  116. data/lib/fog/identity/proxmox/requests/change_password.rb +41 -0
  117. data/lib/fog/identity/proxmox/requests/check_permissions.rb +44 -0
  118. data/lib/fog/identity/proxmox/requests/create_domain.rb +40 -0
  119. data/lib/fog/identity/proxmox/requests/create_group.rb +40 -0
  120. data/lib/fog/identity/proxmox/requests/create_pool.rb +40 -0
  121. data/lib/fog/identity/proxmox/requests/create_role.rb +40 -0
  122. data/lib/fog/identity/proxmox/requests/create_user.rb +40 -0
  123. data/lib/fog/identity/proxmox/requests/delete_domain.rb +40 -0
  124. data/lib/fog/identity/proxmox/requests/delete_group.rb +40 -0
  125. data/lib/fog/identity/proxmox/requests/delete_pool.rb +39 -0
  126. data/lib/fog/identity/proxmox/requests/delete_role.rb +40 -0
  127. data/lib/fog/identity/proxmox/requests/delete_user.rb +39 -0
  128. data/lib/fog/identity/proxmox/requests/get_domain.rb +41 -0
  129. data/lib/fog/identity/proxmox/requests/get_group.rb +41 -0
  130. data/lib/fog/identity/proxmox/requests/get_pool.rb +41 -0
  131. data/lib/fog/identity/proxmox/requests/get_role.rb +41 -0
  132. data/lib/fog/identity/proxmox/requests/get_user.rb +40 -0
  133. data/lib/fog/identity/proxmox/requests/list_domains.rb +41 -0
  134. data/lib/fog/identity/proxmox/requests/list_groups.rb +41 -0
  135. data/lib/fog/identity/proxmox/requests/list_permissions.rb +41 -0
  136. data/lib/fog/identity/proxmox/requests/list_pools.rb +41 -0
  137. data/lib/fog/identity/proxmox/requests/list_roles.rb +41 -0
  138. data/lib/fog/identity/proxmox/requests/list_users.rb +42 -0
  139. data/lib/fog/identity/proxmox/requests/read_version.rb +43 -0
  140. data/lib/fog/identity/proxmox/requests/remove_permission.rb +42 -0
  141. data/lib/fog/identity/proxmox/requests/update_domain.rb +41 -0
  142. data/lib/fog/identity/proxmox/requests/update_group.rb +41 -0
  143. data/lib/fog/identity/proxmox/requests/update_pool.rb +41 -0
  144. data/lib/fog/identity/proxmox/requests/update_role.rb +41 -0
  145. data/lib/fog/identity/proxmox/requests/update_user.rb +41 -0
  146. data/lib/fog/network/proxmox.rb +83 -0
  147. data/lib/fog/network/proxmox/models/network.rb +82 -0
  148. data/lib/fog/network/proxmox/models/networks.rb +54 -0
  149. data/lib/fog/network/proxmox/models/node.rb +70 -0
  150. data/lib/fog/network/proxmox/models/nodes.rb +45 -0
  151. data/lib/fog/network/proxmox/requests/create_network.rb +44 -0
  152. data/lib/fog/network/proxmox/requests/delete_network.rb +45 -0
  153. data/lib/fog/network/proxmox/requests/get_network.rb +46 -0
  154. data/lib/fog/network/proxmox/requests/get_node.rb +44 -0
  155. data/lib/fog/network/proxmox/requests/list_networks.rb +43 -0
  156. data/lib/fog/network/proxmox/requests/list_nodes.rb +42 -0
  157. data/lib/fog/network/proxmox/requests/power_node.rb +46 -0
  158. data/lib/fog/network/proxmox/requests/update_network.rb +46 -0
  159. data/lib/fog/proxmox.rb +128 -0
  160. data/lib/fog/proxmox/core.rb +139 -0
  161. data/lib/fog/proxmox/errors.rb +64 -0
  162. data/lib/fog/proxmox/hash.rb +33 -0
  163. data/lib/fog/proxmox/helpers/controller_helper.rb +55 -0
  164. data/lib/fog/proxmox/helpers/cpu_helper.rb +45 -0
  165. data/lib/fog/proxmox/helpers/disk_helper.rb +84 -0
  166. data/lib/fog/proxmox/helpers/nic_helper.rb +62 -0
  167. data/lib/fog/proxmox/json.rb +32 -0
  168. data/lib/fog/proxmox/models/collection.rb +85 -0
  169. data/lib/fog/proxmox/models/model.rb +58 -0
  170. data/lib/fog/proxmox/variables.rb +40 -0
  171. data/lib/fog/proxmox/version.rb +24 -0
  172. data/lib/fog/storage/proxmox.rb +29 -0
  173. data/spec/compute_spec.rb +408 -0
  174. data/spec/fixtures/proxmox/compute/containers.yml +5398 -0
  175. data/spec/fixtures/proxmox/compute/identity_ticket.yml +40 -0
  176. data/spec/fixtures/proxmox/compute/servers.yml +10571 -0
  177. data/spec/fixtures/proxmox/compute/snapshots.yml +1228 -0
  178. data/spec/fixtures/proxmox/compute/storages.yml +120 -0
  179. data/spec/fixtures/proxmox/compute/tasks.yml +200 -0
  180. data/spec/fixtures/proxmox/identity/auth.yml +44 -0
  181. data/spec/fixtures/proxmox/identity/domains.yml +531 -0
  182. data/spec/fixtures/proxmox/identity/groups.yml +324 -0
  183. data/spec/fixtures/proxmox/identity/identity_ticket.yml +40 -0
  184. data/spec/fixtures/proxmox/identity/permissions.yml +565 -0
  185. data/spec/fixtures/proxmox/identity/pools.yml +488 -0
  186. data/spec/fixtures/proxmox/identity/read_version.yml +42 -0
  187. data/spec/fixtures/proxmox/identity/roles.yml +324 -0
  188. data/spec/fixtures/proxmox/identity/users.yml +646 -0
  189. data/spec/fixtures/proxmox/network/identity_ticket.yml +40 -0
  190. data/spec/fixtures/proxmox/network/networks.yml +413 -0
  191. data/spec/helpers/controller_helper_spec.rb +77 -0
  192. data/spec/helpers/cpu_helper_spec.rb +91 -0
  193. data/spec/helpers/disk_helper_spec.rb +104 -0
  194. data/spec/helpers/nic_helper_spec.rb +73 -0
  195. data/spec/identity_spec.rb +316 -0
  196. data/spec/network_spec.rb +67 -0
  197. data/spec/proxmox_vcr.rb +102 -0
  198. data/spec/spec_helper.rb +39 -0
  199. metadata +535 -0
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://192.168.56.101:8006/api2/json/access/ticket
6
+ body:
7
+ encoding: UTF-8
8
+ string: username=root@pam&password=proxmox01
9
+ headers:
10
+ User-Agent:
11
+ - fog-core/1.45.0
12
+ Accept:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Cache-Control:
20
+ - max-age=0
21
+ Connection:
22
+ - close, Keep-Alive
23
+ Date:
24
+ - Fri, 15 Jun 2018 15:42:56 GMT
25
+ Pragma:
26
+ - no-cache
27
+ Server:
28
+ - pve-api-daemon/3.0
29
+ Content-Length:
30
+ - '1151'
31
+ Content-Type:
32
+ - application/json;charset=UTF-8
33
+ Expires:
34
+ - Fri, 15 Jun 2018 15:42:56 GMT
35
+ body:
36
+ encoding: ASCII-8BIT
37
+ string: '{"data":{"cap":{"access":{"Group.Allocate":1,"User.Modify":1,"Permissions.Modify":1},"storage":{"Datastore.AllocateSpace":1,"Datastore.Audit":1,"Datastore.AllocateTemplate":1,"Permissions.Modify":1,"Datastore.Allocate":1},"nodes":{"Permissions.Modify":1,"Sys.PowerMgmt":1,"Sys.Syslog":1,"Sys.Modify":1,"Sys.Console":1,"Sys.Audit":1},"dc":{"Sys.Audit":1},"vms":{"VM.Snapshot.Rollback":1,"VM.Config.Disk":1,"VM.Backup":1,"VM.Config.Network":1,"VM.Migrate":1,"VM.Allocate":1,"VM.Console":1,"VM.Config.Memory":1,"VM.Audit":1,"VM.Monitor":1,"VM.Config.CPU":1,"VM.Clone":1,"VM.Config.CDROM":1,"VM.PowerMgmt":1,"VM.Snapshot":1,"Permissions.Modify":1,"VM.Config.HWType":1,"VM.Config.Options":1}},"ticket":"PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==","username":"root@pam","CSRFPreventionToken":"5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0"}}'
38
+ http_version:
39
+ recorded_at: Fri, 15 Jun 2018 15:42:57 GMT
40
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,413 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network?type=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - fog-core/1.45.0
12
+ Accept:
13
+ - application/json
14
+ Cookie:
15
+ - PVEAuthCookie=PVE:root@pam:5B23D6E0::CuRZNrOWGO66puwzL59Ga0yL2B2wntrDXTapItJ4+RQFjDUClKi7PesSHQ0+kLl8Rni7m7tSxSKIDSeu/VUuiF4FpkZjdony3j69vqRWwHZwjBceJfPg/9eIbExGg4ymcNF8CZejBVffRXqh9n36BVwTTEFyUOypCgoZzUONJ5JRXIAWHcmChf4MC+SW2XqOJsLD6M6Muh+vgEjutr1ZRK9gjJfua8DPpdRYU0eFIWgeX+5pVUw1ZbrdVysrueW5Q4MQSr8fqUxbf+K0/s853O8mYePqkRVLZsm8VLz9V+tqEmRpR3eQ/gq9c0nITy594XjEugIRdaOryo2tL0alsA==
16
+ response:
17
+ status:
18
+ code: 400
19
+ message: Parameter verification failed.
20
+ headers:
21
+ Cache-Control:
22
+ - max-age=0
23
+ Connection:
24
+ - close
25
+ Date:
26
+ - Fri, 15 Jun 2018 15:10:26 GMT
27
+ Pragma:
28
+ - no-cache
29
+ Server:
30
+ - pve-api-daemon/3.0
31
+ Content-Length:
32
+ - '169'
33
+ Content-Type:
34
+ - application/json;charset=UTF-8
35
+ Expires:
36
+ - Fri, 15 Jun 2018 15:10:26 GMT
37
+ body:
38
+ encoding: ASCII-8BIT
39
+ string: '{"data":null,"errors":{"type":"value '''' does not have a value in
40
+ the enumeration ''bridge, bond, eth, alias, vlan, OVSBridge, OVSBond, OVSPort,
41
+ OVSIntPort, any_bridge''"}}'
42
+ http_version:
43
+ recorded_at: Fri, 15 Jun 2018 15:10:28 GMT
44
+ - request:
45
+ method: get
46
+ uri: https://192.168.56.101:8006/api2/json/cluster/resources?type=node
47
+ body:
48
+ encoding: US-ASCII
49
+ string: ''
50
+ headers:
51
+ User-Agent:
52
+ - fog-core/1.45.0
53
+ Accept:
54
+ - application/json
55
+ Cookie:
56
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
57
+ response:
58
+ status:
59
+ code: 200
60
+ message: OK
61
+ headers:
62
+ Cache-Control:
63
+ - max-age=0
64
+ Connection:
65
+ - Keep-Alive
66
+ Date:
67
+ - Fri, 15 Jun 2018 15:42:56 GMT
68
+ Pragma:
69
+ - no-cache
70
+ Server:
71
+ - pve-api-daemon/3.0
72
+ Content-Length:
73
+ - '208'
74
+ Content-Type:
75
+ - application/json;charset=UTF-8
76
+ Expires:
77
+ - Fri, 15 Jun 2018 15:42:56 GMT
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: '{"data":[{"disk":1468776448,"maxmem":4136079360,"maxcpu":4,"status":"online","node":"pve","mem":759963648,"type":"node","uptime":96,"cpu":0.00520740891197363,"level":"","id":"node/pve","maxdisk":2310864896}]}'
81
+ http_version:
82
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
83
+ - request:
84
+ method: post
85
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
86
+ body:
87
+ encoding: US-ASCII
88
+ string: iface=enp0s10&type=eth
89
+ headers:
90
+ User-Agent:
91
+ - fog-core/1.45.0
92
+ Accept:
93
+ - application/json
94
+ Csrfpreventiontoken:
95
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
96
+ Cookie:
97
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
98
+ response:
99
+ status:
100
+ code: 200
101
+ message: OK
102
+ headers:
103
+ Cache-Control:
104
+ - max-age=0
105
+ Connection:
106
+ - close, Keep-Alive
107
+ Date:
108
+ - Fri, 15 Jun 2018 15:42:56 GMT
109
+ Pragma:
110
+ - no-cache
111
+ Server:
112
+ - pve-api-daemon/3.0
113
+ Content-Length:
114
+ - '13'
115
+ Content-Type:
116
+ - application/json;charset=UTF-8
117
+ Expires:
118
+ - Fri, 15 Jun 2018 15:42:56 GMT
119
+ body:
120
+ encoding: ASCII-8BIT
121
+ string: '{"data":null}'
122
+ http_version:
123
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
124
+ - request:
125
+ method: get
126
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
127
+ body:
128
+ encoding: US-ASCII
129
+ string: ''
130
+ headers:
131
+ User-Agent:
132
+ - fog-core/1.45.0
133
+ Accept:
134
+ - application/json
135
+ Cookie:
136
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
137
+ response:
138
+ status:
139
+ code: 200
140
+ message: OK
141
+ headers:
142
+ Cache-Control:
143
+ - max-age=0
144
+ Connection:
145
+ - Keep-Alive
146
+ Date:
147
+ - Fri, 15 Jun 2018 15:42:56 GMT
148
+ Pragma:
149
+ - no-cache
150
+ Server:
151
+ - pve-api-daemon/3.0
152
+ Content-Length:
153
+ - '1044'
154
+ Content-Type:
155
+ - application/json;charset=UTF-8
156
+ Expires:
157
+ - Fri, 15 Jun 2018 15:42:56 GMT
158
+ body:
159
+ encoding: ASCII-8BIT
160
+ string: '{"changes":"--- /etc/network/interfaces\t2018-06-15 17:40:57.456000000
161
+ +0200\n+++ /etc/network/interfaces.new\t2018-06-15 17:42:56.744000000 +0200\n@@
162
+ -18,6 +18,8 @@\n \n iface enp0s9 inet manual\n \n+iface enp0s10 inet manual\n+\n
163
+ auto vmbr0\n iface vmbr0 inet static\n \taddress 192.168.56.101\n","data":[{"method6":"manual","iface":"enp0s9","exists":1,"type":"eth","priority":5,"method":"manual","families":["inet"]},{"exists":1,"type":"eth","priority":4,"method":"manual","families":["inet"],"method6":"manual","iface":"enp0s3"},{"priority":3,"families":["inet"],"method":"manual","active":1,"method6":"manual","exists":1,"type":"eth","iface":"enp0s8"},{"families":["inet"],"priority":6,"method":"manual","type":"eth","iface":"enp0s10","method6":"manual"},{"bridge_ports":"enp0s8","address":"192.168.56.101","active":1,"method6":"manual","netmask":"255.255.255.0","method":"static","families":["inet"],"priority":7,"gateway":"10.0.2.2","iface":"vmbr0","comments":"toto\n","bridge_stp":"off","bridge_fd":"0","autostart":1,"type":"bridge"}]}'
164
+ http_version:
165
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
166
+ - request:
167
+ method: post
168
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
169
+ body:
170
+ encoding: US-ASCII
171
+ string: iface=enp0s10&type=eth
172
+ headers:
173
+ User-Agent:
174
+ - fog-core/1.45.0
175
+ Accept:
176
+ - application/json
177
+ Csrfpreventiontoken:
178
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
179
+ Cookie:
180
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
181
+ response:
182
+ status:
183
+ code: 400
184
+ message: Parameter verification failed.
185
+ headers:
186
+ Cache-Control:
187
+ - max-age=0
188
+ Connection:
189
+ - close
190
+ Date:
191
+ - Fri, 15 Jun 2018 15:42:56 GMT
192
+ Pragma:
193
+ - no-cache
194
+ Server:
195
+ - pve-api-daemon/3.0
196
+ Content-Length:
197
+ - '59'
198
+ Content-Type:
199
+ - application/json;charset=UTF-8
200
+ Expires:
201
+ - Fri, 15 Jun 2018 15:42:56 GMT
202
+ body:
203
+ encoding: ASCII-8BIT
204
+ string: '{"errors":{"iface":"interface already exists"},"data":null}'
205
+ http_version:
206
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
207
+ - request:
208
+ method: get
209
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
210
+ body:
211
+ encoding: US-ASCII
212
+ string: ''
213
+ headers:
214
+ User-Agent:
215
+ - fog-core/1.45.0
216
+ Accept:
217
+ - application/json
218
+ Cookie:
219
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
220
+ response:
221
+ status:
222
+ code: 200
223
+ message: OK
224
+ headers:
225
+ Cache-Control:
226
+ - max-age=0
227
+ Connection:
228
+ - Keep-Alive
229
+ Date:
230
+ - Fri, 15 Jun 2018 15:42:56 GMT
231
+ Pragma:
232
+ - no-cache
233
+ Server:
234
+ - pve-api-daemon/3.0
235
+ Content-Length:
236
+ - '1044'
237
+ Content-Type:
238
+ - application/json;charset=UTF-8
239
+ Expires:
240
+ - Fri, 15 Jun 2018 15:42:56 GMT
241
+ body:
242
+ encoding: ASCII-8BIT
243
+ string: '{"data":[{"method6":"manual","iface":"enp0s3","exists":1,"priority":4,"method":"manual","families":["inet"],"type":"eth"},{"iface":"enp0s9","method6":"manual","priority":5,"method":"manual","families":["inet"],"type":"eth","exists":1},{"method6":"manual","iface":"enp0s10","families":["inet"],"priority":6,"method":"manual","type":"eth"},{"priority":3,"method":"manual","families":["inet"],"method6":"manual","active":1,"type":"eth","exists":1,"iface":"enp0s8"},{"gateway":"10.0.2.2","iface":"vmbr0","type":"bridge","bridge_fd":"0","autostart":1,"bridge_stp":"off","comments":"toto\n","active":1,"method6":"manual","address":"192.168.56.101","bridge_ports":"enp0s8","families":["inet"],"method":"static","priority":7,"netmask":"255.255.255.0"}],"changes":"---
244
+ /etc/network/interfaces\t2018-06-15 17:40:57.456000000 +0200\n+++ /etc/network/interfaces.new\t2018-06-15
245
+ 17:42:56.744000000 +0200\n@@ -18,6 +18,8 @@\n \n iface enp0s9 inet manual\n
246
+ \n+iface enp0s10 inet manual\n+\n auto vmbr0\n iface vmbr0 inet static\n \taddress 192.168.56.101\n"}'
247
+ http_version:
248
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
249
+ - request:
250
+ method: put
251
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network/enp0s10
252
+ body:
253
+ encoding: US-ASCII
254
+ string: comments=test&type=eth
255
+ headers:
256
+ User-Agent:
257
+ - fog-core/1.45.0
258
+ Accept:
259
+ - application/json
260
+ Csrfpreventiontoken:
261
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
262
+ Cookie:
263
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
264
+ response:
265
+ status:
266
+ code: 200
267
+ message: OK
268
+ headers:
269
+ Cache-Control:
270
+ - max-age=0
271
+ Connection:
272
+ - Keep-Alive, Keep-Alive
273
+ Date:
274
+ - Fri, 15 Jun 2018 15:42:56 GMT
275
+ Pragma:
276
+ - no-cache
277
+ Server:
278
+ - pve-api-daemon/3.0
279
+ Content-Length:
280
+ - '13'
281
+ Content-Type:
282
+ - application/json;charset=UTF-8
283
+ Expires:
284
+ - Fri, 15 Jun 2018 15:42:56 GMT
285
+ body:
286
+ encoding: ASCII-8BIT
287
+ string: '{"data":null}'
288
+ http_version:
289
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
290
+ - request:
291
+ method: post
292
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/status
293
+ body:
294
+ encoding: US-ASCII
295
+ string: command=reboot
296
+ headers:
297
+ User-Agent:
298
+ - fog-core/1.45.0
299
+ Accept:
300
+ - application/json
301
+ Csrfpreventiontoken:
302
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
303
+ Cookie:
304
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
305
+ response:
306
+ status:
307
+ code: 200
308
+ message: OK
309
+ headers:
310
+ Cache-Control:
311
+ - max-age=0
312
+ Connection:
313
+ - close, Keep-Alive
314
+ Date:
315
+ - Fri, 15 Jun 2018 15:42:56 GMT
316
+ Pragma:
317
+ - no-cache
318
+ Server:
319
+ - pve-api-daemon/3.0
320
+ Content-Length:
321
+ - '13'
322
+ Content-Type:
323
+ - application/json;charset=UTF-8
324
+ Expires:
325
+ - Fri, 15 Jun 2018 15:42:56 GMT
326
+ body:
327
+ encoding: ASCII-8BIT
328
+ string: '{"data":null}'
329
+ http_version:
330
+ recorded_at: Fri, 15 Jun 2018 15:42:58 GMT
331
+ - request:
332
+ method: delete
333
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/network/enp0s10
334
+ body:
335
+ encoding: US-ASCII
336
+ string: ''
337
+ headers:
338
+ User-Agent:
339
+ - fog-core/1.45.0
340
+ Accept:
341
+ - application/json
342
+ Csrfpreventiontoken:
343
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
344
+ Cookie:
345
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
346
+ response:
347
+ status:
348
+ code: 200
349
+ message: OK
350
+ headers:
351
+ Cache-Control:
352
+ - max-age=0
353
+ Connection:
354
+ - Keep-Alive, Keep-Alive
355
+ Date:
356
+ - Fri, 15 Jun 2018 15:43:56 GMT
357
+ Pragma:
358
+ - no-cache
359
+ Server:
360
+ - pve-api-daemon/3.0
361
+ Content-Length:
362
+ - '13'
363
+ Content-Type:
364
+ - application/json;charset=UTF-8
365
+ Expires:
366
+ - Fri, 15 Jun 2018 15:43:56 GMT
367
+ body:
368
+ encoding: ASCII-8BIT
369
+ string: '{"data":null}'
370
+ http_version:
371
+ recorded_at: Fri, 15 Jun 2018 15:43:58 GMT
372
+ - request:
373
+ method: post
374
+ uri: https://192.168.56.101:8006/api2/json/nodes/pve/status
375
+ body:
376
+ encoding: US-ASCII
377
+ string: command=reboot
378
+ headers:
379
+ User-Agent:
380
+ - fog-core/1.45.0
381
+ Accept:
382
+ - application/json
383
+ Csrfpreventiontoken:
384
+ - 5B23DE80:Odh+gD4Ldii3UblgO6ALIzAfQW0
385
+ Cookie:
386
+ - PVEAuthCookie=PVE:root@pam:5B23DE80::ehO+FGO4nt1qmV2SjK0dW0tU995rNul/WGpms3sYWsQ8F5xGtqlH55qsiyBFM73SUECqdy8luEjzvRDj/tqL/mMn1YZ12MG5r0kdd/lkm5xoWojx2BIDb2zaoQcLhgtyHvww1qDRx5PRrKPnsM/4pIMJeslZ3uIZ8JoDoVf+DZ6WwMFxqnSHdFQM/oBpq+w6uuBZ2iIghPQgr/C/nx4tjLzKuP/CITEYN2UH4yemaqaExCuIUCPqLmpqhWcaKJ6VwtKV2YATIYzlxBYH5hwonKRBivuFhEMzyIg+g8V/uatl/q1xrfC6pw7E2DX9+T78YKAt9pEXPOeAp9Ok+1SVSQ==
387
+ response:
388
+ status:
389
+ code: 200
390
+ message: OK
391
+ headers:
392
+ Cache-Control:
393
+ - max-age=0
394
+ Connection:
395
+ - close, Keep-Alive
396
+ Date:
397
+ - Fri, 15 Jun 2018 15:43:56 GMT
398
+ Pragma:
399
+ - no-cache
400
+ Server:
401
+ - pve-api-daemon/3.0
402
+ Content-Length:
403
+ - '13'
404
+ Content-Type:
405
+ - application/json;charset=UTF-8
406
+ Expires:
407
+ - Fri, 15 Jun 2018 15:43:56 GMT
408
+ body:
409
+ encoding: ASCII-8BIT
410
+ string: '{"data":null}'
411
+ http_version:
412
+ recorded_at: Fri, 15 Jun 2018 15:43:58 GMT
413
+ recorded_with: VCR 3.0.3