fog-proxmox 0.13.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +34 -49
  3. data/.github/workflows/release.yml +38 -0
  4. data/.rubocop.yml +11 -10
  5. data/.rubocop_todo.yml +255 -0
  6. data/CHANGELOG.md +8 -0
  7. data/README.md +35 -4
  8. data/Rakefile +8 -35
  9. data/bin/console +2 -4
  10. data/bin/setup +2 -4
  11. data/docs/compute.md +23 -7
  12. data/docs/identity.md +31 -6
  13. data/examples/compute.rb +11 -11
  14. data/examples/identity.rb +28 -15
  15. data/fog-proxmox.gemspec +8 -6
  16. data/lib/fog/proxmox/attributes.rb +3 -2
  17. data/lib/fog/proxmox/auth/token/access_ticket.rb +96 -0
  18. data/lib/fog/proxmox/auth/token/user_token.rb +107 -0
  19. data/lib/fog/proxmox/auth/token.rb +94 -0
  20. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disk.rb +21 -3
  21. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disks.rb +6 -2
  22. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interface.rb +5 -1
  23. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interfaces.rb +2 -2
  24. data/lib/fog/{compute/proxmox → proxmox/compute}/models/node.rb +3 -5
  25. data/lib/fog/{compute/proxmox → proxmox/compute}/models/nodes.rb +2 -2
  26. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server.rb +29 -18
  27. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server_config.rb +17 -4
  28. data/lib/fog/{compute/proxmox → proxmox/compute}/models/servers.rb +6 -6
  29. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshot.rb +0 -0
  30. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshots.rb +2 -2
  31. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storage.rb +3 -2
  32. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storages.rb +3 -3
  33. data/lib/fog/{compute/proxmox → proxmox/compute}/models/task.rb +0 -0
  34. data/lib/fog/{compute/proxmox → proxmox/compute}/models/tasks.rb +2 -1
  35. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volume.rb +8 -1
  36. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volumes.rb +3 -3
  37. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/action_server.rb +0 -0
  38. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/clone_server.rb +0 -0
  39. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_backup.rb +0 -0
  40. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_server.rb +0 -0
  41. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_snapshot.rb +0 -0
  42. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_spice.rb +0 -0
  43. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_term.rb +0 -0
  44. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_vnc.rb +0 -0
  45. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_server.rb +0 -0
  46. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_snapshot.rb +0 -0
  47. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_volume.rb +0 -0
  48. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_node_statistics.rb +0 -0
  49. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_config.rb +14 -14
  50. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_status.rb +17 -17
  51. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_snapshot_config.rb +0 -0
  52. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_task.rb +0 -0
  53. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_vnc.rb +0 -0
  54. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_volume.rb +0 -0
  55. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_nodes.rb +0 -0
  56. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_servers.rb +0 -0
  57. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_snapshots.rb +0 -0
  58. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_storages.rb +0 -0
  59. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_tasks.rb +0 -0
  60. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_volumes.rb +0 -0
  61. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/log_task.rb +1 -1
  62. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/migrate_server.rb +0 -0
  63. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_disk.rb +0 -0
  64. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_volume.rb +0 -0
  65. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/next_vmid.rb +0 -0
  66. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_container.rb +0 -0
  67. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_server.rb +0 -0
  68. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/rollback_snapshot.rb +0 -0
  69. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/status_task.rb +0 -0
  70. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/stop_task.rb +0 -0
  71. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/template_server.rb +0 -0
  72. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_server.rb +0 -0
  73. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_snapshot.rb +0 -0
  74. data/lib/fog/{compute/proxmox.rb → proxmox/compute.rb} +31 -16
  75. data/lib/fog/proxmox/core.rb +76 -64
  76. data/lib/fog/proxmox/errors.rb +2 -1
  77. data/lib/fog/proxmox/hash.rb +2 -4
  78. data/lib/fog/proxmox/helpers/controller_helper.rb +3 -4
  79. data/lib/fog/proxmox/helpers/cpu_helper.rb +55 -9
  80. data/lib/fog/proxmox/helpers/disk_helper.rb +51 -25
  81. data/lib/fog/proxmox/helpers/ip_helper.rb +21 -20
  82. data/lib/fog/proxmox/helpers/nic_helper.rb +37 -27
  83. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain.rb +7 -3
  84. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain_type.rb +0 -1
  85. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domains.rb +2 -3
  86. data/lib/fog/{identity/proxmox → proxmox/identity}/models/group.rb +6 -2
  87. data/lib/fog/{identity/proxmox → proxmox/identity}/models/groups.rb +2 -2
  88. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permission.rb +5 -4
  89. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permissions.rb +4 -2
  90. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pool.rb +4 -4
  91. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pools.rb +5 -5
  92. data/lib/fog/{identity/proxmox → proxmox/identity}/models/principal.rb +0 -0
  93. data/lib/fog/{identity/proxmox → proxmox/identity}/models/role.rb +1 -1
  94. data/lib/fog/{identity/proxmox → proxmox/identity}/models/roles.rb +2 -2
  95. data/lib/fog/proxmox/identity/models/token.rb +72 -0
  96. data/lib/fog/proxmox/identity/models/token_info.rb +41 -0
  97. data/lib/fog/proxmox/identity/models/tokens.rb +54 -0
  98. data/lib/fog/{identity/proxmox → proxmox/identity}/models/user.rb +24 -2
  99. data/lib/fog/{identity/proxmox → proxmox/identity}/models/users.rb +2 -2
  100. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/change_password.rb +0 -0
  101. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/check_permissions.rb +0 -0
  102. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_domain.rb +0 -0
  103. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_group.rb +0 -0
  104. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_pool.rb +0 -0
  105. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_role.rb +0 -0
  106. data/lib/fog/proxmox/identity/requests/create_token.rb +40 -0
  107. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_user.rb +0 -0
  108. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_domain.rb +0 -0
  109. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_group.rb +0 -0
  110. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_pool.rb +0 -0
  111. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_role.rb +0 -0
  112. data/lib/fog/proxmox/identity/requests/delete_token.rb +40 -0
  113. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_user.rb +0 -0
  114. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_domain.rb +0 -0
  115. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_group.rb +0 -0
  116. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_pool.rb +0 -0
  117. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_role.rb +0 -0
  118. data/lib/fog/proxmox/identity/requests/get_token_info.rb +41 -0
  119. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_user.rb +1 -0
  120. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_domains.rb +0 -0
  121. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_groups.rb +0 -0
  122. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_permissions.rb +0 -0
  123. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_pools.rb +0 -0
  124. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_roles.rb +0 -0
  125. data/lib/fog/proxmox/identity/requests/list_tokens.rb +41 -0
  126. data/lib/fog/proxmox/identity/requests/list_user_permissions.rb +44 -0
  127. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_users.rb +0 -0
  128. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/read_version.rb +0 -0
  129. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_domain.rb +0 -0
  130. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_group.rb +0 -0
  131. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_permissions.rb +0 -0
  132. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_pool.rb +0 -0
  133. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_role.rb +0 -0
  134. data/lib/fog/proxmox/identity/requests/update_token.rb +41 -0
  135. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_user.rb +0 -0
  136. data/lib/fog/{identity/proxmox.rb → proxmox/identity.rb} +31 -17
  137. data/lib/fog/{network/proxmox → proxmox/network}/models/network.rb +0 -0
  138. data/lib/fog/{network/proxmox → proxmox/network}/models/networks.rb +2 -2
  139. data/lib/fog/{network/proxmox → proxmox/network}/models/node.rb +2 -1
  140. data/lib/fog/{network/proxmox → proxmox/network}/models/nodes.rb +2 -2
  141. data/lib/fog/{network/proxmox → proxmox/network}/requests/create_network.rb +0 -0
  142. data/lib/fog/{network/proxmox → proxmox/network}/requests/delete_network.rb +0 -0
  143. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_network.rb +0 -0
  144. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_node.rb +0 -0
  145. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_networks.rb +0 -0
  146. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_nodes.rb +0 -0
  147. data/lib/fog/{network/proxmox → proxmox/network}/requests/power_node.rb +0 -0
  148. data/lib/fog/{network/proxmox → proxmox/network}/requests/update_network.rb +0 -0
  149. data/lib/fog/{network/proxmox.rb → proxmox/network.rb} +21 -14
  150. data/lib/fog/{storage/proxmox.rb → proxmox/storage.rb} +1 -1
  151. data/lib/fog/proxmox/string.rb +4 -3
  152. data/lib/fog/proxmox/version.rb +1 -1
  153. data/lib/fog/proxmox.rb +14 -76
  154. data/spec/compute_spec.rb +4 -4
  155. data/spec/fixtures/proxmox/compute/common_auth.yml +40 -0
  156. data/spec/fixtures/proxmox/compute/containers.yml +1752 -7568
  157. data/spec/fixtures/proxmox/compute/nodes.yml +24 -30
  158. data/spec/fixtures/proxmox/compute/servers.yml +5015 -10683
  159. data/spec/fixtures/proxmox/compute/snapshots.yml +479 -1719
  160. data/spec/fixtures/proxmox/compute/storages.yml +32 -40
  161. data/spec/fixtures/proxmox/compute/tasks.yml +118 -338
  162. data/spec/fixtures/proxmox/identity/auth.yml +10 -12
  163. data/spec/fixtures/proxmox/identity/auth_access_ticket.yml +77 -0
  164. data/spec/fixtures/proxmox/identity/auth_user_token.yml +77 -0
  165. data/spec/fixtures/proxmox/identity/common_auth.yml +40 -0
  166. data/spec/fixtures/proxmox/identity/domains.yml +145 -181
  167. data/spec/fixtures/proxmox/identity/groups.yml +72 -90
  168. data/spec/fixtures/proxmox/identity/permissions.yml +297 -189
  169. data/spec/fixtures/proxmox/identity/pools.yml +176 -421
  170. data/spec/fixtures/proxmox/identity/read_version.yml +7 -9
  171. data/spec/fixtures/proxmox/identity/roles.yml +69 -87
  172. data/spec/fixtures/proxmox/identity/tokens.yml +494 -0
  173. data/spec/fixtures/proxmox/identity/users.yml +149 -187
  174. data/spec/fixtures/proxmox/network/common_auth.yml +40 -0
  175. data/spec/fixtures/proxmox/network/networks.yml +99 -96
  176. data/spec/hash_spec.rb +2 -1
  177. data/spec/helpers/controller_helper_spec.rb +135 -123
  178. data/spec/helpers/cpu_helper_spec.rb +57 -45
  179. data/spec/helpers/disk_helper_spec.rb +281 -187
  180. data/spec/helpers/ip_helper_spec.rb +155 -138
  181. data/spec/helpers/nic_helper_spec.rb +122 -114
  182. data/spec/identity_spec.rb +123 -29
  183. data/spec/network_spec.rb +3 -3
  184. data/spec/proxmox_vcr.rb +24 -22
  185. data/spec/spec_helper.rb +4 -3
  186. data/tasks/audit.rake +25 -0
  187. data/tasks/lint.rake +22 -0
  188. data/tasks/test.rake +65 -0
  189. metadata +205 -174
  190. data/.codeclimate.yml +0 -14
  191. data/spec/fixtures/proxmox/compute/identity_ticket.yml +0 -40
  192. data/spec/fixtures/proxmox/identity/identity_ticket.yml +0 -40
  193. data/spec/fixtures/proxmox/identity/renew.yml +0 -40
  194. data/spec/fixtures/proxmox/network/identity_ticket.yml +0 -40
@@ -20,141 +20,158 @@
20
20
  require 'spec_helper'
21
21
  require 'fog/proxmox/helpers/ip_helper'
22
22
 
23
- describe Fog::Proxmox::IpHelper do
24
-
25
- let(:ip) do
26
- { ip: '192.168.56.100/31' }
27
- end
28
-
29
- let(:invalid_ip) do
30
- { ip: '192.168.56.100/sfsdfsdfdsf' }
31
- end
32
-
33
- let(:ip6) do
34
- { ip: '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31' }
35
- end
36
-
37
- let(:invalid_ip6) do
38
- { ip: '2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf' }
39
- end
40
-
41
- describe '#cidr?' do
42
- it "192.168.56.100/31 returns true" do
43
- assert_equal true, Fog::Proxmox::IpHelper.cidr?(ip[:ip])
44
- end
45
- it "192.168.56.100/sfsdfsdfdsf returns false" do
46
- assert_equal false, Fog::Proxmox::IpHelper.cidr?(invalid_ip[:ip])
47
- end
48
- end
49
-
50
- describe '#cidr6?' do
51
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns true" do
52
- assert_equal true, Fog::Proxmox::IpHelper.cidr6?(ip6[:ip])
53
- end
54
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns false" do
55
- assert_equal false, Fog::Proxmox::IpHelper.cidr6?(invalid_ip6[:ip])
56
- end
57
- end
58
-
59
- describe '#prefix' do
60
- it "192.168.56.100/31 returns 31" do
61
- assert_equal '31', Fog::Proxmox::IpHelper.prefix(ip[:ip])
62
- end
63
- it "192.168.56.100/sfsdfsdfdsf returns nil" do
64
- assert_nil Fog::Proxmox::IpHelper.prefix(invalid_ip[:ip])
65
- end
66
- end
67
-
68
- describe '#prefix6' do
69
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns 31" do
70
- assert_equal '31', Fog::Proxmox::IpHelper.prefix6(ip6[:ip])
71
- end
72
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns nil" do
73
- assert_nil Fog::Proxmox::IpHelper.prefix6(invalid_ip6[:ip])
74
- end
75
- end
76
-
77
- describe '#ip' do
78
- it "192.168.56.100/31 returns 192.168.56.100" do
79
- assert_equal '192.168.56.100', Fog::Proxmox::IpHelper.ip(ip[:ip])
80
- end
81
- it "192.168.56.100/sfsdfsdfdsf returns nil" do
82
- assert_nil Fog::Proxmox::IpHelper.ip(invalid_ip[:ip])
83
- end
84
- end
85
-
86
- describe '#ip6' do
87
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876" do
88
- assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876', Fog::Proxmox::IpHelper.ip6(ip6[:ip])
89
- end
90
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns nil" do
91
- assert_nil Fog::Proxmox::IpHelper.ip6(invalid_ip6[:ip])
92
- end
93
- end
94
-
95
- describe '#to_cidr' do
96
- it "192.168.56.100 returns 192.168.56.100" do
97
- assert_equal '192.168.56.100', Fog::Proxmox::IpHelper.to_cidr('192.168.56.100')
98
- end
99
- it "192.168.56.100,31 returns 192.168.56.100/31" do
100
- assert_equal '192.168.56.100/31', Fog::Proxmox::IpHelper.to_cidr('192.168.56.100','31')
101
- end
102
- it "192,31 returns nil" do
103
- assert_nil Fog::Proxmox::IpHelper.to_cidr('192','31')
104
- end
105
- it "192.168.56.100,56 returns nil" do
106
- assert_nil Fog::Proxmox::IpHelper.to_cidr('192.168.56.100','56')
107
- end
108
- end
109
-
110
- describe '#to_cidr6' do
111
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876" do
112
- assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876', Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876')
113
- end
114
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876,31 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876/31" do
115
- assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31', Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876','31')
116
- end
117
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876,158 returns nil" do
118
- assert_nil Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876','158')
119
- end
120
- it "192,31 returns nil" do
121
- assert_nil Fog::Proxmox::IpHelper.to_cidr6('192','31')
122
- end
123
- end
124
-
125
- describe '#ip?' do
126
- it "192.168.56.100 returns true" do
127
- assert_equal true, Fog::Proxmox::IpHelper.ip?('192.168.56.100')
128
- end
129
- it "541536 returns false" do
130
- assert_equal false, Fog::Proxmox::IpHelper.ip?('541536')
131
- end
132
- end
133
-
134
- describe '#ip6?' do
135
- it "2001:0000:1234:0000:0000:C1C0:ABCD:0876 returns true" do
136
- assert_equal true, Fog::Proxmox::IpHelper.ip6?('2001:0000:1234:0000:0000:C1C0:ABCD:0876')
137
- end
138
- it "541536 returns false" do
139
- assert_equal false, Fog::Proxmox::IpHelper.ip6?('541536')
140
- end
141
- end
142
-
143
- describe '#cidr_prefix?' do
144
- it "31 returns true" do
145
- assert_equal true, Fog::Proxmox::IpHelper.cidr_prefix?('31')
146
- end
147
- it "56 returns false" do
148
- assert_equal false, Fog::Proxmox::IpHelper.cidr_prefix?('56')
149
- end
150
- end
151
-
152
- describe '#cidr6_prefix?' do
153
- it "100 returns true" do
154
- assert_equal true, Fog::Proxmox::IpHelper.cidr6_prefix?('100')
155
- end
156
- it "158 returns false" do
157
- assert_equal false, Fog::Proxmox::IpHelper.cidr6_prefix?('158')
158
- end
159
- end
160
- end
23
+ describe Fog::Proxmox::IpHelper do
24
+ let(:ip) do
25
+ { ip: '192.168.56.100/31' }
26
+ end
27
+
28
+ let(:invalid_ip) do
29
+ { ip: '192.168.56.100/sfsdfsdfdsf' }
30
+ end
31
+
32
+ let(:ip6) do
33
+ { ip: '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31' }
34
+ end
35
+
36
+ let(:invalid_ip6) do
37
+ { ip: '2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf' }
38
+ end
39
+
40
+ describe '#cidr?' do
41
+ it '192.168.56.100/31 returns true' do
42
+ assert_equal true, Fog::Proxmox::IpHelper.cidr?(ip[:ip])
43
+ end
44
+
45
+ it '192.168.56.100/sfsdfsdfdsf returns false' do
46
+ assert_equal false, Fog::Proxmox::IpHelper.cidr?(invalid_ip[:ip])
47
+ end
48
+ end
49
+
50
+ describe '#cidr6?' do
51
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns true' do
52
+ assert_equal true, Fog::Proxmox::IpHelper.cidr6?(ip6[:ip])
53
+ end
54
+
55
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns false' do
56
+ assert_equal false, Fog::Proxmox::IpHelper.cidr6?(invalid_ip6[:ip])
57
+ end
58
+ end
59
+
60
+ describe '#prefix' do
61
+ it '192.168.56.100/31 returns 31' do
62
+ assert_equal '31', Fog::Proxmox::IpHelper.prefix(ip[:ip])
63
+ end
64
+
65
+ it '192.168.56.100/sfsdfsdfdsf returns nil' do
66
+ assert_nil Fog::Proxmox::IpHelper.prefix(invalid_ip[:ip])
67
+ end
68
+ end
69
+
70
+ describe '#prefix6' do
71
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns 31' do
72
+ assert_equal '31', Fog::Proxmox::IpHelper.prefix6(ip6[:ip])
73
+ end
74
+
75
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns nil' do
76
+ assert_nil Fog::Proxmox::IpHelper.prefix6(invalid_ip6[:ip])
77
+ end
78
+ end
79
+
80
+ describe '#ip' do
81
+ it '192.168.56.100/31 returns 192.168.56.100' do
82
+ assert_equal '192.168.56.100', Fog::Proxmox::IpHelper.ip(ip[:ip])
83
+ end
84
+
85
+ it '192.168.56.100/sfsdfsdfdsf returns nil' do
86
+ assert_nil Fog::Proxmox::IpHelper.ip(invalid_ip[:ip])
87
+ end
88
+ end
89
+
90
+ describe '#ip6' do
91
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876' do
92
+ assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876', Fog::Proxmox::IpHelper.ip6(ip6[:ip])
93
+ end
94
+
95
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876/sfsdfsdfdsf returns nil' do
96
+ assert_nil Fog::Proxmox::IpHelper.ip6(invalid_ip6[:ip])
97
+ end
98
+ end
99
+
100
+ describe '#to_cidr' do
101
+ it '192.168.56.100 returns 192.168.56.100' do
102
+ assert_equal '192.168.56.100', Fog::Proxmox::IpHelper.to_cidr('192.168.56.100')
103
+ end
104
+
105
+ it '192.168.56.100,31 returns 192.168.56.100/31' do
106
+ assert_equal '192.168.56.100/31', Fog::Proxmox::IpHelper.to_cidr('192.168.56.100', '31')
107
+ end
108
+
109
+ it '192,31 returns nil' do
110
+ assert_nil Fog::Proxmox::IpHelper.to_cidr('192', '31')
111
+ end
112
+
113
+ it '192.168.56.100,56 returns nil' do
114
+ assert_nil Fog::Proxmox::IpHelper.to_cidr('192.168.56.100', '56')
115
+ end
116
+ end
117
+
118
+ describe '#to_cidr6' do
119
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876' do
120
+ assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876',
121
+ Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876')
122
+ end
123
+
124
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876,31 returns 2001:0000:1234:0000:0000:C1C0:ABCD:0876/31' do
125
+ assert_equal '2001:0000:1234:0000:0000:C1C0:ABCD:0876/31',
126
+ Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876', '31')
127
+ end
128
+
129
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876,158 returns nil' do
130
+ assert_nil Fog::Proxmox::IpHelper.to_cidr6('2001:0000:1234:0000:0000:C1C0:ABCD:0876', '158')
131
+ end
132
+
133
+ it '192,31 returns nil' do
134
+ assert_nil Fog::Proxmox::IpHelper.to_cidr6('192', '31')
135
+ end
136
+ end
137
+
138
+ describe '#ip?' do
139
+ it '192.168.56.100 returns true' do
140
+ assert_equal true, Fog::Proxmox::IpHelper.ip?('192.168.56.100')
141
+ end
142
+
143
+ it '541536 returns false' do
144
+ assert_equal false, Fog::Proxmox::IpHelper.ip?('541536')
145
+ end
146
+ end
147
+
148
+ describe '#ip6?' do
149
+ it '2001:0000:1234:0000:0000:C1C0:ABCD:0876 returns true' do
150
+ assert_equal true, Fog::Proxmox::IpHelper.ip6?('2001:0000:1234:0000:0000:C1C0:ABCD:0876')
151
+ end
152
+
153
+ it '541536 returns false' do
154
+ assert_equal false, Fog::Proxmox::IpHelper.ip6?('541536')
155
+ end
156
+ end
157
+
158
+ describe '#cidr_prefix?' do
159
+ it '31 returns true' do
160
+ assert_equal true, Fog::Proxmox::IpHelper.cidr_prefix?('31')
161
+ end
162
+
163
+ it '56 returns false' do
164
+ assert_equal false, Fog::Proxmox::IpHelper.cidr_prefix?('56')
165
+ end
166
+ end
167
+
168
+ describe '#cidr6_prefix?' do
169
+ it '100 returns true' do
170
+ assert_equal true, Fog::Proxmox::IpHelper.cidr6_prefix?('100')
171
+ end
172
+
173
+ it '158 returns false' do
174
+ assert_equal false, Fog::Proxmox::IpHelper.cidr6_prefix?('158')
175
+ end
176
+ end
177
+ end
@@ -20,117 +20,125 @@
20
20
  require 'spec_helper'
21
21
  require 'fog/proxmox/helpers/nic_helper'
22
22
 
23
- describe Fog::Proxmox::NicHelper do
24
-
25
- let(:net_vm) do
26
- { net0: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
27
- end
28
-
29
- let(:net_vm_create) do
30
- { net0: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
31
- end
32
-
33
- let(:net_lxc) do
34
- { net0: 'eth0=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
35
- end
36
-
37
- let(:net_lxc_create) do
38
- { net0: 'name=eth0,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
39
- end
40
-
41
- let(:lxc_nic) do
42
- { id: 'net0', name: 'eth0', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1, ip: '192.168.56.100/31' }
43
- end
44
-
45
- let(:qemu_nic) do
46
- { id: 'net1', model: 'virtio', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
47
- end
48
-
49
- let(:qemu_nic_create) do
50
- { id: 'net1', model: 'virtio', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
51
- end
52
-
53
- describe '#extract_model' do
54
- it "returns model card" do
55
- model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm[:net0])
56
- assert_equal 'virtio', model
57
- end
58
- it "returns model card creation" do
59
- model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm_create[:net0])
60
- assert_equal 'virtio', model
61
- end
62
- end
63
-
64
- describe '#extract_name' do
65
- it "returns lxc name" do
66
- model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc[:net0])
67
- assert_equal 'eth0', model
68
- end
69
- it "returns lxc name creation" do
70
- model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc_create[:net0])
71
- assert_equal 'eth0', model
72
- end
73
- end
74
-
75
- describe '#extract_mac_address' do
76
- it "returns vm mac address" do
77
- mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_vm[:net0])
78
- assert_equal '66:89:C5:59:AA:96', mac_address
79
- end
80
- it "returns lxc mac address" do
81
- mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_lxc[:net0])
82
- assert_equal '66:89:C5:59:AA:96', mac_address
83
- end
84
- end
85
-
86
- describe '#nic?' do
87
- it "returns true" do
88
- assert Fog::Proxmox::NicHelper.nic?('net0')
89
- end
90
- it "returns false" do
91
- assert !Fog::Proxmox::NicHelper.nic?('net')
92
- end
93
- end
94
-
95
- describe '#collect_nics' do
96
- it "returns net0" do
97
- nets = Fog::Proxmox::NicHelper.collect_nics(net_vm.merge({'netout': 'sdfdsgfdsf'}))
98
- assert nets.has_key?(:net0)
99
- assert nets.has_value?(net_vm[:net0])
100
- assert !nets.has_key?('netout')
101
- end
102
- it "returns empty" do
103
- nets = Fog::Proxmox::NicHelper.collect_nics({'netout': 'sdfdsgfdsf'})
104
- assert nets.empty?
105
- end
106
- end
107
-
108
- describe '#flatten' do
109
- it "returns qemu nic string" do
110
- flat_qemu = { net1: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
111
- assert_equal flat_qemu ,Fog::Proxmox::NicHelper.flatten(qemu_nic)
112
- end
113
- it "returns qemu nic create string" do
114
- flat_qemu = { net1: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
115
- assert_equal flat_qemu ,Fog::Proxmox::NicHelper.flatten(qemu_nic_create)
116
- end
117
- it "returns lxc nic string" do
118
- flat_lxc = { net0: 'eth0=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
119
- assert_equal flat_lxc ,Fog::Proxmox::NicHelper.flatten(lxc_nic)
120
- end
121
- end
122
-
123
- describe '#has_ip?' do
124
- it "returns true" do
125
- ip = Fog::Proxmox::NicHelper.has_ip?(net_lxc[:net0])
126
- assert_equal true, ip
127
- end
128
- end
129
-
130
- describe '#extract_ip' do
131
- it "returns lxc ip cidr" do
132
- ip = Fog::Proxmox::NicHelper.extract_ip(net_lxc[:net0])
133
- assert_equal '192.168.56.100/31', ip
134
- end
135
- end
136
- end
23
+ describe Fog::Proxmox::NicHelper do
24
+ let(:net_vm) do
25
+ { net0: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
26
+ end
27
+
28
+ let(:net_vm_create) do
29
+ { net0: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
30
+ end
31
+
32
+ let(:net_lxc) do
33
+ { net0: 'eth0=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
34
+ end
35
+
36
+ let(:net_lxc_create) do
37
+ { net0: 'name=eth0,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
38
+ end
39
+
40
+ let(:lxc_nic) do
41
+ { id: 'net0', name: 'eth0', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1,
42
+ rate: 1, tag: 1, ip: '192.168.56.100/31' }
43
+ end
44
+
45
+ let(:qemu_nic) do
46
+ { id: 'net1', model: 'virtio', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1,
47
+ rate: 1, tag: 1 }
48
+ end
49
+
50
+ let(:qemu_nic_create) do
51
+ { id: 'net1', model: 'virtio', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
52
+ end
53
+
54
+ describe '#extract_model' do
55
+ it 'returns model card' do
56
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm[:net0])
57
+ assert_equal 'virtio', model
58
+ end
59
+
60
+ it 'returns model card creation' do
61
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm_create[:net0])
62
+ assert_equal 'virtio', model
63
+ end
64
+ end
65
+
66
+ describe '#extract_name' do
67
+ it 'returns lxc name' do
68
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc[:net0])
69
+ assert_equal 'eth0', model
70
+ end
71
+
72
+ it 'returns lxc name creation' do
73
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc_create[:net0])
74
+ assert_equal 'eth0', model
75
+ end
76
+ end
77
+
78
+ describe '#extract_mac_address' do
79
+ it 'returns vm mac address' do
80
+ mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_vm[:net0])
81
+ assert_equal '66:89:C5:59:AA:96', mac_address
82
+ end
83
+
84
+ it 'returns lxc mac address' do
85
+ mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_lxc[:net0])
86
+ assert_equal '66:89:C5:59:AA:96', mac_address
87
+ end
88
+ end
89
+
90
+ describe '#nic?' do
91
+ it 'returns true' do
92
+ assert Fog::Proxmox::NicHelper.nic?('net0')
93
+ end
94
+
95
+ it 'returns false' do
96
+ assert !Fog::Proxmox::NicHelper.nic?('net')
97
+ end
98
+ end
99
+
100
+ describe '#collect_nics' do
101
+ it 'returns net0' do
102
+ nets = Fog::Proxmox::NicHelper.collect_nics(net_vm.merge({ 'netout': 'sdfdsgfdsf' }))
103
+ assert nets.has_key?(:net0)
104
+ assert nets.has_value?(net_vm[:net0])
105
+ assert !nets.has_key?('netout')
106
+ end
107
+
108
+ it 'returns empty' do
109
+ nets = Fog::Proxmox::NicHelper.collect_nics({ 'netout': 'sdfdsgfdsf' })
110
+ assert nets.empty?
111
+ end
112
+ end
113
+
114
+ describe '#flatten' do
115
+ it 'returns qemu nic string' do
116
+ flat_qemu = { net1: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
117
+ assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic)
118
+ end
119
+
120
+ it 'returns qemu nic create string' do
121
+ flat_qemu = { net1: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
122
+ assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic_create)
123
+ end
124
+
125
+ it 'returns lxc nic string' do
126
+ flat_lxc = { net0: 'eth0=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
127
+ assert_equal flat_lxc, Fog::Proxmox::NicHelper.flatten(lxc_nic)
128
+ end
129
+ end
130
+
131
+ describe '#has_ip?' do
132
+ it 'returns true' do
133
+ ip = Fog::Proxmox::NicHelper.has_ip?(net_lxc[:net0])
134
+ assert_equal true, ip
135
+ end
136
+ end
137
+
138
+ describe '#extract_ip' do
139
+ it 'returns lxc ip cidr' do
140
+ ip = Fog::Proxmox::NicHelper.extract_ip(net_lxc[:net0])
141
+ assert_equal '192.168.56.100/31', ip
142
+ end
143
+ end
144
+ end