fog-proxmox 0.10.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +79 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +1 -1
  5. data/README.md +10 -2
  6. data/docs/compute.md +23 -7
  7. data/docs/identity.md +31 -6
  8. data/examples/compute.rb +11 -11
  9. data/examples/identity.rb +28 -15
  10. data/fog-proxmox.gemspec +2 -2
  11. data/lib/fog/proxmox.rb +16 -76
  12. data/lib/fog/proxmox/auth/token.rb +88 -0
  13. data/lib/fog/proxmox/auth/token/access_ticket.rb +85 -0
  14. data/lib/fog/proxmox/auth/token/user_token.rb +94 -0
  15. data/lib/fog/{compute/proxmox.rb → proxmox/compute.rb} +31 -16
  16. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disk.rb +15 -2
  17. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disks.rb +5 -1
  18. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interface.rb +4 -0
  19. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interfaces.rb +1 -1
  20. data/lib/fog/{compute/proxmox → proxmox/compute}/models/node.rb +0 -0
  21. data/lib/fog/{compute/proxmox → proxmox/compute}/models/nodes.rb +1 -1
  22. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server.rb +2 -3
  23. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server_config.rb +9 -1
  24. data/lib/fog/{compute/proxmox → proxmox/compute}/models/servers.rb +1 -1
  25. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshot.rb +4 -5
  26. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshots.rb +1 -1
  27. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storage.rb +2 -3
  28. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storages.rb +1 -1
  29. data/lib/fog/{compute/proxmox → proxmox/compute}/models/task.rb +2 -3
  30. data/lib/fog/{compute/proxmox → proxmox/compute}/models/tasks.rb +1 -1
  31. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volume.rb +9 -3
  32. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volumes.rb +1 -1
  33. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/action_server.rb +1 -0
  34. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/clone_server.rb +1 -0
  35. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_backup.rb +1 -0
  36. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_server.rb +1 -0
  37. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_snapshot.rb +3 -1
  38. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_spice.rb +1 -0
  39. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_term.rb +1 -0
  40. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_vnc.rb +1 -0
  41. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_server.rb +1 -0
  42. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_snapshot.rb +3 -1
  43. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_volume.rb +1 -1
  44. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_node_statistics.rb +2 -2
  45. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_config.rb +18 -0
  46. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_status.rb +21 -0
  47. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_snapshot_config.rb +1 -1
  48. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_task.rb +1 -1
  49. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_vnc.rb +1 -0
  50. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_volume.rb +1 -1
  51. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_nodes.rb +8 -1
  52. data/lib/fog/proxmox/compute/requests/list_servers.rb +113 -0
  53. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_snapshots.rb +24 -1
  54. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_storages.rb +3 -1
  55. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_tasks.rb +3 -1
  56. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_volumes.rb +3 -1
  57. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/log_task.rb +3 -1
  58. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/migrate_server.rb +1 -1
  59. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_disk.rb +1 -1
  60. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_volume.rb +1 -1
  61. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/next_vmid.rb +1 -0
  62. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_container.rb +1 -1
  63. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_server.rb +1 -1
  64. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/rollback_snapshot.rb +3 -1
  65. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/status_task.rb +1 -1
  66. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/stop_task.rb +1 -1
  67. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/template_server.rb +1 -0
  68. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_server.rb +1 -0
  69. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_snapshot.rb +1 -1
  70. data/lib/fog/proxmox/core.rb +67 -58
  71. data/lib/fog/proxmox/hash.rb +2 -2
  72. data/lib/fog/proxmox/helpers/cpu_helper.rb +48 -9
  73. data/lib/fog/proxmox/helpers/disk_helper.rb +55 -19
  74. data/lib/fog/proxmox/helpers/nic_helper.rb +28 -20
  75. data/lib/fog/{identity/proxmox.rb → proxmox/identity.rb} +31 -17
  76. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain.rb +0 -0
  77. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain_type.rb +0 -0
  78. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domains.rb +1 -1
  79. data/lib/fog/{identity/proxmox → proxmox/identity}/models/group.rb +4 -2
  80. data/lib/fog/{identity/proxmox → proxmox/identity}/models/groups.rb +1 -1
  81. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permission.rb +0 -0
  82. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permissions.rb +1 -1
  83. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pool.rb +18 -0
  84. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pools.rb +4 -2
  85. data/lib/fog/{identity/proxmox → proxmox/identity}/models/principal.rb +0 -0
  86. data/lib/fog/{identity/proxmox → proxmox/identity}/models/role.rb +0 -0
  87. data/lib/fog/{identity/proxmox → proxmox/identity}/models/roles.rb +1 -1
  88. data/lib/fog/proxmox/identity/models/token.rb +71 -0
  89. data/lib/fog/proxmox/identity/models/token_info.rb +41 -0
  90. data/lib/fog/proxmox/identity/models/tokens.rb +58 -0
  91. data/lib/fog/{identity/proxmox → proxmox/identity}/models/user.rb +25 -2
  92. data/lib/fog/{identity/proxmox → proxmox/identity}/models/users.rb +1 -1
  93. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/change_password.rb +0 -0
  94. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/check_permissions.rb +0 -0
  95. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_domain.rb +0 -0
  96. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_group.rb +0 -0
  97. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_pool.rb +0 -0
  98. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_role.rb +0 -0
  99. data/lib/fog/proxmox/identity/requests/create_token.rb +40 -0
  100. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_user.rb +0 -0
  101. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_domain.rb +0 -0
  102. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_group.rb +0 -0
  103. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_pool.rb +0 -0
  104. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_role.rb +0 -0
  105. data/lib/fog/proxmox/identity/requests/delete_token.rb +40 -0
  106. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_user.rb +0 -0
  107. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_domain.rb +0 -0
  108. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_group.rb +0 -0
  109. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_pool.rb +0 -0
  110. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_role.rb +0 -0
  111. data/lib/fog/proxmox/identity/requests/get_token_info.rb +41 -0
  112. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_user.rb +0 -0
  113. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_domains.rb +0 -0
  114. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_groups.rb +0 -0
  115. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_permissions.rb +0 -0
  116. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_pools.rb +0 -0
  117. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_roles.rb +0 -0
  118. data/lib/fog/proxmox/identity/requests/list_tokens.rb +41 -0
  119. data/lib/fog/proxmox/identity/requests/list_user_permissions.rb +44 -0
  120. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_users.rb +0 -0
  121. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/read_version.rb +0 -0
  122. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_domain.rb +0 -0
  123. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_group.rb +0 -0
  124. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_permissions.rb +0 -0
  125. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_pool.rb +0 -0
  126. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_role.rb +0 -0
  127. data/lib/fog/proxmox/identity/requests/update_token.rb +41 -0
  128. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_user.rb +0 -0
  129. data/lib/fog/{network/proxmox.rb → proxmox/network.rb} +21 -14
  130. data/lib/fog/{network/proxmox → proxmox/network}/models/network.rb +0 -0
  131. data/lib/fog/{network/proxmox → proxmox/network}/models/networks.rb +1 -1
  132. data/lib/fog/{network/proxmox → proxmox/network}/models/node.rb +1 -1
  133. data/lib/fog/{network/proxmox → proxmox/network}/models/nodes.rb +1 -1
  134. data/lib/fog/{network/proxmox → proxmox/network}/requests/create_network.rb +0 -0
  135. data/lib/fog/{network/proxmox → proxmox/network}/requests/delete_network.rb +0 -0
  136. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_network.rb +0 -0
  137. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_node.rb +0 -0
  138. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_networks.rb +0 -0
  139. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_nodes.rb +0 -0
  140. data/lib/fog/{network/proxmox → proxmox/network}/requests/power_node.rb +0 -0
  141. data/lib/fog/{network/proxmox → proxmox/network}/requests/update_network.rb +0 -0
  142. data/lib/fog/{storage/proxmox.rb → proxmox/storage.rb} +1 -1
  143. data/lib/fog/proxmox/version.rb +1 -1
  144. data/spec/compute_spec.rb +4 -4
  145. data/spec/fixtures/proxmox/compute/common_auth.yml +40 -0
  146. data/spec/fixtures/proxmox/compute/containers.yml +1752 -7568
  147. data/spec/fixtures/proxmox/compute/nodes.yml +24 -30
  148. data/spec/fixtures/proxmox/compute/servers.yml +5015 -10683
  149. data/spec/fixtures/proxmox/compute/snapshots.yml +479 -1719
  150. data/spec/fixtures/proxmox/compute/storages.yml +32 -40
  151. data/spec/fixtures/proxmox/compute/tasks.yml +118 -338
  152. data/spec/fixtures/proxmox/identity/auth.yml +9 -11
  153. data/spec/fixtures/proxmox/identity/auth_access_ticket.yml +77 -0
  154. data/spec/fixtures/proxmox/identity/auth_user_token.yml +77 -0
  155. data/spec/fixtures/proxmox/identity/common_auth.yml +40 -0
  156. data/spec/fixtures/proxmox/identity/domains.yml +146 -178
  157. data/spec/fixtures/proxmox/identity/groups.yml +72 -90
  158. data/spec/fixtures/proxmox/identity/permissions.yml +301 -193
  159. data/spec/fixtures/proxmox/identity/pools.yml +422 -159
  160. data/spec/fixtures/proxmox/identity/read_version.yml +7 -9
  161. data/spec/fixtures/proxmox/identity/roles.yml +74 -92
  162. data/spec/fixtures/proxmox/identity/tokens.yml +494 -0
  163. data/spec/fixtures/proxmox/identity/users.yml +149 -187
  164. data/spec/fixtures/proxmox/network/common_auth.yml +40 -0
  165. data/spec/fixtures/proxmox/network/networks.yml +99 -96
  166. data/spec/helpers/cpu_helper_spec.rb +28 -21
  167. data/spec/helpers/disk_helper_spec.rb +231 -175
  168. data/spec/helpers/nic_helper_spec.rb +113 -114
  169. data/spec/identity_spec.rb +116 -28
  170. data/spec/network_spec.rb +3 -3
  171. data/spec/proxmox_vcr.rb +24 -22
  172. data/spec/spec_helper.rb +4 -3
  173. metadata +160 -145
  174. data/.gitlab-ci.yml +0 -50
  175. data/.travis.yml +0 -20
  176. data/lib/fog/compute/proxmox/requests/list_servers.rb +0 -42
  177. data/spec/fixtures/proxmox/compute/identity_ticket.yml +0 -40
  178. data/spec/fixtures/proxmox/identity/identity_ticket.yml +0 -40
  179. data/spec/fixtures/proxmox/identity/renew.yml +0 -40
  180. data/spec/fixtures/proxmox/network/identity_ticket.yml +0 -40
@@ -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: US-ASCII
8
+ string: username=root%40pam&password=proxmox01
9
+ headers:
10
+ User-Agent:
11
+ - fog-core/2.2.3
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
+ - Wed, 25 Nov 2020 13:43:47 GMT
25
+ Pragma:
26
+ - no-cache
27
+ Server:
28
+ - pve-api-daemon/3.0
29
+ Content-Length:
30
+ - '1167'
31
+ Content-Type:
32
+ - application/json;charset=UTF-8
33
+ Expires:
34
+ - Wed, 25 Nov 2020 13:43:47 GMT
35
+ body:
36
+ encoding: ASCII-8BIT
37
+ string: '{"data":{"CSRFPreventionToken":"5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc","ticket":"PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==","cap":{"nodes":{"Sys.Console":1,"Sys.Audit":1,"Sys.PowerMgmt":1,"Permissions.Modify":1,"Sys.Modify":1,"Sys.Syslog":1},"access":{"Group.Allocate":1,"Permissions.Modify":1,"User.Modify":1},"dc":{"Sys.Audit":1},"vms":{"VM.Config.HWType":1,"VM.Migrate":1,"VM.Snapshot.Rollback":1,"VM.Config.Memory":1,"VM.Config.Disk":1,"VM.PowerMgmt":1,"VM.Monitor":1,"VM.Backup":1,"VM.Audit":1,"VM.Config.CDROM":1,"VM.Config.Network":1,"Permissions.Modify":1,"VM.Clone":1,"VM.Allocate":1,"VM.Config.CPU":1,"VM.Console":1,"VM.Config.Options":1,"VM.Snapshot":1},"storage":{"Datastore.Allocate":1,"Permissions.Modify":1,"Datastore.Audit":1,"Datastore.AllocateSpace":1,"Datastore.AllocateTemplate":1}},"username":"root@pam"}}'
38
+ http_version:
39
+ recorded_at: Wed, 25 Nov 2020 13:43:48 GMT
40
+ recorded_with: VCR 4.0.0
@@ -8,11 +8,9 @@ http_interactions:
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - fog-core/2.1.2
12
- Accept:
13
- - application/json
11
+ - fog-core/2.2.3
14
12
  Cookie:
15
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
13
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
16
14
  response:
17
15
  status:
18
16
  code: 200
@@ -23,22 +21,22 @@ http_interactions:
23
21
  Connection:
24
22
  - Keep-Alive
25
23
  Date:
26
- - Fri, 22 Nov 2019 15:45:40 GMT
24
+ - Wed, 25 Nov 2020 13:43:47 GMT
27
25
  Pragma:
28
26
  - no-cache
29
27
  Server:
30
28
  - pve-api-daemon/3.0
31
29
  Content-Length:
32
- - '207'
30
+ - '209'
33
31
  Content-Type:
34
32
  - application/json;charset=UTF-8
35
33
  Expires:
36
- - Fri, 22 Nov 2019 15:45:40 GMT
34
+ - Wed, 25 Nov 2020 13:43:47 GMT
37
35
  body:
38
36
  encoding: ASCII-8BIT
39
- string: '{"data":[{"cpu":0.182306523027616,"id":"node/pve","uptime":211,"type":"node","maxmem":2087149568,"level":"","disk":1732104192,"maxcpu":4,"maxdisk":2310864896,"status":"online","mem":890413056,"node":"pve"}]}'
40
- http_version:
41
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
37
+ string: '{"data":[{"mem":816152576,"disk":1983594496,"maxcpu":2,"cpu":0.00538129953557645,"status":"online","level":"","node":"pve","uptime":818,"maxmem":2083995648,"type":"node","id":"node/pve","maxdisk":2839314432}]}'
38
+ http_version:
39
+ recorded_at: Wed, 25 Nov 2020 13:43:48 GMT
42
40
  - request:
43
41
  method: post
44
42
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
@@ -47,13 +45,11 @@ http_interactions:
47
45
  string: iface=enp0s10&type=eth
48
46
  headers:
49
47
  User-Agent:
50
- - fog-core/2.1.2
51
- Accept:
52
- - application/json
53
- Csrfpreventiontoken:
54
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
48
+ - fog-core/2.2.3
55
49
  Cookie:
56
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
50
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
51
+ Csrfpreventiontoken:
52
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
57
53
  response:
58
54
  status:
59
55
  code: 200
@@ -64,7 +60,7 @@ http_interactions:
64
60
  Connection:
65
61
  - close, Keep-Alive
66
62
  Date:
67
- - Fri, 22 Nov 2019 15:45:40 GMT
63
+ - Wed, 25 Nov 2020 13:43:47 GMT
68
64
  Pragma:
69
65
  - no-cache
70
66
  Server:
@@ -74,12 +70,12 @@ http_interactions:
74
70
  Content-Type:
75
71
  - application/json;charset=UTF-8
76
72
  Expires:
77
- - Fri, 22 Nov 2019 15:45:40 GMT
73
+ - Wed, 25 Nov 2020 13:43:47 GMT
78
74
  body:
79
75
  encoding: ASCII-8BIT
80
76
  string: '{"data":null}'
81
- http_version:
82
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
77
+ http_version:
78
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
83
79
  - request:
84
80
  method: get
85
81
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
@@ -88,11 +84,9 @@ http_interactions:
88
84
  string: ''
89
85
  headers:
90
86
  User-Agent:
91
- - fog-core/2.1.2
92
- Accept:
93
- - application/json
87
+ - fog-core/2.2.3
94
88
  Cookie:
95
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
89
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
96
90
  response:
97
91
  status:
98
92
  code: 200
@@ -103,25 +97,35 @@ http_interactions:
103
97
  Connection:
104
98
  - Keep-Alive
105
99
  Date:
106
- - Fri, 22 Nov 2019 15:45:40 GMT
100
+ - Wed, 25 Nov 2020 13:43:47 GMT
107
101
  Pragma:
108
102
  - no-cache
109
103
  Server:
110
104
  - pve-api-daemon/3.0
111
105
  Content-Length:
112
- - '938'
106
+ - '1696'
113
107
  Content-Type:
114
108
  - application/json;charset=UTF-8
115
109
  Expires:
116
- - Fri, 22 Nov 2019 15:45:40 GMT
110
+ - Wed, 25 Nov 2020 13:43:47 GMT
117
111
  body:
118
112
  encoding: ASCII-8BIT
119
- string: '{"data":[{"netmask":"255.255.255.0","bridge_ports":"enp0s3","iface":"vmbr0","bridge_fd":"0","type":"bridge","families":["inet"],"method6":"manual","gateway":"10.0.3.2","cidr":"192.168.56.101/24","autostart":1,"active":1,"bridge_stp":"off","address":"192.168.56.101","priority":6,"method":"static"},{"method6":"manual","families":["inet"],"active":1,"exists":1,"method":"manual","priority":3,"type":"eth","iface":"enp0s3"},{"families":["inet"],"method6":"manual","priority":5,"method":"manual","iface":"enp0s10","type":"eth"},{"priority":4,"exists":1,"method":"manual","families":["inet"],"method6":"manual","iface":"enp0s8","type":"eth"}],"changes":"---
120
- /etc/network/interfaces\t2019-11-22 16:41:42.032000000 +0100\n+++ /etc/network/interfaces.new\t2019-11-22
121
- 16:45:40.668000000 +0100\n@@ -16,6 +16,8 @@\n \n iface enp0s8 inet manual\n
122
- \n+iface enp0s10 inet manual\n+\n auto vmbr0\n iface vmbr0 inet static\n \taddress 192.168.56.101\n"}'
123
- http_version:
124
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
113
+ string: '{"changes":"--- /etc/network/interfaces\t2020-09-24 13:49:08.604000707
114
+ +0200\n+++ /etc/network/interfaces.new\t2020-11-25 14:43:47.067974101 +0100\n@@
115
+ -1,15 +1,28 @@\n+# network interface settings; autogenerated\n+# Please do
116
+ NOT modify this file directly, unless you know what\n+# you''re doing.\n+#\n+#
117
+ If you want to manage parts of the network configuration manually,\n+# please
118
+ utilize the ''source'' or ''source-directory'' directives to do\n+# so.\n+#
119
+ PVE will preserve these directives, but will NOT read its network\n+# configuration
120
+ from sourced files, so do not attempt to move any of\n+# the PVE managed interfaces
121
+ into external files!\n+\n auto lo\n iface lo inet loopback\n \n iface enp0s3
122
+ inet manual\n \n+iface enp0s8 inet manual\n+\n+iface enp0s10 inet manual\n+\n
123
+ auto vmbr0\n iface vmbr0 inet static\n-\taddress 192.168.56.101\n-\tnetmask
124
+ 255.255.255.0\n+\taddress 192.168.56.101/24\n \tgateway 10.0.3.2\n-\tbridge_ports
125
+ enp0s3\n-\tbridge_stp off\n-\tbridge_fd 0\n+\tbridge-ports enp0s3\n+\tbridge-stp
126
+ off\n+\tbridge-fd 0\n \n-iface enp0s8 inet manual\n","data":[{"priority":5,"iface":"enp0s10","method6":"manual","method":"manual","families":["inet"],"type":"eth"},{"exists":1,"families":["inet"],"method":"manual","iface":"enp0s3","type":"eth","active":1,"method6":"manual","priority":3},{"type":"eth","exists":1,"families":["inet"],"method6":"manual","method":"manual","iface":"enp0s8","priority":4},{"type":"bridge","bridge_stp":"off","netmask":"24","bridge_fd":"0","cidr":"192.168.56.101/24","method":"static","active":1,"autostart":1,"priority":6,"method6":"manual","bridge_ports":"enp0s3","families":["inet"],"gateway":"10.0.3.2","address":"192.168.56.101","iface":"vmbr0"}]}'
127
+ http_version:
128
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
125
129
  - request:
126
130
  method: post
127
131
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
@@ -130,13 +134,11 @@ http_interactions:
130
134
  string: iface=enp0s10&type=eth
131
135
  headers:
132
136
  User-Agent:
133
- - fog-core/2.1.2
134
- Accept:
135
- - application/json
136
- Csrfpreventiontoken:
137
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
137
+ - fog-core/2.2.3
138
138
  Cookie:
139
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
139
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
140
+ Csrfpreventiontoken:
141
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
140
142
  response:
141
143
  status:
142
144
  code: 400
@@ -147,7 +149,7 @@ http_interactions:
147
149
  Connection:
148
150
  - close
149
151
  Date:
150
- - Fri, 22 Nov 2019 15:45:40 GMT
152
+ - Wed, 25 Nov 2020 13:43:47 GMT
151
153
  Pragma:
152
154
  - no-cache
153
155
  Server:
@@ -157,12 +159,12 @@ http_interactions:
157
159
  Content-Type:
158
160
  - application/json;charset=UTF-8
159
161
  Expires:
160
- - Fri, 22 Nov 2019 15:45:40 GMT
162
+ - Wed, 25 Nov 2020 13:43:47 GMT
161
163
  body:
162
164
  encoding: ASCII-8BIT
163
165
  string: '{"data":null,"errors":{"iface":"interface already exists"}}'
164
- http_version:
165
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
166
+ http_version:
167
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
166
168
  - request:
167
169
  method: get
168
170
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network
@@ -171,11 +173,9 @@ http_interactions:
171
173
  string: ''
172
174
  headers:
173
175
  User-Agent:
174
- - fog-core/2.1.2
175
- Accept:
176
- - application/json
176
+ - fog-core/2.2.3
177
177
  Cookie:
178
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
178
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
179
179
  response:
180
180
  status:
181
181
  code: 200
@@ -186,25 +186,36 @@ http_interactions:
186
186
  Connection:
187
187
  - Keep-Alive
188
188
  Date:
189
- - Fri, 22 Nov 2019 15:45:40 GMT
189
+ - Wed, 25 Nov 2020 13:43:47 GMT
190
190
  Pragma:
191
191
  - no-cache
192
192
  Server:
193
193
  - pve-api-daemon/3.0
194
194
  Content-Length:
195
- - '938'
195
+ - '1696'
196
196
  Content-Type:
197
197
  - application/json;charset=UTF-8
198
198
  Expires:
199
- - Fri, 22 Nov 2019 15:45:40 GMT
199
+ - Wed, 25 Nov 2020 13:43:47 GMT
200
200
  body:
201
201
  encoding: ASCII-8BIT
202
- string: '{"data":[{"netmask":"255.255.255.0","bridge_ports":"enp0s3","bridge_fd":"0","iface":"vmbr0","type":"bridge","families":["inet"],"method6":"manual","gateway":"10.0.3.2","cidr":"192.168.56.101/24","autostart":1,"active":1,"bridge_stp":"off","address":"192.168.56.101","priority":6,"method":"static"},{"iface":"enp0s10","type":"eth","method6":"manual","families":["inet"],"method":"manual","priority":5},{"type":"eth","iface":"enp0s8","method":"manual","exists":1,"priority":4,"method6":"manual","families":["inet"]},{"type":"eth","iface":"enp0s3","priority":3,"method":"manual","exists":1,"active":1,"families":["inet"],"method6":"manual"}],"changes":"---
203
- /etc/network/interfaces\t2019-11-22 16:41:42.032000000 +0100\n+++ /etc/network/interfaces.new\t2019-11-22
204
- 16:45:40.668000000 +0100\n@@ -16,6 +16,8 @@\n \n iface enp0s8 inet manual\n
205
- \n+iface enp0s10 inet manual\n+\n auto vmbr0\n iface vmbr0 inet static\n \taddress 192.168.56.101\n"}'
206
- http_version:
207
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
202
+ string: '{"data":[{"families":["inet"],"bridge_fd":"0","netmask":"24","bridge_stp":"off","gateway":"10.0.3.2","address":"192.168.56.101","cidr":"192.168.56.101/24","method":"static","iface":"vmbr0","active":1,"type":"bridge","autostart":1,"priority":6,"method6":"manual","bridge_ports":"enp0s3"},{"method":"manual","iface":"enp0s8","families":["inet"],"exists":1,"priority":4,"method6":"manual","type":"eth"},{"priority":3,"iface":"enp0s3","method":"manual","method6":"manual","families":["inet"],"active":1,"exists":1,"type":"eth"},{"type":"eth","families":["inet"],"method6":"manual","method":"manual","iface":"enp0s10","priority":5}],"changes":"---
203
+ /etc/network/interfaces\t2020-09-24 13:49:08.604000707 +0200\n+++ /etc/network/interfaces.new\t2020-11-25
204
+ 14:43:47.067974101 +0100\n@@ -1,15 +1,28 @@\n+# network interface settings;
205
+ autogenerated\n+# Please do NOT modify this file directly, unless you know
206
+ what\n+# you''re doing.\n+#\n+# If you want to manage parts of the network
207
+ configuration manually,\n+# please utilize the ''source'' or ''source-directory''
208
+ directives to do\n+# so.\n+# PVE will preserve these directives, but will
209
+ NOT read its network\n+# configuration from sourced files, so do not attempt
210
+ to move any of\n+# the PVE managed interfaces into external files!\n+\n auto
211
+ lo\n iface lo inet loopback\n \n iface enp0s3 inet manual\n \n+iface enp0s8
212
+ inet manual\n+\n+iface enp0s10 inet manual\n+\n auto vmbr0\n iface vmbr0 inet
213
+ static\n-\taddress 192.168.56.101\n-\tnetmask 255.255.255.0\n+\taddress 192.168.56.101/24\n
214
+ \tgateway 10.0.3.2\n-\tbridge_ports enp0s3\n-\tbridge_stp off\n-\tbridge_fd
215
+ 0\n+\tbridge-ports enp0s3\n+\tbridge-stp off\n+\tbridge-fd 0\n \n-iface enp0s8
216
+ inet manual\n"}'
217
+ http_version:
218
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
208
219
  - request:
209
220
  method: put
210
221
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network/enp0s10
@@ -213,13 +224,11 @@ http_interactions:
213
224
  string: comments=test&type=eth
214
225
  headers:
215
226
  User-Agent:
216
- - fog-core/2.1.2
217
- Accept:
218
- - application/json
219
- Csrfpreventiontoken:
220
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
227
+ - fog-core/2.2.3
221
228
  Cookie:
222
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
229
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
230
+ Csrfpreventiontoken:
231
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
223
232
  response:
224
233
  status:
225
234
  code: 200
@@ -230,7 +239,7 @@ http_interactions:
230
239
  Connection:
231
240
  - Keep-Alive, Keep-Alive
232
241
  Date:
233
- - Fri, 22 Nov 2019 15:45:40 GMT
242
+ - Wed, 25 Nov 2020 13:43:47 GMT
234
243
  Pragma:
235
244
  - no-cache
236
245
  Server:
@@ -240,12 +249,12 @@ http_interactions:
240
249
  Content-Type:
241
250
  - application/json;charset=UTF-8
242
251
  Expires:
243
- - Fri, 22 Nov 2019 15:45:40 GMT
252
+ - Wed, 25 Nov 2020 13:43:47 GMT
244
253
  body:
245
254
  encoding: ASCII-8BIT
246
255
  string: '{"data":null}'
247
- http_version:
248
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
256
+ http_version:
257
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
249
258
  - request:
250
259
  method: post
251
260
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/status
@@ -254,13 +263,11 @@ http_interactions:
254
263
  string: command=reboot
255
264
  headers:
256
265
  User-Agent:
257
- - fog-core/2.1.2
258
- Accept:
259
- - application/json
260
- Csrfpreventiontoken:
261
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
266
+ - fog-core/2.2.3
262
267
  Cookie:
263
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
268
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
269
+ Csrfpreventiontoken:
270
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
264
271
  response:
265
272
  status:
266
273
  code: 200
@@ -271,7 +278,7 @@ http_interactions:
271
278
  Connection:
272
279
  - close, Keep-Alive
273
280
  Date:
274
- - Fri, 22 Nov 2019 15:45:40 GMT
281
+ - Wed, 25 Nov 2020 13:43:47 GMT
275
282
  Pragma:
276
283
  - no-cache
277
284
  Server:
@@ -281,12 +288,12 @@ http_interactions:
281
288
  Content-Type:
282
289
  - application/json;charset=UTF-8
283
290
  Expires:
284
- - Fri, 22 Nov 2019 15:45:40 GMT
291
+ - Wed, 25 Nov 2020 13:43:47 GMT
285
292
  body:
286
293
  encoding: ASCII-8BIT
287
294
  string: '{"data":null}'
288
- http_version:
289
- recorded_at: Fri, 22 Nov 2019 15:45:42 GMT
295
+ http_version:
296
+ recorded_at: Wed, 25 Nov 2020 13:43:49 GMT
290
297
  - request:
291
298
  method: delete
292
299
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/network/enp0s10
@@ -295,13 +302,11 @@ http_interactions:
295
302
  string: ''
296
303
  headers:
297
304
  User-Agent:
298
- - fog-core/2.1.2
299
- Accept:
300
- - application/json
301
- Csrfpreventiontoken:
302
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
305
+ - fog-core/2.2.3
303
306
  Cookie:
304
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
307
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
308
+ Csrfpreventiontoken:
309
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
305
310
  response:
306
311
  status:
307
312
  code: 200
@@ -312,7 +317,7 @@ http_interactions:
312
317
  Connection:
313
318
  - Keep-Alive, Keep-Alive
314
319
  Date:
315
- - Fri, 22 Nov 2019 15:46:41 GMT
320
+ - Wed, 25 Nov 2020 13:44:48 GMT
316
321
  Pragma:
317
322
  - no-cache
318
323
  Server:
@@ -322,12 +327,12 @@ http_interactions:
322
327
  Content-Type:
323
328
  - application/json;charset=UTF-8
324
329
  Expires:
325
- - Fri, 22 Nov 2019 15:46:41 GMT
330
+ - Wed, 25 Nov 2020 13:44:48 GMT
326
331
  body:
327
332
  encoding: ASCII-8BIT
328
333
  string: '{"data":null}'
329
- http_version:
330
- recorded_at: Fri, 22 Nov 2019 15:46:43 GMT
334
+ http_version:
335
+ recorded_at: Wed, 25 Nov 2020 13:44:49 GMT
331
336
  - request:
332
337
  method: post
333
338
  uri: https://192.168.56.101:8006/api2/json/nodes/pve/status
@@ -336,13 +341,11 @@ http_interactions:
336
341
  string: command=reboot
337
342
  headers:
338
343
  User-Agent:
339
- - fog-core/2.1.2
340
- Accept:
341
- - application/json
342
- Csrfpreventiontoken:
343
- - 5DD802A4:AMi8Xfhz+bFVs9s+yLXQA2wjOfxDZRfXaQz+eGYxzwU
344
+ - fog-core/2.2.3
344
345
  Cookie:
345
- - PVEAuthCookie=PVE:root@pam:5DD802A4::o4yb4/NL7JEJueeGMREt4rkA/o7w+TkICAL3IqWM0lRC0mNWwDvolr0DL+ibedzVDgDCONn3ypTcBTMxnllJX52QvuTfX8Cy0BR2mfqGxWg6acsl0YvcRFIhlYaWaSHBN5yfe23wvdnoXtHYgEUWsIda00QYPzm2dWYfnUam/vuh+va9ypvZ3NATPbF0EBEHHa+k5oBdL5Ete77+YoQUhKC7rDtZaJ0EPSkzWin+/M8bnSEDf7bETe2pS9fcg4jy7BLKzT0RHYSgMGJQ0dbpWxSzqEBo6DwnUWGqRsQ8h4AsDyR+ffxIc9HiqRFvJ5ShndMrtCjg/w08A8AM/UHABQ==
346
+ - PVEAuthCookie=PVE:root@pam:5FBE5F93::J4UGO/cW6NJLxU0fQy8AnxuJhKDkIa+ZLBLUIxlXYO3Nb1ocZ15jqoPl0EEOQpI2sohhmtGYo9bptqaPPH48rmaNKzIUtHjDAg/c425GgbhkSo2jYVeCWcTTEC+nDskOiMkjdE4HIiFLpk71IMEP93hGWJ4+mnUxOLfHsRDodWdJXoGoBlxiUBu0zirFLXR60i6WCK2oX82nPYXRJbsl4VRLYcOkYXnnfaUxYgOL0veZhKRcAWlVRKQ7/lkdG1iu3XlOvEeynqcT2xHs+Z158zALA+ZzAEQ6GYdvFFKr/xR57Kd8hfOhRumKx5EaDfdeYkZP/8ZVH48tEbTXrOEQHg==
347
+ Csrfpreventiontoken:
348
+ - 5FBE5F93:tNCo7nHYIIdA46RVo8yPQg9ZcbtzibFl3lhAwDPkSqc
346
349
  response:
347
350
  status:
348
351
  code: 200
@@ -353,7 +356,7 @@ http_interactions:
353
356
  Connection:
354
357
  - close, Keep-Alive
355
358
  Date:
356
- - Fri, 22 Nov 2019 15:46:41 GMT
359
+ - Wed, 25 Nov 2020 13:44:48 GMT
357
360
  Pragma:
358
361
  - no-cache
359
362
  Server:
@@ -363,10 +366,10 @@ http_interactions:
363
366
  Content-Type:
364
367
  - application/json;charset=UTF-8
365
368
  Expires:
366
- - Fri, 22 Nov 2019 15:46:41 GMT
369
+ - Wed, 25 Nov 2020 13:44:48 GMT
367
370
  body:
368
371
  encoding: ASCII-8BIT
369
372
  string: '{"data":null}'
370
- http_version:
371
- recorded_at: Fri, 22 Nov 2019 15:46:43 GMT
373
+ http_version:
374
+ recorded_at: Wed, 25 Nov 2020 13:44:49 GMT
372
375
  recorded_with: VCR 4.0.0
@@ -23,10 +23,10 @@ require 'fog/proxmox/helpers/cpu_helper'
23
23
  describe Fog::Proxmox::CpuHelper do
24
24
 
25
25
  let(:cpu) do
26
- 'cputype=kvm64,flags=+spec-ctrl;+pcid'
26
+ 'cputype=Skylake-Client,flags=+spec-ctrl;+pcid;+ssbd;-aes'
27
27
  end
28
28
  let(:cpu_nocputype) do
29
- 'kvm64,flags=+spec-ctrl;+pcid'
29
+ 'kvm64,flags=+spec-ctrl;+pcid;+ssbd'
30
30
  end
31
31
  let(:cpu_nospectre) do
32
32
  'cputype=kvm64,flags=+pcid'
@@ -34,37 +34,44 @@ require 'fog/proxmox/helpers/cpu_helper'
34
34
  let(:cpu_nopcid) do
35
35
  'cputype=kvm64,flags=+spec-ctrl'
36
36
  end
37
+ let(:cpu_nossbd) do
38
+ 'cputype=kvm64,flags=+pcid'
39
+ end
37
40
 
38
- describe '#extract_type' do
41
+ describe '#extract_cputype' do
39
42
  it "returns string" do
40
- result = Fog::Proxmox::CpuHelper.extract_type(cpu)
41
- assert_equal('kvm64', result)
43
+ result = Fog::Proxmox::CpuHelper.extract_cputype(cpu)
44
+ assert_equal('Skylake-Client', result)
42
45
  end
43
46
  it "returns string" do
44
- result = Fog::Proxmox::CpuHelper.extract_type(cpu_nocputype)
47
+ result = Fog::Proxmox::CpuHelper.extract_cputype(cpu_nocputype)
45
48
  assert_equal('kvm64', result)
46
49
  end
47
50
  end
48
51
 
49
- describe '#has_spectre?' do
50
- it "returns true" do
51
- result = Fog::Proxmox::CpuHelper.has_spectre?(cpu)
52
- assert result
52
+ describe '#flag_value' do
53
+ it "returns +1" do
54
+ result = Fog::Proxmox::CpuHelper.flag_value(cpu, 'spec-ctrl')
55
+ assert_equal('+1', result)
53
56
  end
54
- it "returns false" do
55
- result = Fog::Proxmox::CpuHelper.has_spectre?(cpu_nospectre)
56
- assert !result
57
+ it "returns -1" do
58
+ result = Fog::Proxmox::CpuHelper.flag_value(cpu, 'aes')
59
+ assert_equal('-1', result)
60
+ end
61
+ it "returns 0" do
62
+ result = Fog::Proxmox::CpuHelper.flag_value(cpu, 'amd-ssbd')
63
+ assert_equal('0', result)
57
64
  end
58
65
  end
59
-
60
- describe '#has_pcid?' do
61
- it "returns true" do
62
- result = Fog::Proxmox::CpuHelper.has_pcid?(cpu)
63
- assert result
66
+
67
+ describe '#flatten ' do
68
+ it "returns cputype=kvm64,flags=+pcid;+ibpb;-hv-tlbflush" do
69
+ result = Fog::Proxmox::CpuHelper.flatten("cpu_type"=>"kvm64", "spectre"=>"0", "pcid"=>"+1", "ssbd"=>"0", "ibpb"=>"+1", "virt_ssbd"=>"0", "amd_ssbd"=>"0", "amd_no_ssb"=>"0", "md_clear"=>"0", "pdpe1gb"=>"0", "hv_tlbflush"=>"-1", "aes"=>"0", "hv_evmcs"=>"0")
70
+ assert_equal('cputype=kvm64,flags=+pcid;+ibpb;-hv-tlbflush', result)
64
71
  end
65
- it "returns false" do
66
- result = Fog::Proxmox::CpuHelper.has_pcid?(cpu_nopcid)
67
- assert !result
72
+ it "returns cputype=Skylake-Client,flags=+spec-ctrl;+pcid;+amd-no-ssbd'" do
73
+ result = Fog::Proxmox::CpuHelper.flatten('cpu_type' => 'Skylake-Client', 'pcid' => '+1', 'spectre' => '+1', 'amd_no_ssb' => '-1')
74
+ assert_equal('cputype=Skylake-Client,flags=+spec-ctrl;+pcid;-amd-no-ssb', result)
68
75
  end
69
76
  end
70
77
  end