fog-proxmox 0.13.0 → 0.14.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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -1
  3. data/docs/compute.md +23 -7
  4. data/docs/identity.md +31 -6
  5. data/examples/compute.rb +11 -11
  6. data/examples/identity.rb +28 -15
  7. data/fog-proxmox.gemspec +1 -1
  8. data/lib/fog/proxmox.rb +16 -76
  9. data/lib/fog/proxmox/auth/token.rb +88 -0
  10. data/lib/fog/proxmox/auth/token/access_ticket.rb +85 -0
  11. data/lib/fog/proxmox/auth/token/user_token.rb +94 -0
  12. data/lib/fog/{compute/proxmox.rb → proxmox/compute.rb} +31 -16
  13. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disk.rb +15 -2
  14. data/lib/fog/{compute/proxmox → proxmox/compute}/models/disks.rb +5 -1
  15. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interface.rb +4 -0
  16. data/lib/fog/{compute/proxmox → proxmox/compute}/models/interfaces.rb +1 -1
  17. data/lib/fog/{compute/proxmox → proxmox/compute}/models/node.rb +0 -0
  18. data/lib/fog/{compute/proxmox → proxmox/compute}/models/nodes.rb +1 -1
  19. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server.rb +2 -2
  20. data/lib/fog/{compute/proxmox → proxmox/compute}/models/server_config.rb +8 -0
  21. data/lib/fog/{compute/proxmox → proxmox/compute}/models/servers.rb +1 -1
  22. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshot.rb +0 -0
  23. data/lib/fog/{compute/proxmox → proxmox/compute}/models/snapshots.rb +1 -1
  24. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storage.rb +0 -0
  25. data/lib/fog/{compute/proxmox → proxmox/compute}/models/storages.rb +1 -1
  26. data/lib/fog/{compute/proxmox → proxmox/compute}/models/task.rb +0 -0
  27. data/lib/fog/{compute/proxmox → proxmox/compute}/models/tasks.rb +1 -1
  28. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volume.rb +6 -0
  29. data/lib/fog/{compute/proxmox → proxmox/compute}/models/volumes.rb +1 -1
  30. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/action_server.rb +0 -0
  31. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/clone_server.rb +0 -0
  32. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_backup.rb +0 -0
  33. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_server.rb +0 -0
  34. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_snapshot.rb +0 -0
  35. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_spice.rb +0 -0
  36. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_term.rb +0 -0
  37. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/create_vnc.rb +0 -0
  38. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_server.rb +0 -0
  39. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_snapshot.rb +0 -0
  40. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/delete_volume.rb +0 -0
  41. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_node_statistics.rb +0 -0
  42. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_config.rb +0 -0
  43. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_server_status.rb +0 -0
  44. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_snapshot_config.rb +0 -0
  45. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_task.rb +0 -0
  46. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_vnc.rb +0 -0
  47. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/get_volume.rb +0 -0
  48. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_nodes.rb +0 -0
  49. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_servers.rb +0 -0
  50. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_snapshots.rb +0 -0
  51. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_storages.rb +0 -0
  52. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_tasks.rb +0 -0
  53. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/list_volumes.rb +0 -0
  54. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/log_task.rb +0 -0
  55. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/migrate_server.rb +0 -0
  56. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_disk.rb +0 -0
  57. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/move_volume.rb +0 -0
  58. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/next_vmid.rb +0 -0
  59. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_container.rb +0 -0
  60. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/resize_server.rb +0 -0
  61. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/rollback_snapshot.rb +0 -0
  62. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/status_task.rb +0 -0
  63. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/stop_task.rb +0 -0
  64. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/template_server.rb +0 -0
  65. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_server.rb +0 -0
  66. data/lib/fog/{compute/proxmox → proxmox/compute}/requests/update_snapshot.rb +0 -0
  67. data/lib/fog/proxmox/core.rb +66 -57
  68. data/lib/fog/proxmox/hash.rb +2 -2
  69. data/lib/fog/proxmox/helpers/cpu_helper.rb +48 -9
  70. data/lib/fog/proxmox/helpers/disk_helper.rb +42 -22
  71. data/lib/fog/proxmox/helpers/nic_helper.rb +28 -20
  72. data/lib/fog/{identity/proxmox.rb → proxmox/identity.rb} +31 -17
  73. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain.rb +0 -0
  74. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domain_type.rb +0 -0
  75. data/lib/fog/{identity/proxmox → proxmox/identity}/models/domains.rb +1 -1
  76. data/lib/fog/{identity/proxmox → proxmox/identity}/models/group.rb +4 -2
  77. data/lib/fog/{identity/proxmox → proxmox/identity}/models/groups.rb +1 -1
  78. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permission.rb +0 -0
  79. data/lib/fog/{identity/proxmox → proxmox/identity}/models/permissions.rb +1 -1
  80. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pool.rb +0 -0
  81. data/lib/fog/{identity/proxmox → proxmox/identity}/models/pools.rb +1 -1
  82. data/lib/fog/{identity/proxmox → proxmox/identity}/models/principal.rb +0 -0
  83. data/lib/fog/{identity/proxmox → proxmox/identity}/models/role.rb +0 -0
  84. data/lib/fog/{identity/proxmox → proxmox/identity}/models/roles.rb +1 -1
  85. data/lib/fog/proxmox/identity/models/token.rb +71 -0
  86. data/lib/fog/proxmox/identity/models/token_info.rb +41 -0
  87. data/lib/fog/proxmox/identity/models/tokens.rb +58 -0
  88. data/lib/fog/{identity/proxmox → proxmox/identity}/models/user.rb +25 -2
  89. data/lib/fog/{identity/proxmox → proxmox/identity}/models/users.rb +1 -1
  90. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/change_password.rb +0 -0
  91. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/check_permissions.rb +0 -0
  92. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_domain.rb +0 -0
  93. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_group.rb +0 -0
  94. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_pool.rb +0 -0
  95. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_role.rb +0 -0
  96. data/lib/fog/proxmox/identity/requests/create_token.rb +40 -0
  97. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/create_user.rb +0 -0
  98. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_domain.rb +0 -0
  99. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_group.rb +0 -0
  100. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_pool.rb +0 -0
  101. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_role.rb +0 -0
  102. data/lib/fog/proxmox/identity/requests/delete_token.rb +40 -0
  103. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/delete_user.rb +0 -0
  104. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_domain.rb +0 -0
  105. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_group.rb +0 -0
  106. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_pool.rb +0 -0
  107. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_role.rb +0 -0
  108. data/lib/fog/proxmox/identity/requests/get_token_info.rb +41 -0
  109. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/get_user.rb +0 -0
  110. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_domains.rb +0 -0
  111. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_groups.rb +0 -0
  112. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_permissions.rb +0 -0
  113. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_pools.rb +0 -0
  114. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_roles.rb +0 -0
  115. data/lib/fog/proxmox/identity/requests/list_tokens.rb +41 -0
  116. data/lib/fog/proxmox/identity/requests/list_user_permissions.rb +44 -0
  117. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/list_users.rb +0 -0
  118. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/read_version.rb +0 -0
  119. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_domain.rb +0 -0
  120. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_group.rb +0 -0
  121. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_permissions.rb +0 -0
  122. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_pool.rb +0 -0
  123. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_role.rb +0 -0
  124. data/lib/fog/proxmox/identity/requests/update_token.rb +41 -0
  125. data/lib/fog/{identity/proxmox → proxmox/identity}/requests/update_user.rb +0 -0
  126. data/lib/fog/{network/proxmox.rb → proxmox/network.rb} +21 -14
  127. data/lib/fog/{network/proxmox → proxmox/network}/models/network.rb +0 -0
  128. data/lib/fog/{network/proxmox → proxmox/network}/models/networks.rb +1 -1
  129. data/lib/fog/{network/proxmox → proxmox/network}/models/node.rb +1 -1
  130. data/lib/fog/{network/proxmox → proxmox/network}/models/nodes.rb +1 -1
  131. data/lib/fog/{network/proxmox → proxmox/network}/requests/create_network.rb +0 -0
  132. data/lib/fog/{network/proxmox → proxmox/network}/requests/delete_network.rb +0 -0
  133. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_network.rb +0 -0
  134. data/lib/fog/{network/proxmox → proxmox/network}/requests/get_node.rb +0 -0
  135. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_networks.rb +0 -0
  136. data/lib/fog/{network/proxmox → proxmox/network}/requests/list_nodes.rb +0 -0
  137. data/lib/fog/{network/proxmox → proxmox/network}/requests/power_node.rb +0 -0
  138. data/lib/fog/{network/proxmox → proxmox/network}/requests/update_network.rb +0 -0
  139. data/lib/fog/{storage/proxmox.rb → proxmox/storage.rb} +1 -1
  140. data/lib/fog/proxmox/version.rb +1 -1
  141. data/spec/compute_spec.rb +4 -4
  142. data/spec/fixtures/proxmox/compute/common_auth.yml +40 -0
  143. data/spec/fixtures/proxmox/compute/containers.yml +1752 -7568
  144. data/spec/fixtures/proxmox/compute/nodes.yml +24 -30
  145. data/spec/fixtures/proxmox/compute/servers.yml +5015 -10683
  146. data/spec/fixtures/proxmox/compute/snapshots.yml +479 -1719
  147. data/spec/fixtures/proxmox/compute/storages.yml +32 -40
  148. data/spec/fixtures/proxmox/compute/tasks.yml +118 -338
  149. data/spec/fixtures/proxmox/identity/auth.yml +10 -12
  150. data/spec/fixtures/proxmox/identity/auth_access_ticket.yml +77 -0
  151. data/spec/fixtures/proxmox/identity/auth_user_token.yml +77 -0
  152. data/spec/fixtures/proxmox/identity/common_auth.yml +40 -0
  153. data/spec/fixtures/proxmox/identity/domains.yml +145 -181
  154. data/spec/fixtures/proxmox/identity/groups.yml +72 -90
  155. data/spec/fixtures/proxmox/identity/permissions.yml +297 -189
  156. data/spec/fixtures/proxmox/identity/pools.yml +176 -421
  157. data/spec/fixtures/proxmox/identity/read_version.yml +7 -9
  158. data/spec/fixtures/proxmox/identity/roles.yml +69 -87
  159. data/spec/fixtures/proxmox/identity/tokens.yml +494 -0
  160. data/spec/fixtures/proxmox/identity/users.yml +149 -187
  161. data/spec/fixtures/proxmox/network/common_auth.yml +40 -0
  162. data/spec/fixtures/proxmox/network/networks.yml +99 -96
  163. data/spec/helpers/cpu_helper_spec.rb +27 -20
  164. data/spec/helpers/disk_helper_spec.rb +231 -187
  165. data/spec/helpers/nic_helper_spec.rb +113 -114
  166. data/spec/identity_spec.rb +110 -28
  167. data/spec/network_spec.rb +3 -3
  168. data/spec/proxmox_vcr.rb +24 -22
  169. data/spec/spec_helper.rb +4 -3
  170. metadata +155 -139
  171. data/spec/fixtures/proxmox/compute/identity_ticket.yml +0 -40
  172. data/spec/fixtures/proxmox/identity/identity_ticket.yml +0 -40
  173. data/spec/fixtures/proxmox/identity/renew.yml +0 -40
  174. data/spec/fixtures/proxmox/network/identity_ticket.yml +0 -40
@@ -20,191 +20,235 @@
20
20
  require 'spec_helper'
21
21
  require 'fog/proxmox/helpers/disk_helper'
22
22
 
23
- describe Fog::Proxmox::DiskHelper do
24
-
25
- let(:scsi0) do
26
- { id: 'scsi0', storage: 'local-lvm', size: 1, options: { cache: 'none' }}
27
- end
28
-
29
- let(:scsi0_image) do
30
- { id: 'scsi0', volid: 'local-lvm:vm-100-disk-1', storage: 'local-lvm', size: 1, options: { cache: 'none' }}
31
- end
32
-
33
- let(:scsi) do
34
- { scsi0: 'local-lvm:vm-100-disk-1,size=8G,cache=none'}
35
- end
36
-
37
- let(:virtio1) do
38
- { id: 'virtio1', volid: 'local:108/vm-108-disk-1.qcow2,size=15G' }
39
- end
40
-
41
- let(:virtio) do
42
- { virtio1: 'local:108/vm-108-disk-1.qcow2,size=245'}
43
- end
44
-
45
- let(:ide2) do
46
- { id: 'ide2' }
47
- end
48
-
49
- let(:ide2_image) do
50
- { id: 'ide2', volid: 'local:iso/alpine-virt-3.7.0-x86_64.iso' }
51
- end
52
-
53
- let(:cdrom_none) do
54
- { ide2: 'none,media=cdrom'}
55
- end
56
-
57
- let(:cdrom_iso) do
58
- { ide2: 'local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom'}
59
- end
60
-
61
- describe '#flatten' do
62
- it "returns creation string" do
63
- disk = Fog::Proxmox::DiskHelper.flatten(scsi0)
64
- assert_equal({ scsi0: 'local-lvm:1,cache=none' }, disk)
65
- end
66
- it "returns image string" do
67
- disk = Fog::Proxmox::DiskHelper.flatten(scsi0_image)
68
- assert_equal({ scsi0: 'local-lvm:vm-100-disk-1,size=1,cache=none' }, disk)
69
- end
70
- it "returns cdrom none string" do
71
- disk = Fog::Proxmox::DiskHelper.flatten(ide2)
72
- assert_equal(cdrom_none, disk)
73
- end
74
- it "returns cdrom image string" do
75
- disk = Fog::Proxmox::DiskHelper.flatten(ide2_image)
76
- assert_equal(cdrom_iso, disk)
77
- end
78
- end
79
-
80
- describe '#extract_controller' do
81
- it "returns virtio controller" do
82
- controller = Fog::Proxmox::DiskHelper.extract_controller(virtio1[:id])
83
- assert_equal('virtio', controller)
84
- end
85
- it "returns scsi controller" do
86
- controller = Fog::Proxmox::DiskHelper.extract_controller(scsi0[:id])
87
- assert_equal('scsi', controller)
88
- end
89
- end
90
-
91
- describe '#extract_device' do
92
- it "returns device" do
93
- device = Fog::Proxmox::DiskHelper.extract_device(scsi0[:id])
94
- assert_equal(0, device)
95
- end
96
- end
97
-
98
- describe '#extract_storage_volid_size' do
99
- it "returns scsi get storage and volid" do
100
- storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(scsi[:scsi0])
101
- assert_equal('local-lvm', storage)
102
- assert_equal('local-lvm:vm-100-disk-1', volid)
103
- assert_equal(8589934592, size)
104
- end
105
- it "returns virtio get local storage volid and size" do
106
- storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(virtio[:virtio1])
107
- assert_equal('local', storage)
108
- assert_equal('local:108/vm-108-disk-1.qcow2', volid)
109
- assert_equal(245, size)
110
- end
111
- it "returns scsi0 creation storage and volid" do
112
- disk = Fog::Proxmox::DiskHelper.flatten(scsi0)
113
- storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(disk[:scsi0])
114
- assert_equal('local-lvm', storage)
115
- assert_nil volid
116
- assert_equal(1, size)
117
- end
118
- it "returns cdrom storage and volid none" do
119
- storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(cdrom_none[:ide2])
120
- assert_nil storage
121
- assert_equal('none', volid)
122
- assert_nil size
123
- end
124
- it "returns cdrom storage and volid iso" do
125
- storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(cdrom_iso[:ide2])
126
- assert_equal('local', storage)
127
- assert_equal('local:iso/alpine-virt-3.7.0-x86_64.iso', volid)
128
- assert_nil size
129
- end
130
- end
131
- describe '#extract_size' do
132
- it "returns size" do
133
- size = Fog::Proxmox::DiskHelper.extract_size(scsi[:scsi0])
134
- assert_equal(8589934592, size)
135
- end
136
- it "returns size" do
137
- size = Fog::Proxmox::DiskHelper.extract_size(virtio[:virtio1])
138
- assert_equal(245, size)
139
- end
140
- end
141
-
142
- describe '#disk?' do
143
- it "rootfs returns true" do
144
- assert Fog::Proxmox::DiskHelper.disk?('rootfs')
145
- end
146
- it "mp0 returns true" do
147
- assert Fog::Proxmox::DiskHelper.disk?('mp0')
148
- end
149
- it "scsi0 returns true" do
150
- assert Fog::Proxmox::DiskHelper.disk?('scsi0')
151
- end
152
- it "virtio12 returns true" do
153
- assert Fog::Proxmox::DiskHelper.disk?('virtio12')
154
- end
155
- it "sata2 returns true" do
156
- assert Fog::Proxmox::DiskHelper.disk?('sata2')
157
- end
158
- it "ide0 returns true" do
159
- assert Fog::Proxmox::DiskHelper.disk?('ide0')
160
- end
161
- it "dsfdsfdsfds returns false" do
162
- assert !Fog::Proxmox::DiskHelper.disk?('dsfdsfdsfds')
163
- end
164
- end
165
-
166
- describe '#server_disk?' do
167
- it "ide0 returns true" do
168
- assert Fog::Proxmox::DiskHelper.server_disk?('ide0')
169
- end
170
- it "scsi1 returns true" do
171
- assert Fog::Proxmox::DiskHelper.server_disk?('scsi1')
172
- end
173
- it "virtio returns false" do
174
- assert !Fog::Proxmox::DiskHelper.server_disk?('virtio')
175
- end
176
- end
177
-
178
- describe '#container_disk?' do
179
- it "rootfs returns true" do
180
- assert Fog::Proxmox::DiskHelper.container_disk?('rootfs')
181
- end
182
- it "mp0 returns true" do
183
- assert Fog::Proxmox::DiskHelper.container_disk?('mp0')
184
- end
185
- it "mp returns false" do
186
- assert !Fog::Proxmox::DiskHelper.container_disk?('mp')
187
- end
188
- end
189
-
190
- describe '#cdrom?' do
191
- it "local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom returns true" do
192
- assert Fog::Proxmox::DiskHelper.cdrom?('local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom')
193
- end
194
- it "local:iso/alpine-virt-3.7.0-x86_64.iso returns false" do
195
- assert !Fog::Proxmox::DiskHelper.cdrom?('local:iso/alpine-virt-3.7.0-x86_64.iso')
196
- end
197
- end
198
-
199
- describe '#to_bytes' do
200
- it "1Gb returns 1 073 741 824" do
201
- assert_equal Fog::Proxmox::DiskHelper.to_bytes('1Gb'), 1073741824
202
- end
203
- end
204
-
205
- describe '#to_human_bytes' do
206
- it "1 073 741 824 returns 1Gb" do
207
- assert_equal '1Gb', Fog::Proxmox::DiskHelper.to_human_bytes(1073741824)
208
- end
209
- end
23
+ describe Fog::Proxmox::DiskHelper do
24
+ let(:scsi0) do
25
+ { id: 'scsi0', storage: 'local-lvm', size: 1, options: { cache: 'none' }}
26
+ end
27
+
28
+ let(:scsi0_image) do
29
+ { id: 'scsi0', volid: 'local-lvm:vm-100-disk-1', storage: 'local-lvm', size: 1, options: { cache: 'none' }}
30
+ end
31
+
32
+ let(:scsi) do
33
+ { scsi0: 'local-lvm:vm-100-disk-1,size=8G,cache=none'}
34
+ end
35
+
36
+ let(:virtio1) do
37
+ { id: 'virtio1', volid: 'local:108/vm-108-disk-1.qcow2,size=15G' }
38
+ end
39
+
40
+ let(:virtio) do
41
+ { virtio1: 'local:108/vm-108-disk-1.qcow2,size=245'}
42
+ end
43
+
44
+ let(:ide2) do
45
+ { id: 'ide2' }
46
+ end
47
+
48
+ let(:ide2_image) do
49
+ { id: 'ide2', volid: 'local:iso/alpine-virt-3.7.0-x86_64.iso' }
50
+ end
51
+
52
+ let(:cdrom_none) do
53
+ { ide2: 'none,media=cdrom'}
54
+ end
55
+
56
+ let(:cdrom_iso) do
57
+ { ide2: 'local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom'}
58
+ end
59
+
60
+ let(:template) do
61
+ { virtio0: 'local:100/base-100-disk-0.qcow2'}
62
+ end
63
+
64
+ let(:cloudinit) do
65
+ { ide0: 'local-lvm:vm-100-cloudinit,media=cdrom'}
66
+ end
67
+
68
+ let(:rootfs) do
69
+ { id: 'rootfs', storage: 'local-lvm', size: 1 }
70
+ end
71
+
72
+ describe '#flatten' do
73
+ it "returns creation string" do
74
+ disk = Fog::Proxmox::DiskHelper.flatten(scsi0)
75
+ assert_equal({ scsi0: 'local-lvm:1,cache=none' }, disk)
210
76
  end
77
+ it "returns image string" do
78
+ disk = Fog::Proxmox::DiskHelper.flatten(scsi0_image)
79
+ assert_equal({ scsi0: 'local-lvm:vm-100-disk-1,size=1,cache=none' }, disk)
80
+ end
81
+ it "returns cdrom none string" do
82
+ disk = Fog::Proxmox::DiskHelper.flatten(ide2)
83
+ assert_equal(cdrom_none, disk)
84
+ end
85
+ it "returns cdrom image string" do
86
+ disk = Fog::Proxmox::DiskHelper.flatten(ide2_image)
87
+ assert_equal(cdrom_iso, disk)
88
+ end
89
+ end
90
+
91
+ describe '#extract_controller' do
92
+ it "returns virtio controller" do
93
+ controller = Fog::Proxmox::DiskHelper.extract_controller(virtio1[:id])
94
+ assert_equal('virtio', controller)
95
+ end
96
+ it "returns scsi controller" do
97
+ controller = Fog::Proxmox::DiskHelper.extract_controller(scsi0[:id])
98
+ assert_equal('scsi', controller)
99
+ end
100
+ end
101
+
102
+ describe '#extract_device' do
103
+ it "returns device" do
104
+ device = Fog::Proxmox::DiskHelper.extract_device(scsi0[:id])
105
+ assert_equal(0, device)
106
+ end
107
+ end
108
+
109
+ describe '#extract_storage_volid_size' do
110
+ it "returns scsi get storage and volid" do
111
+ storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(scsi[:scsi0])
112
+ assert_equal('local-lvm', storage)
113
+ assert_equal('local-lvm:vm-100-disk-1', volid)
114
+ assert_equal(8589934592, size)
115
+ end
116
+ it "returns virtio get local storage volid and size" do
117
+ storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(virtio[:virtio1])
118
+ assert_equal('local', storage)
119
+ assert_equal('local:108/vm-108-disk-1.qcow2', volid)
120
+ assert_equal(245, size)
121
+ end
122
+ it "returns scsi0 creation storage and volid" do
123
+ disk = Fog::Proxmox::DiskHelper.flatten(scsi0)
124
+ storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(disk[:scsi0])
125
+ assert_equal('local-lvm', storage)
126
+ assert_nil volid
127
+ assert_equal(1, size)
128
+ end
129
+ it "returns cdrom storage and volid none" do
130
+ storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(cdrom_none[:ide2])
131
+ assert_nil storage
132
+ assert_equal('none', volid)
133
+ assert_nil size
134
+ end
135
+ it "returns cdrom storage and volid iso" do
136
+ storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(cdrom_iso[:ide2])
137
+ assert_equal('local', storage)
138
+ assert_equal('local:iso/alpine-virt-3.7.0-x86_64.iso', volid)
139
+ assert_nil size
140
+ end
141
+ end
142
+ describe '#extract_size' do
143
+ it "returns size" do
144
+ size = Fog::Proxmox::DiskHelper.extract_size(scsi[:scsi0])
145
+ assert_equal(8589934592, size)
146
+ end
147
+ it "returns size" do
148
+ size = Fog::Proxmox::DiskHelper.extract_size(virtio[:virtio1])
149
+ assert_equal(245, size)
150
+ end
151
+ end
152
+
153
+ describe '#disk?' do
154
+ it "rootfs returns true" do
155
+ assert Fog::Proxmox::DiskHelper.disk?('rootfs')
156
+ end
157
+ it "mp0 returns true" do
158
+ assert Fog::Proxmox::DiskHelper.disk?('mp0')
159
+ end
160
+ it "scsi0 returns true" do
161
+ assert Fog::Proxmox::DiskHelper.disk?('scsi0')
162
+ end
163
+ it "virtio12 returns true" do
164
+ assert Fog::Proxmox::DiskHelper.disk?('virtio12')
165
+ end
166
+ it "sata2 returns true" do
167
+ assert Fog::Proxmox::DiskHelper.disk?('sata2')
168
+ end
169
+ it "ide0 returns true" do
170
+ assert Fog::Proxmox::DiskHelper.disk?('ide0')
171
+ end
172
+ it "dsfdsfdsfds returns false" do
173
+ assert !Fog::Proxmox::DiskHelper.disk?('dsfdsfdsfds')
174
+ end
175
+ end
176
+
177
+ describe '#server_disk?' do
178
+ it "ide0 returns true" do
179
+ assert Fog::Proxmox::DiskHelper.server_disk?('ide0')
180
+ end
181
+ it "scsi1 returns true" do
182
+ assert Fog::Proxmox::DiskHelper.server_disk?('scsi1')
183
+ end
184
+ it "virtio returns false" do
185
+ assert !Fog::Proxmox::DiskHelper.server_disk?('virtio')
186
+ end
187
+ end
188
+
189
+ describe '#container_disk?' do
190
+ it "rootfs returns true" do
191
+ assert Fog::Proxmox::DiskHelper.container_disk?('rootfs')
192
+ end
193
+ it "mp0 returns true" do
194
+ assert Fog::Proxmox::DiskHelper.container_disk?('mp0')
195
+ end
196
+ it "mp returns false" do
197
+ assert !Fog::Proxmox::DiskHelper.container_disk?('mp')
198
+ end
199
+ end
200
+
201
+ describe '#cdrom?' do
202
+ it "local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom returns true" do
203
+ assert Fog::Proxmox::DiskHelper.cdrom?('local:iso/alpine-virt-3.7.0-x86_64.iso,media=cdrom')
204
+ end
205
+ it "local:iso/alpine-virt-3.7.0-x86_64.iso returns false" do
206
+ assert !Fog::Proxmox::DiskHelper.cdrom?('local:iso/alpine-virt-3.7.0-x86_64.iso')
207
+ end
208
+ end
209
+
210
+ describe '#to_bytes' do
211
+ it "1Gb returns 1 073 741 824" do
212
+ assert_equal Fog::Proxmox::DiskHelper.to_bytes('1Gb'), 1073741824
213
+ end
214
+ end
215
+
216
+ describe '#to_human_bytes' do
217
+ it "1 073 741 824 returns 1Gb" do
218
+ assert_equal '1Gb', Fog::Proxmox::DiskHelper.to_human_bytes(1073741824)
219
+ end
220
+ end
221
+
222
+ describe '#template?' do
223
+ it "local:100/base-100-disk-0.qcow2 returns true" do
224
+ assert Fog::Proxmox::DiskHelper.template?(template[:virtio0])
225
+ end
226
+ it "local:108/vm-108-disk-1.qcow2 returns false" do
227
+ assert !Fog::Proxmox::DiskHelper.template?(virtio[:virtio1])
228
+ end
229
+ end
230
+
231
+ describe '#cloud_init?' do
232
+ it "local-lvm:vm-100-cloudinit,media=cdrom returns true" do
233
+ assert Fog::Proxmox::DiskHelper.cloud_init?(cloudinit[:ide0])
234
+ end
235
+ it "local:108/vm-108-disk-1.qcow2 returns false" do
236
+ assert !Fog::Proxmox::DiskHelper.cloud_init?(virtio[:virtio1])
237
+ end
238
+ end
239
+
240
+ describe '#of_type?' do
241
+ it "qemu and rootfs returns false" do
242
+ refute Fog::Proxmox::DiskHelper.of_type?(rootfs, 'qemu')
243
+ end
244
+ it "qemu and scsi0 returns true" do
245
+ assert Fog::Proxmox::DiskHelper.of_type?(scsi0, 'qemu')
246
+ end
247
+ it "lxc and rootfs returns true" do
248
+ assert Fog::Proxmox::DiskHelper.of_type?(rootfs, 'lxc')
249
+ end
250
+ it "qemu and scsi0 returns false" do
251
+ refute Fog::Proxmox::DiskHelper.of_type?(scsi0, 'lxc')
252
+ end
253
+ end
254
+ end
@@ -20,117 +20,116 @@
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, rate: 1, tag: 1, ip: '192.168.56.100/31' }
42
+ end
43
+
44
+ let(:qemu_nic) do
45
+ { id: 'net1', model: 'virtio', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
46
+ end
47
+
48
+ let(:qemu_nic_create) do
49
+ { id: 'net1', model: 'virtio', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
50
+ end
51
+
52
+ describe '#extract_model' do
53
+ it "returns model card" do
54
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm[:net0])
55
+ assert_equal 'virtio', model
56
+ end
57
+ it "returns model card creation" do
58
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm_create[:net0])
59
+ assert_equal 'virtio', model
60
+ end
61
+ end
62
+
63
+ describe '#extract_name' do
64
+ it "returns lxc name" do
65
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc[:net0])
66
+ assert_equal 'eth0', model
67
+ end
68
+ it "returns lxc name creation" do
69
+ model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc_create[:net0])
70
+ assert_equal 'eth0', model
71
+ end
72
+ end
73
+
74
+ describe '#extract_mac_address' do
75
+ it "returns vm mac address" do
76
+ mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_vm[:net0])
77
+ assert_equal '66:89:C5:59:AA:96', mac_address
78
+ end
79
+ it "returns lxc mac address" do
80
+ mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_lxc[:net0])
81
+ assert_equal '66:89:C5:59:AA:96', mac_address
82
+ end
83
+ end
84
+
85
+ describe '#nic?' do
86
+ it "returns true" do
87
+ assert Fog::Proxmox::NicHelper.nic?('net0')
88
+ end
89
+ it "returns false" do
90
+ assert !Fog::Proxmox::NicHelper.nic?('net')
91
+ end
92
+ end
93
+
94
+ describe '#collect_nics' do
95
+ it "returns net0" do
96
+ nets = Fog::Proxmox::NicHelper.collect_nics(net_vm.merge({'netout': 'sdfdsgfdsf'}))
97
+ assert nets.has_key?(:net0)
98
+ assert nets.has_value?(net_vm[:net0])
99
+ assert !nets.has_key?('netout')
100
+ end
101
+ it "returns empty" do
102
+ nets = Fog::Proxmox::NicHelper.collect_nics({'netout': 'sdfdsgfdsf'})
103
+ assert nets.empty?
104
+ end
105
+ end
106
+
107
+ describe '#flatten' do
108
+ it "returns qemu nic string" do
109
+ flat_qemu = { net1: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
110
+ assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic)
111
+ end
112
+ it "returns qemu nic create string" do
113
+ flat_qemu = { net1: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
114
+ assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic_create)
115
+ end
116
+ it "returns lxc nic string" do
117
+ 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' }
118
+ assert_equal flat_lxc, Fog::Proxmox::NicHelper.flatten(lxc_nic)
119
+ end
120
+ end
121
+
122
+ describe '#has_ip?' do
123
+ it "returns true" do
124
+ ip = Fog::Proxmox::NicHelper.has_ip?(net_lxc[:net0])
125
+ assert_equal true, ip
126
+ end
127
+ end
128
+
129
+ describe '#extract_ip' do
130
+ it "returns lxc ip cidr" do
131
+ ip = Fog::Proxmox::NicHelper.extract_ip(net_lxc[:net0])
132
+ assert_equal '192.168.56.100/31', ip
133
+ end
134
+ end
135
+ end