fog-proxmox 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +4 -0
  3. data/.codeclimate.yml +14 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  6. data/.gitignore +5 -0
  7. data/.gitlab-ci.yml +42 -0
  8. data/.rubocop.yml +13 -0
  9. data/.ruby-gemset +1 -0
  10. data/.solargraph.yml +10 -0
  11. data/.travis.yml +26 -0
  12. data/.vscode/launch.json +114 -0
  13. data/.vscode/settings.json +45 -0
  14. data/.vscode/tasks.json +27 -0
  15. data/CODE_OF_CONDUCT.md +74 -0
  16. data/CONTRIBUTING.md +20 -0
  17. data/CONTRIBUTORS.md +9 -0
  18. data/Gemfile +23 -0
  19. data/Gemfile.lock +146 -0
  20. data/ISSUE_TEMPLATE.md +43 -0
  21. data/LICENSE +674 -0
  22. data/README.md +58 -0
  23. data/Rakefile +53 -0
  24. data/SUPPORT.md +9 -0
  25. data/bin/console +29 -0
  26. data/bin/setup +29 -0
  27. data/docs/compute.md +846 -0
  28. data/docs/connection_parameters.md +45 -0
  29. data/docs/getting_started.md +53 -0
  30. data/docs/identity.md +357 -0
  31. data/examples/compute.rb +279 -0
  32. data/examples/identity.rb +195 -0
  33. data/fog-proxmox.gemspec +63 -0
  34. data/fogproxmox.png +0 -0
  35. data/lib/fog/compute/proxmox.rb +131 -0
  36. data/lib/fog/compute/proxmox/models/container.rb +97 -0
  37. data/lib/fog/compute/proxmox/models/container_config.rb +90 -0
  38. data/lib/fog/compute/proxmox/models/containers.rb +40 -0
  39. data/lib/fog/compute/proxmox/models/disk.rb +67 -0
  40. data/lib/fog/compute/proxmox/models/disks.rb +49 -0
  41. data/lib/fog/compute/proxmox/models/interface.rb +50 -0
  42. data/lib/fog/compute/proxmox/models/interfaces.rb +46 -0
  43. data/lib/fog/compute/proxmox/models/node.rb +93 -0
  44. data/lib/fog/compute/proxmox/models/nodes.rb +45 -0
  45. data/lib/fog/compute/proxmox/models/server.rb +212 -0
  46. data/lib/fog/compute/proxmox/models/server_config.rb +116 -0
  47. data/lib/fog/compute/proxmox/models/servers.rb +70 -0
  48. data/lib/fog/compute/proxmox/models/snapshot.rb +70 -0
  49. data/lib/fog/compute/proxmox/models/snapshots.rb +55 -0
  50. data/lib/fog/compute/proxmox/models/storage.rb +61 -0
  51. data/lib/fog/compute/proxmox/models/storages.rb +60 -0
  52. data/lib/fog/compute/proxmox/models/task.rb +84 -0
  53. data/lib/fog/compute/proxmox/models/tasks.rb +71 -0
  54. data/lib/fog/compute/proxmox/models/volume.rb +61 -0
  55. data/lib/fog/compute/proxmox/models/volumes.rb +67 -0
  56. data/lib/fog/compute/proxmox/requests/action_server.rb +47 -0
  57. data/lib/fog/compute/proxmox/requests/check_vmid.rb +41 -0
  58. data/lib/fog/compute/proxmox/requests/clone_server.rb +46 -0
  59. data/lib/fog/compute/proxmox/requests/create_backup.rb +44 -0
  60. data/lib/fog/compute/proxmox/requests/create_server.rb +45 -0
  61. data/lib/fog/compute/proxmox/requests/create_snapshot.rb +47 -0
  62. data/lib/fog/compute/proxmox/requests/create_spice.rb +46 -0
  63. data/lib/fog/compute/proxmox/requests/create_term.rb +46 -0
  64. data/lib/fog/compute/proxmox/requests/create_vnc.rb +46 -0
  65. data/lib/fog/compute/proxmox/requests/delete_server.rb +47 -0
  66. data/lib/fog/compute/proxmox/requests/delete_snapshot.rb +48 -0
  67. data/lib/fog/compute/proxmox/requests/delete_volume.rb +40 -0
  68. data/lib/fog/compute/proxmox/requests/get_node.rb +44 -0
  69. data/lib/fog/compute/proxmox/requests/get_server_config.rb +45 -0
  70. data/lib/fog/compute/proxmox/requests/get_server_status.rb +45 -0
  71. data/lib/fog/compute/proxmox/requests/get_snapshot.rb +47 -0
  72. data/lib/fog/compute/proxmox/requests/get_storage.rb +44 -0
  73. data/lib/fog/compute/proxmox/requests/get_task.rb +44 -0
  74. data/lib/fog/compute/proxmox/requests/get_vnc.rb +46 -0
  75. data/lib/fog/compute/proxmox/requests/get_volume.rb +42 -0
  76. data/lib/fog/compute/proxmox/requests/list_nodes.rb +42 -0
  77. data/lib/fog/compute/proxmox/requests/list_servers.rb +42 -0
  78. data/lib/fog/compute/proxmox/requests/list_snapshots.rb +43 -0
  79. data/lib/fog/compute/proxmox/requests/list_storages.rb +42 -0
  80. data/lib/fog/compute/proxmox/requests/list_tasks.rb +42 -0
  81. data/lib/fog/compute/proxmox/requests/list_volumes.rb +42 -0
  82. data/lib/fog/compute/proxmox/requests/log_task.rb +45 -0
  83. data/lib/fog/compute/proxmox/requests/migrate_server.rb +44 -0
  84. data/lib/fog/compute/proxmox/requests/move_disk.rb +46 -0
  85. data/lib/fog/compute/proxmox/requests/move_volume.rb +46 -0
  86. data/lib/fog/compute/proxmox/requests/next_vmid.rb +39 -0
  87. data/lib/fog/compute/proxmox/requests/resize_container.rb +46 -0
  88. data/lib/fog/compute/proxmox/requests/resize_server.rb +43 -0
  89. data/lib/fog/compute/proxmox/requests/rollback_snapshot.rb +46 -0
  90. data/lib/fog/compute/proxmox/requests/status_task.rb +44 -0
  91. data/lib/fog/compute/proxmox/requests/stop_task.rb +41 -0
  92. data/lib/fog/compute/proxmox/requests/template_server.rb +43 -0
  93. data/lib/fog/compute/proxmox/requests/update_server.rb +46 -0
  94. data/lib/fog/compute/proxmox/requests/update_snapshot.rb +45 -0
  95. data/lib/fog/identity/proxmox.rb +132 -0
  96. data/lib/fog/identity/proxmox/models/activedirectory.rb +57 -0
  97. data/lib/fog/identity/proxmox/models/domain.rb +61 -0
  98. data/lib/fog/identity/proxmox/models/domains.rb +115 -0
  99. data/lib/fog/identity/proxmox/models/group.rb +60 -0
  100. data/lib/fog/identity/proxmox/models/groups.rb +50 -0
  101. data/lib/fog/identity/proxmox/models/ldap.rb +57 -0
  102. data/lib/fog/identity/proxmox/models/oath.rb +50 -0
  103. data/lib/fog/identity/proxmox/models/pam.rb +46 -0
  104. data/lib/fog/identity/proxmox/models/permission.rb +69 -0
  105. data/lib/fog/identity/proxmox/models/permissions.rb +61 -0
  106. data/lib/fog/identity/proxmox/models/pool.rb +84 -0
  107. data/lib/fog/identity/proxmox/models/pools.rb +50 -0
  108. data/lib/fog/identity/proxmox/models/principal.rb +47 -0
  109. data/lib/fog/identity/proxmox/models/pve.rb +46 -0
  110. data/lib/fog/identity/proxmox/models/role.rb +61 -0
  111. data/lib/fog/identity/proxmox/models/roles.rb +51 -0
  112. data/lib/fog/identity/proxmox/models/user.rb +74 -0
  113. data/lib/fog/identity/proxmox/models/users.rb +50 -0
  114. data/lib/fog/identity/proxmox/models/yubico.rb +51 -0
  115. data/lib/fog/identity/proxmox/requests/add_permission.rb +41 -0
  116. data/lib/fog/identity/proxmox/requests/change_password.rb +41 -0
  117. data/lib/fog/identity/proxmox/requests/check_permissions.rb +44 -0
  118. data/lib/fog/identity/proxmox/requests/create_domain.rb +40 -0
  119. data/lib/fog/identity/proxmox/requests/create_group.rb +40 -0
  120. data/lib/fog/identity/proxmox/requests/create_pool.rb +40 -0
  121. data/lib/fog/identity/proxmox/requests/create_role.rb +40 -0
  122. data/lib/fog/identity/proxmox/requests/create_user.rb +40 -0
  123. data/lib/fog/identity/proxmox/requests/delete_domain.rb +40 -0
  124. data/lib/fog/identity/proxmox/requests/delete_group.rb +40 -0
  125. data/lib/fog/identity/proxmox/requests/delete_pool.rb +39 -0
  126. data/lib/fog/identity/proxmox/requests/delete_role.rb +40 -0
  127. data/lib/fog/identity/proxmox/requests/delete_user.rb +39 -0
  128. data/lib/fog/identity/proxmox/requests/get_domain.rb +41 -0
  129. data/lib/fog/identity/proxmox/requests/get_group.rb +41 -0
  130. data/lib/fog/identity/proxmox/requests/get_pool.rb +41 -0
  131. data/lib/fog/identity/proxmox/requests/get_role.rb +41 -0
  132. data/lib/fog/identity/proxmox/requests/get_user.rb +40 -0
  133. data/lib/fog/identity/proxmox/requests/list_domains.rb +41 -0
  134. data/lib/fog/identity/proxmox/requests/list_groups.rb +41 -0
  135. data/lib/fog/identity/proxmox/requests/list_permissions.rb +41 -0
  136. data/lib/fog/identity/proxmox/requests/list_pools.rb +41 -0
  137. data/lib/fog/identity/proxmox/requests/list_roles.rb +41 -0
  138. data/lib/fog/identity/proxmox/requests/list_users.rb +42 -0
  139. data/lib/fog/identity/proxmox/requests/read_version.rb +43 -0
  140. data/lib/fog/identity/proxmox/requests/remove_permission.rb +42 -0
  141. data/lib/fog/identity/proxmox/requests/update_domain.rb +41 -0
  142. data/lib/fog/identity/proxmox/requests/update_group.rb +41 -0
  143. data/lib/fog/identity/proxmox/requests/update_pool.rb +41 -0
  144. data/lib/fog/identity/proxmox/requests/update_role.rb +41 -0
  145. data/lib/fog/identity/proxmox/requests/update_user.rb +41 -0
  146. data/lib/fog/network/proxmox.rb +83 -0
  147. data/lib/fog/network/proxmox/models/network.rb +82 -0
  148. data/lib/fog/network/proxmox/models/networks.rb +54 -0
  149. data/lib/fog/network/proxmox/models/node.rb +70 -0
  150. data/lib/fog/network/proxmox/models/nodes.rb +45 -0
  151. data/lib/fog/network/proxmox/requests/create_network.rb +44 -0
  152. data/lib/fog/network/proxmox/requests/delete_network.rb +45 -0
  153. data/lib/fog/network/proxmox/requests/get_network.rb +46 -0
  154. data/lib/fog/network/proxmox/requests/get_node.rb +44 -0
  155. data/lib/fog/network/proxmox/requests/list_networks.rb +43 -0
  156. data/lib/fog/network/proxmox/requests/list_nodes.rb +42 -0
  157. data/lib/fog/network/proxmox/requests/power_node.rb +46 -0
  158. data/lib/fog/network/proxmox/requests/update_network.rb +46 -0
  159. data/lib/fog/proxmox.rb +128 -0
  160. data/lib/fog/proxmox/core.rb +139 -0
  161. data/lib/fog/proxmox/errors.rb +64 -0
  162. data/lib/fog/proxmox/hash.rb +33 -0
  163. data/lib/fog/proxmox/helpers/controller_helper.rb +55 -0
  164. data/lib/fog/proxmox/helpers/cpu_helper.rb +45 -0
  165. data/lib/fog/proxmox/helpers/disk_helper.rb +84 -0
  166. data/lib/fog/proxmox/helpers/nic_helper.rb +62 -0
  167. data/lib/fog/proxmox/json.rb +32 -0
  168. data/lib/fog/proxmox/models/collection.rb +85 -0
  169. data/lib/fog/proxmox/models/model.rb +58 -0
  170. data/lib/fog/proxmox/variables.rb +40 -0
  171. data/lib/fog/proxmox/version.rb +24 -0
  172. data/lib/fog/storage/proxmox.rb +29 -0
  173. data/spec/compute_spec.rb +408 -0
  174. data/spec/fixtures/proxmox/compute/containers.yml +5398 -0
  175. data/spec/fixtures/proxmox/compute/identity_ticket.yml +40 -0
  176. data/spec/fixtures/proxmox/compute/servers.yml +10571 -0
  177. data/spec/fixtures/proxmox/compute/snapshots.yml +1228 -0
  178. data/spec/fixtures/proxmox/compute/storages.yml +120 -0
  179. data/spec/fixtures/proxmox/compute/tasks.yml +200 -0
  180. data/spec/fixtures/proxmox/identity/auth.yml +44 -0
  181. data/spec/fixtures/proxmox/identity/domains.yml +531 -0
  182. data/spec/fixtures/proxmox/identity/groups.yml +324 -0
  183. data/spec/fixtures/proxmox/identity/identity_ticket.yml +40 -0
  184. data/spec/fixtures/proxmox/identity/permissions.yml +565 -0
  185. data/spec/fixtures/proxmox/identity/pools.yml +488 -0
  186. data/spec/fixtures/proxmox/identity/read_version.yml +42 -0
  187. data/spec/fixtures/proxmox/identity/roles.yml +324 -0
  188. data/spec/fixtures/proxmox/identity/users.yml +646 -0
  189. data/spec/fixtures/proxmox/network/identity_ticket.yml +40 -0
  190. data/spec/fixtures/proxmox/network/networks.yml +413 -0
  191. data/spec/helpers/controller_helper_spec.rb +77 -0
  192. data/spec/helpers/cpu_helper_spec.rb +91 -0
  193. data/spec/helpers/disk_helper_spec.rb +104 -0
  194. data/spec/helpers/nic_helper_spec.rb +73 -0
  195. data/spec/identity_spec.rb +316 -0
  196. data/spec/network_spec.rb +67 -0
  197. data/spec/proxmox_vcr.rb +102 -0
  198. data/spec/spec_helper.rb +39 -0
  199. metadata +535 -0
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2018 Tristan Robert
4
+
5
+ # This file is part of Fog::Proxmox.
6
+
7
+ # Fog::Proxmox is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU General Public License as published by
9
+ # the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+
12
+ # Fog::Proxmox is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU General Public License for more details.
16
+
17
+ # You should have received a copy of the GNU General Public License
18
+ # along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
19
+
20
+ require 'spec_helper'
21
+ require_relative './proxmox_vcr'
22
+
23
+ describe Fog::Network::Proxmox do
24
+ before :all do
25
+ @proxmox_vcr = ProxmoxVCR.new(
26
+ vcr_directory: 'spec/fixtures/proxmox/network',
27
+ service_class: Fog::Network::Proxmox
28
+ )
29
+ @service = @proxmox_vcr.service
30
+ @pve_url = @proxmox_vcr.url
31
+ @username = @proxmox_vcr.username
32
+ @password = @proxmox_vcr.password
33
+ @ticket = @proxmox_vcr.ticket
34
+ @csrftoken = @proxmox_vcr.csrftoken
35
+ end
36
+
37
+ it 'CRUD networks' do
38
+ VCR.use_cassette('networks') do
39
+ net_hash = {
40
+ iface: 'enp0s10',
41
+ type: 'eth'
42
+ }
43
+ node = @service.nodes.all.first
44
+ # Create 1st time
45
+ node.networks.create(net_hash)
46
+ # Find by id
47
+ network = node.networks.find_by_id net_hash[:iface]
48
+ network.wont_be_nil
49
+ # Create 2nd time
50
+ proc do
51
+ node.networks.create(net_hash)
52
+ end.must_raise Excon::Error::BadRequest
53
+ # all networks
54
+ networks_all = node.networks.all
55
+ networks_all.wont_be_nil
56
+ networks_all.wont_be_empty
57
+ networks_all.must_include network
58
+ # Update
59
+ network.update(comments: 'test')
60
+ node.power('reboot')
61
+ sleep 60
62
+ # Delete
63
+ network.destroy
64
+ node.power('reboot')
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+ # Copyright 2018 Tristan Robert
3
+
4
+ # This file is part of Fog::Proxmox.
5
+
6
+ # Fog::Proxmox is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+
11
+ # Fog::Proxmox is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ # frozen_string_literal: true
20
+
21
+ # There are basically two modes of operation for these specs.
22
+ #
23
+ # 1. ENV[PVE_URL] exists: talk to an actual Proxmox server and record HTTP
24
+ # traffic in VCRs at "spec/debug" (credentials are read from the conventional
25
+ # environment variables: PVE_URL, PVE_USERNAME, PVE_PASSWORD)
26
+ # 2. otherwise (Travis etc.): use VCRs at "spec/fixtures/proxmox/#{service}"
27
+
28
+ require 'vcr'
29
+
30
+ class ProxmoxVCR
31
+ attr_reader :username,
32
+ :password,
33
+ :ticket,
34
+ :csrftoken,
35
+ :service,
36
+ :url,
37
+ :path,
38
+ :deadline
39
+
40
+ def initialize(options)
41
+ @vcr_directory = options[:vcr_directory]
42
+ @service_class = options[:service_class]
43
+ @connection_options = options[:connection_options] || {}
44
+
45
+ use_recorded = !ENV.key?('PVE_URL') || ENV['USE_VCR'] == 'true'
46
+
47
+ if use_recorded
48
+ Fog.interval = 0
49
+ @url = 'https://192.168.56.101:8006/api2/json'
50
+ else
51
+ @url = ENV['PVE_URL']
52
+ end
53
+
54
+ VCR.configure do |config|
55
+ config.allow_http_connections_when_no_cassette = true
56
+ if use_recorded
57
+ config.cassette_library_dir = ENV['SPEC_PATH'] || @vcr_directory
58
+ config.default_cassette_options = { record: :none }
59
+ config.default_cassette_options[:match_requests_on] = %i[method uri body]
60
+ else
61
+ config.cassette_library_dir = 'spec/debug'
62
+ config.default_cassette_options = { record: :all }
63
+ end
64
+ config.hook_into :webmock
65
+ config.debug_logger = nil # use $stderr to debug
66
+ end
67
+
68
+ # ignore enterprise proxy
69
+ @connection_options[:disable_proxy] = true if ENV['DISABLE_PROXY'] == 'true'
70
+
71
+ # ignore dev certificates on servers
72
+ @connection_options[:ssl_verify_peer] = false if ENV['SSL_VERIFY_PEER'] == 'false'
73
+
74
+ VCR.use_cassette('identity_ticket') do
75
+ Fog::Proxmox.clear_cache
76
+
77
+ @username = 'root@pam'
78
+ @password = 'proxmox01'
79
+ # ticket recorded in identity_ticket.yml
80
+ @ticket = 'PVE:root@pam:5AB4B38A::m5asyATnV66Htv+Z2QYNu+KuqZDsR1t3fCViuu0bTAWYfU85zdUY2dF9lJXa7soWlaZ3tZriTxC7d+nhMq9Fq8hCRlNG4ntsEw/CzeuS50phSvq4Phx1uZVV0KjkdcVP1X0J50e42Zfr5hzptiO+cD68OF2GG0GaboQ/MV+PA5IxojYojQe1w6yjjzreZhiZYy9zq1W5CW23yIt5pPWk9oFxLNUHU1I2+jqMCOeE40VhivCUEslusD0ZdoA3tkIWJ504rKQJrJIsq1zi6LIpGsktkbUPxHwSgnftQs0IPRuP5HGaz1g9FSW1IUpC8iCHqEV6re+Pb9Yz+G1G7+G0TQ=='
81
+ @csrftoken = '5AB4B38A:J+3XBmYsJqR7F+18kqbMhj6I/SM'
82
+
83
+ unless use_recorded
84
+ @username = ENV['PVE_USERNAME'] || options[:username] || @username
85
+ @password = ENV['PVE_PASSWORD'] || options[:password] || @password
86
+ @ticket = ENV['PVE_TICKET'] || options[:ticket] || @ticket
87
+ @csrftoken = ENV['PVE_CSRFTOKEN'] || options[:csrftoken] || @csrftoken
88
+ end
89
+
90
+ connection_params = {
91
+ pve_url: @url,
92
+ pve_username: @username,
93
+ pve_password: @password,
94
+ pve_ticket: @ticket,
95
+ pve_csrftoken: @csrftoken,
96
+ connection_options: @connection_options
97
+ }
98
+
99
+ @service = @service_class.new(connection_params)
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+ # Copyright 2018 Tristan Robert
3
+
4
+ # This file is part of Fog::Proxmox.
5
+
6
+ # Fog::Proxmox is free software: you can redistribute it and/or modify
7
+ # it under the terms of the GNU General Public License as published by
8
+ # the Free Software Foundation, either version 3 of the License, or
9
+ # (at your option) any later version.
10
+
11
+ # Fog::Proxmox is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ # GNU General Public License for more details.
15
+
16
+ # You should have received a copy of the GNU General Public License
17
+ # along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
18
+
19
+ # frozen_string_literal: true
20
+
21
+ require 'simplecov'
22
+
23
+ SimpleCov.start do
24
+ add_filter '/spec/'
25
+ add_group 'Core', 'lib/fog/proxmox'
26
+ add_group 'Identity', 'lib/fog/identity'
27
+ add_group 'Compute', 'lib/fog/compute'
28
+ end
29
+
30
+ require 'minitest/autorun'
31
+ require 'vcr'
32
+ require 'fog/core'
33
+ require 'fog/proxmox'
34
+
35
+ VCR.configure do |c|
36
+ c.cassette_library_dir = 'spec/fixtures/proxmox'
37
+ c.hook_into :webmock
38
+ c.debug_logger = nil # use $stderr to debug
39
+ end
metadata ADDED
@@ -0,0 +1,535 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fog-proxmox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Tristan Robert
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-07-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: debase
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: debride
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: fasterer
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: fastri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '5.11'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.11'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.11'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '12.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '12.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rcodetools
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.3'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.3'
139
+ - !ruby/object:Gem::Dependency
140
+ name: reek
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '4.7'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '4.7'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.7'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.7'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.55'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.55'
181
+ - !ruby/object:Gem::Dependency
182
+ name: ruby-debug-ide
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.6'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.6'
195
+ - !ruby/object:Gem::Dependency
196
+ name: simplecov
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: vcr
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '3.0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '3.0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: webmock
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '3.4'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '3.4'
237
+ - !ruby/object:Gem::Dependency
238
+ name: fog-core
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '1.45'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1.45'
251
+ - !ruby/object:Gem::Dependency
252
+ name: fog-json
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: '1.0'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: '1.0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: ipaddress
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '0.8'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '0.8'
279
+ description: This library can be used as a module for `fog`.
280
+ email:
281
+ - tristan.robert.44@gmail.com
282
+ executables:
283
+ - console
284
+ - setup
285
+ extensions: []
286
+ extra_rdoc_files: []
287
+ files:
288
+ - ".bundle/config"
289
+ - ".codeclimate.yml"
290
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
291
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
292
+ - ".gitignore"
293
+ - ".gitlab-ci.yml"
294
+ - ".rubocop.yml"
295
+ - ".ruby-gemset"
296
+ - ".solargraph.yml"
297
+ - ".travis.yml"
298
+ - ".vscode/launch.json"
299
+ - ".vscode/settings.json"
300
+ - ".vscode/tasks.json"
301
+ - CODE_OF_CONDUCT.md
302
+ - CONTRIBUTING.md
303
+ - CONTRIBUTORS.md
304
+ - Gemfile
305
+ - Gemfile.lock
306
+ - ISSUE_TEMPLATE.md
307
+ - LICENSE
308
+ - README.md
309
+ - Rakefile
310
+ - SUPPORT.md
311
+ - bin/console
312
+ - bin/setup
313
+ - docs/compute.md
314
+ - docs/connection_parameters.md
315
+ - docs/getting_started.md
316
+ - docs/identity.md
317
+ - examples/compute.rb
318
+ - examples/identity.rb
319
+ - fog-proxmox.gemspec
320
+ - fogproxmox.png
321
+ - lib/fog/compute/proxmox.rb
322
+ - lib/fog/compute/proxmox/models/container.rb
323
+ - lib/fog/compute/proxmox/models/container_config.rb
324
+ - lib/fog/compute/proxmox/models/containers.rb
325
+ - lib/fog/compute/proxmox/models/disk.rb
326
+ - lib/fog/compute/proxmox/models/disks.rb
327
+ - lib/fog/compute/proxmox/models/interface.rb
328
+ - lib/fog/compute/proxmox/models/interfaces.rb
329
+ - lib/fog/compute/proxmox/models/node.rb
330
+ - lib/fog/compute/proxmox/models/nodes.rb
331
+ - lib/fog/compute/proxmox/models/server.rb
332
+ - lib/fog/compute/proxmox/models/server_config.rb
333
+ - lib/fog/compute/proxmox/models/servers.rb
334
+ - lib/fog/compute/proxmox/models/snapshot.rb
335
+ - lib/fog/compute/proxmox/models/snapshots.rb
336
+ - lib/fog/compute/proxmox/models/storage.rb
337
+ - lib/fog/compute/proxmox/models/storages.rb
338
+ - lib/fog/compute/proxmox/models/task.rb
339
+ - lib/fog/compute/proxmox/models/tasks.rb
340
+ - lib/fog/compute/proxmox/models/volume.rb
341
+ - lib/fog/compute/proxmox/models/volumes.rb
342
+ - lib/fog/compute/proxmox/requests/action_server.rb
343
+ - lib/fog/compute/proxmox/requests/check_vmid.rb
344
+ - lib/fog/compute/proxmox/requests/clone_server.rb
345
+ - lib/fog/compute/proxmox/requests/create_backup.rb
346
+ - lib/fog/compute/proxmox/requests/create_server.rb
347
+ - lib/fog/compute/proxmox/requests/create_snapshot.rb
348
+ - lib/fog/compute/proxmox/requests/create_spice.rb
349
+ - lib/fog/compute/proxmox/requests/create_term.rb
350
+ - lib/fog/compute/proxmox/requests/create_vnc.rb
351
+ - lib/fog/compute/proxmox/requests/delete_server.rb
352
+ - lib/fog/compute/proxmox/requests/delete_snapshot.rb
353
+ - lib/fog/compute/proxmox/requests/delete_volume.rb
354
+ - lib/fog/compute/proxmox/requests/get_node.rb
355
+ - lib/fog/compute/proxmox/requests/get_server_config.rb
356
+ - lib/fog/compute/proxmox/requests/get_server_status.rb
357
+ - lib/fog/compute/proxmox/requests/get_snapshot.rb
358
+ - lib/fog/compute/proxmox/requests/get_storage.rb
359
+ - lib/fog/compute/proxmox/requests/get_task.rb
360
+ - lib/fog/compute/proxmox/requests/get_vnc.rb
361
+ - lib/fog/compute/proxmox/requests/get_volume.rb
362
+ - lib/fog/compute/proxmox/requests/list_nodes.rb
363
+ - lib/fog/compute/proxmox/requests/list_servers.rb
364
+ - lib/fog/compute/proxmox/requests/list_snapshots.rb
365
+ - lib/fog/compute/proxmox/requests/list_storages.rb
366
+ - lib/fog/compute/proxmox/requests/list_tasks.rb
367
+ - lib/fog/compute/proxmox/requests/list_volumes.rb
368
+ - lib/fog/compute/proxmox/requests/log_task.rb
369
+ - lib/fog/compute/proxmox/requests/migrate_server.rb
370
+ - lib/fog/compute/proxmox/requests/move_disk.rb
371
+ - lib/fog/compute/proxmox/requests/move_volume.rb
372
+ - lib/fog/compute/proxmox/requests/next_vmid.rb
373
+ - lib/fog/compute/proxmox/requests/resize_container.rb
374
+ - lib/fog/compute/proxmox/requests/resize_server.rb
375
+ - lib/fog/compute/proxmox/requests/rollback_snapshot.rb
376
+ - lib/fog/compute/proxmox/requests/status_task.rb
377
+ - lib/fog/compute/proxmox/requests/stop_task.rb
378
+ - lib/fog/compute/proxmox/requests/template_server.rb
379
+ - lib/fog/compute/proxmox/requests/update_server.rb
380
+ - lib/fog/compute/proxmox/requests/update_snapshot.rb
381
+ - lib/fog/identity/proxmox.rb
382
+ - lib/fog/identity/proxmox/models/activedirectory.rb
383
+ - lib/fog/identity/proxmox/models/domain.rb
384
+ - lib/fog/identity/proxmox/models/domains.rb
385
+ - lib/fog/identity/proxmox/models/group.rb
386
+ - lib/fog/identity/proxmox/models/groups.rb
387
+ - lib/fog/identity/proxmox/models/ldap.rb
388
+ - lib/fog/identity/proxmox/models/oath.rb
389
+ - lib/fog/identity/proxmox/models/pam.rb
390
+ - lib/fog/identity/proxmox/models/permission.rb
391
+ - lib/fog/identity/proxmox/models/permissions.rb
392
+ - lib/fog/identity/proxmox/models/pool.rb
393
+ - lib/fog/identity/proxmox/models/pools.rb
394
+ - lib/fog/identity/proxmox/models/principal.rb
395
+ - lib/fog/identity/proxmox/models/pve.rb
396
+ - lib/fog/identity/proxmox/models/role.rb
397
+ - lib/fog/identity/proxmox/models/roles.rb
398
+ - lib/fog/identity/proxmox/models/user.rb
399
+ - lib/fog/identity/proxmox/models/users.rb
400
+ - lib/fog/identity/proxmox/models/yubico.rb
401
+ - lib/fog/identity/proxmox/requests/add_permission.rb
402
+ - lib/fog/identity/proxmox/requests/change_password.rb
403
+ - lib/fog/identity/proxmox/requests/check_permissions.rb
404
+ - lib/fog/identity/proxmox/requests/create_domain.rb
405
+ - lib/fog/identity/proxmox/requests/create_group.rb
406
+ - lib/fog/identity/proxmox/requests/create_pool.rb
407
+ - lib/fog/identity/proxmox/requests/create_role.rb
408
+ - lib/fog/identity/proxmox/requests/create_user.rb
409
+ - lib/fog/identity/proxmox/requests/delete_domain.rb
410
+ - lib/fog/identity/proxmox/requests/delete_group.rb
411
+ - lib/fog/identity/proxmox/requests/delete_pool.rb
412
+ - lib/fog/identity/proxmox/requests/delete_role.rb
413
+ - lib/fog/identity/proxmox/requests/delete_user.rb
414
+ - lib/fog/identity/proxmox/requests/get_domain.rb
415
+ - lib/fog/identity/proxmox/requests/get_group.rb
416
+ - lib/fog/identity/proxmox/requests/get_pool.rb
417
+ - lib/fog/identity/proxmox/requests/get_role.rb
418
+ - lib/fog/identity/proxmox/requests/get_user.rb
419
+ - lib/fog/identity/proxmox/requests/list_domains.rb
420
+ - lib/fog/identity/proxmox/requests/list_groups.rb
421
+ - lib/fog/identity/proxmox/requests/list_permissions.rb
422
+ - lib/fog/identity/proxmox/requests/list_pools.rb
423
+ - lib/fog/identity/proxmox/requests/list_roles.rb
424
+ - lib/fog/identity/proxmox/requests/list_users.rb
425
+ - lib/fog/identity/proxmox/requests/read_version.rb
426
+ - lib/fog/identity/proxmox/requests/remove_permission.rb
427
+ - lib/fog/identity/proxmox/requests/update_domain.rb
428
+ - lib/fog/identity/proxmox/requests/update_group.rb
429
+ - lib/fog/identity/proxmox/requests/update_pool.rb
430
+ - lib/fog/identity/proxmox/requests/update_role.rb
431
+ - lib/fog/identity/proxmox/requests/update_user.rb
432
+ - lib/fog/network/proxmox.rb
433
+ - lib/fog/network/proxmox/models/network.rb
434
+ - lib/fog/network/proxmox/models/networks.rb
435
+ - lib/fog/network/proxmox/models/node.rb
436
+ - lib/fog/network/proxmox/models/nodes.rb
437
+ - lib/fog/network/proxmox/requests/create_network.rb
438
+ - lib/fog/network/proxmox/requests/delete_network.rb
439
+ - lib/fog/network/proxmox/requests/get_network.rb
440
+ - lib/fog/network/proxmox/requests/get_node.rb
441
+ - lib/fog/network/proxmox/requests/list_networks.rb
442
+ - lib/fog/network/proxmox/requests/list_nodes.rb
443
+ - lib/fog/network/proxmox/requests/power_node.rb
444
+ - lib/fog/network/proxmox/requests/update_network.rb
445
+ - lib/fog/proxmox.rb
446
+ - lib/fog/proxmox/core.rb
447
+ - lib/fog/proxmox/errors.rb
448
+ - lib/fog/proxmox/hash.rb
449
+ - lib/fog/proxmox/helpers/controller_helper.rb
450
+ - lib/fog/proxmox/helpers/cpu_helper.rb
451
+ - lib/fog/proxmox/helpers/disk_helper.rb
452
+ - lib/fog/proxmox/helpers/nic_helper.rb
453
+ - lib/fog/proxmox/json.rb
454
+ - lib/fog/proxmox/models/collection.rb
455
+ - lib/fog/proxmox/models/model.rb
456
+ - lib/fog/proxmox/variables.rb
457
+ - lib/fog/proxmox/version.rb
458
+ - lib/fog/storage/proxmox.rb
459
+ - spec/compute_spec.rb
460
+ - spec/fixtures/proxmox/compute/containers.yml
461
+ - spec/fixtures/proxmox/compute/identity_ticket.yml
462
+ - spec/fixtures/proxmox/compute/servers.yml
463
+ - spec/fixtures/proxmox/compute/snapshots.yml
464
+ - spec/fixtures/proxmox/compute/storages.yml
465
+ - spec/fixtures/proxmox/compute/tasks.yml
466
+ - spec/fixtures/proxmox/identity/auth.yml
467
+ - spec/fixtures/proxmox/identity/domains.yml
468
+ - spec/fixtures/proxmox/identity/groups.yml
469
+ - spec/fixtures/proxmox/identity/identity_ticket.yml
470
+ - spec/fixtures/proxmox/identity/permissions.yml
471
+ - spec/fixtures/proxmox/identity/pools.yml
472
+ - spec/fixtures/proxmox/identity/read_version.yml
473
+ - spec/fixtures/proxmox/identity/roles.yml
474
+ - spec/fixtures/proxmox/identity/users.yml
475
+ - spec/fixtures/proxmox/network/identity_ticket.yml
476
+ - spec/fixtures/proxmox/network/networks.yml
477
+ - spec/helpers/controller_helper_spec.rb
478
+ - spec/helpers/cpu_helper_spec.rb
479
+ - spec/helpers/disk_helper_spec.rb
480
+ - spec/helpers/nic_helper_spec.rb
481
+ - spec/identity_spec.rb
482
+ - spec/network_spec.rb
483
+ - spec/proxmox_vcr.rb
484
+ - spec/spec_helper.rb
485
+ homepage: http://github.com/fog/fog-proxmox
486
+ licenses:
487
+ - GPL-3.0
488
+ metadata: {}
489
+ post_install_message:
490
+ rdoc_options: []
491
+ require_paths:
492
+ - lib
493
+ required_ruby_version: !ruby/object:Gem::Requirement
494
+ requirements:
495
+ - - ">="
496
+ - !ruby/object:Gem::Version
497
+ version: '2.3'
498
+ required_rubygems_version: !ruby/object:Gem::Requirement
499
+ requirements:
500
+ - - ">="
501
+ - !ruby/object:Gem::Version
502
+ version: '0'
503
+ requirements: []
504
+ rubyforge_project:
505
+ rubygems_version: 2.5.2.3
506
+ signing_key:
507
+ specification_version: 4
508
+ summary: Module for the 'Fog' gem to support Proxmox VE
509
+ test_files:
510
+ - spec/compute_spec.rb
511
+ - spec/fixtures/proxmox/compute/containers.yml
512
+ - spec/fixtures/proxmox/compute/identity_ticket.yml
513
+ - spec/fixtures/proxmox/compute/servers.yml
514
+ - spec/fixtures/proxmox/compute/snapshots.yml
515
+ - spec/fixtures/proxmox/compute/storages.yml
516
+ - spec/fixtures/proxmox/compute/tasks.yml
517
+ - spec/fixtures/proxmox/identity/auth.yml
518
+ - spec/fixtures/proxmox/identity/domains.yml
519
+ - spec/fixtures/proxmox/identity/groups.yml
520
+ - spec/fixtures/proxmox/identity/identity_ticket.yml
521
+ - spec/fixtures/proxmox/identity/permissions.yml
522
+ - spec/fixtures/proxmox/identity/pools.yml
523
+ - spec/fixtures/proxmox/identity/read_version.yml
524
+ - spec/fixtures/proxmox/identity/roles.yml
525
+ - spec/fixtures/proxmox/identity/users.yml
526
+ - spec/fixtures/proxmox/network/identity_ticket.yml
527
+ - spec/fixtures/proxmox/network/networks.yml
528
+ - spec/helpers/controller_helper_spec.rb
529
+ - spec/helpers/cpu_helper_spec.rb
530
+ - spec/helpers/disk_helper_spec.rb
531
+ - spec/helpers/nic_helper_spec.rb
532
+ - spec/identity_spec.rb
533
+ - spec/network_spec.rb
534
+ - spec/proxmox_vcr.rb
535
+ - spec/spec_helper.rb