fog-proxmox 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +4 -0
  3. data/.codeclimate.yml +14 -0
  4. data/.github/CODE_OF_CONDUCT.md +74 -0
  5. data/.github/CONTRIBUTING.md +20 -0
  6. data/.github/CONTRIBUTORS.md +9 -0
  7. data/.github/FUNDING.yml +12 -0
  8. data/.github/ISSUE_TEMPLATE.md +43 -0
  9. data/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  10. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  11. data/.github/SUPPORT.md +9 -0
  12. data/.github/fogproxmox.png +0 -0
  13. data/.github/workflows/ci.yml +79 -0
  14. data/.gitignore +8 -0
  15. data/.rubocop.yml +13 -0
  16. data/.ruby-gemset +1 -0
  17. data/.solargraph.yml +10 -0
  18. data/.vscode/launch.json +96 -0
  19. data/.vscode/settings.json +45 -0
  20. data/.vscode/tasks.json +27 -0
  21. data/Gemfile +23 -0
  22. data/LICENSE +674 -0
  23. data/README.md +79 -0
  24. data/Rakefile +58 -0
  25. data/docs/compute.md +858 -0
  26. data/docs/connection_parameters.md +45 -0
  27. data/docs/getting_started.md +53 -0
  28. data/docs/identity.md +357 -0
  29. data/examples/compute.rb +276 -0
  30. data/examples/identity.rb +190 -0
  31. data/fog-proxmox.gemspec +63 -0
  32. data/lib/fog/compute/proxmox.rb +126 -0
  33. data/lib/fog/compute/proxmox/models/disk.rb +76 -0
  34. data/lib/fog/compute/proxmox/models/disks.rb +51 -0
  35. data/lib/fog/compute/proxmox/models/interface.rb +52 -0
  36. data/lib/fog/compute/proxmox/models/interfaces.rb +44 -0
  37. data/lib/fog/compute/proxmox/models/node.rb +95 -0
  38. data/lib/fog/compute/proxmox/models/nodes.rb +39 -0
  39. data/lib/fog/compute/proxmox/models/server.rb +254 -0
  40. data/lib/fog/compute/proxmox/models/server_config.rb +148 -0
  41. data/lib/fog/compute/proxmox/models/servers.rb +80 -0
  42. data/lib/fog/compute/proxmox/models/snapshot.rb +83 -0
  43. data/lib/fog/compute/proxmox/models/snapshots.rb +47 -0
  44. data/lib/fog/compute/proxmox/models/storage.rb +64 -0
  45. data/lib/fog/compute/proxmox/models/storages.rb +51 -0
  46. data/lib/fog/compute/proxmox/models/task.rb +79 -0
  47. data/lib/fog/compute/proxmox/models/tasks.rb +64 -0
  48. data/lib/fog/compute/proxmox/models/volume.rb +61 -0
  49. data/lib/fog/compute/proxmox/models/volumes.rb +58 -0
  50. data/lib/fog/compute/proxmox/requests/action_server.rb +45 -0
  51. data/lib/fog/compute/proxmox/requests/clone_server.rb +44 -0
  52. data/lib/fog/compute/proxmox/requests/create_backup.rb +42 -0
  53. data/lib/fog/compute/proxmox/requests/create_server.rb +43 -0
  54. data/lib/fog/compute/proxmox/requests/create_snapshot.rb +46 -0
  55. data/lib/fog/compute/proxmox/requests/create_spice.rb +44 -0
  56. data/lib/fog/compute/proxmox/requests/create_term.rb +44 -0
  57. data/lib/fog/compute/proxmox/requests/create_vnc.rb +44 -0
  58. data/lib/fog/compute/proxmox/requests/delete_server.rb +45 -0
  59. data/lib/fog/compute/proxmox/requests/delete_snapshot.rb +47 -0
  60. data/lib/fog/compute/proxmox/requests/delete_volume.rb +40 -0
  61. data/lib/fog/compute/proxmox/requests/get_node_statistics.rb +44 -0
  62. data/lib/fog/compute/proxmox/requests/get_server_config.rb +60 -0
  63. data/lib/fog/compute/proxmox/requests/get_server_status.rb +63 -0
  64. data/lib/fog/compute/proxmox/requests/get_snapshot_config.rb +44 -0
  65. data/lib/fog/compute/proxmox/requests/get_task.rb +41 -0
  66. data/lib/fog/compute/proxmox/requests/get_vnc.rb +44 -0
  67. data/lib/fog/compute/proxmox/requests/get_volume.rb +42 -0
  68. data/lib/fog/compute/proxmox/requests/list_nodes.rb +48 -0
  69. data/lib/fog/compute/proxmox/requests/list_servers.rb +113 -0
  70. data/lib/fog/compute/proxmox/requests/list_snapshots.rb +66 -0
  71. data/lib/fog/compute/proxmox/requests/list_storages.rb +46 -0
  72. data/lib/fog/compute/proxmox/requests/list_tasks.rb +44 -0
  73. data/lib/fog/compute/proxmox/requests/list_volumes.rb +44 -0
  74. data/lib/fog/compute/proxmox/requests/log_task.rb +44 -0
  75. data/lib/fog/compute/proxmox/requests/migrate_server.rb +44 -0
  76. data/lib/fog/compute/proxmox/requests/move_disk.rb +43 -0
  77. data/lib/fog/compute/proxmox/requests/move_volume.rb +43 -0
  78. data/lib/fog/compute/proxmox/requests/next_vmid.rb +42 -0
  79. data/lib/fog/compute/proxmox/requests/resize_container.rb +43 -0
  80. data/lib/fog/compute/proxmox/requests/resize_server.rb +43 -0
  81. data/lib/fog/compute/proxmox/requests/rollback_snapshot.rb +48 -0
  82. data/lib/fog/compute/proxmox/requests/status_task.rb +41 -0
  83. data/lib/fog/compute/proxmox/requests/stop_task.rb +41 -0
  84. data/lib/fog/compute/proxmox/requests/template_server.rb +44 -0
  85. data/lib/fog/compute/proxmox/requests/update_server.rb +44 -0
  86. data/lib/fog/compute/proxmox/requests/update_snapshot.rb +45 -0
  87. data/lib/fog/identity/proxmox.rb +130 -0
  88. data/lib/fog/identity/proxmox/models/domain.rb +65 -0
  89. data/lib/fog/identity/proxmox/models/domain_type.rb +48 -0
  90. data/lib/fog/identity/proxmox/models/domains.rb +45 -0
  91. data/lib/fog/identity/proxmox/models/group.rb +47 -0
  92. data/lib/fog/identity/proxmox/models/groups.rb +44 -0
  93. data/lib/fog/identity/proxmox/models/permission.rb +65 -0
  94. data/lib/fog/identity/proxmox/models/permissions.rb +44 -0
  95. data/lib/fog/identity/proxmox/models/pool.rb +89 -0
  96. data/lib/fog/identity/proxmox/models/pools.rb +46 -0
  97. data/lib/fog/identity/proxmox/models/principal.rb +42 -0
  98. data/lib/fog/identity/proxmox/models/role.rb +48 -0
  99. data/lib/fog/identity/proxmox/models/roles.rb +44 -0
  100. data/lib/fog/identity/proxmox/models/user.rb +60 -0
  101. data/lib/fog/identity/proxmox/models/users.rb +44 -0
  102. data/lib/fog/identity/proxmox/requests/change_password.rb +41 -0
  103. data/lib/fog/identity/proxmox/requests/check_permissions.rb +41 -0
  104. data/lib/fog/identity/proxmox/requests/create_domain.rb +40 -0
  105. data/lib/fog/identity/proxmox/requests/create_group.rb +40 -0
  106. data/lib/fog/identity/proxmox/requests/create_pool.rb +40 -0
  107. data/lib/fog/identity/proxmox/requests/create_role.rb +40 -0
  108. data/lib/fog/identity/proxmox/requests/create_user.rb +40 -0
  109. data/lib/fog/identity/proxmox/requests/delete_domain.rb +40 -0
  110. data/lib/fog/identity/proxmox/requests/delete_group.rb +40 -0
  111. data/lib/fog/identity/proxmox/requests/delete_pool.rb +39 -0
  112. data/lib/fog/identity/proxmox/requests/delete_role.rb +40 -0
  113. data/lib/fog/identity/proxmox/requests/delete_user.rb +39 -0
  114. data/lib/fog/identity/proxmox/requests/get_domain.rb +41 -0
  115. data/lib/fog/identity/proxmox/requests/get_group.rb +41 -0
  116. data/lib/fog/identity/proxmox/requests/get_pool.rb +41 -0
  117. data/lib/fog/identity/proxmox/requests/get_role.rb +41 -0
  118. data/lib/fog/identity/proxmox/requests/get_user.rb +40 -0
  119. data/lib/fog/identity/proxmox/requests/list_domains.rb +41 -0
  120. data/lib/fog/identity/proxmox/requests/list_groups.rb +41 -0
  121. data/lib/fog/identity/proxmox/requests/list_permissions.rb +41 -0
  122. data/lib/fog/identity/proxmox/requests/list_pools.rb +41 -0
  123. data/lib/fog/identity/proxmox/requests/list_roles.rb +40 -0
  124. data/lib/fog/identity/proxmox/requests/list_users.rb +42 -0
  125. data/lib/fog/identity/proxmox/requests/read_version.rb +39 -0
  126. data/lib/fog/identity/proxmox/requests/update_domain.rb +41 -0
  127. data/lib/fog/identity/proxmox/requests/update_group.rb +40 -0
  128. data/lib/fog/identity/proxmox/requests/update_permissions.rb +41 -0
  129. data/lib/fog/identity/proxmox/requests/update_pool.rb +41 -0
  130. data/lib/fog/identity/proxmox/requests/update_role.rb +41 -0
  131. data/lib/fog/identity/proxmox/requests/update_user.rb +41 -0
  132. data/lib/fog/network/proxmox.rb +83 -0
  133. data/lib/fog/network/proxmox/models/network.rb +76 -0
  134. data/lib/fog/network/proxmox/models/networks.rb +48 -0
  135. data/lib/fog/network/proxmox/models/node.rb +74 -0
  136. data/lib/fog/network/proxmox/models/nodes.rb +39 -0
  137. data/lib/fog/network/proxmox/requests/create_network.rb +41 -0
  138. data/lib/fog/network/proxmox/requests/delete_network.rb +42 -0
  139. data/lib/fog/network/proxmox/requests/get_network.rb +43 -0
  140. data/lib/fog/network/proxmox/requests/get_node.rb +41 -0
  141. data/lib/fog/network/proxmox/requests/list_networks.rb +43 -0
  142. data/lib/fog/network/proxmox/requests/list_nodes.rb +42 -0
  143. data/lib/fog/network/proxmox/requests/power_node.rb +43 -0
  144. data/lib/fog/network/proxmox/requests/update_network.rb +42 -0
  145. data/lib/fog/proxmox.rb +115 -0
  146. data/lib/fog/proxmox/attributes.rb +33 -0
  147. data/lib/fog/proxmox/core.rb +135 -0
  148. data/lib/fog/proxmox/errors.rb +64 -0
  149. data/lib/fog/proxmox/hash.rb +39 -0
  150. data/lib/fog/proxmox/helpers/controller_helper.rb +64 -0
  151. data/lib/fog/proxmox/helpers/cpu_helper.rb +42 -0
  152. data/lib/fog/proxmox/helpers/disk_helper.rb +159 -0
  153. data/lib/fog/proxmox/helpers/ip_helper.rb +100 -0
  154. data/lib/fog/proxmox/helpers/nic_helper.rb +115 -0
  155. data/lib/fog/proxmox/json.rb +32 -0
  156. data/lib/fog/proxmox/string.rb +31 -0
  157. data/lib/fog/proxmox/variables.rb +40 -0
  158. data/lib/fog/proxmox/version.rb +24 -0
  159. data/lib/fog/storage/proxmox.rb +29 -0
  160. data/spec/compute_spec.rb +446 -0
  161. data/spec/fixtures/proxmox/compute/containers.yml +12737 -0
  162. data/spec/fixtures/proxmox/compute/identity_ticket.yml +40 -0
  163. data/spec/fixtures/proxmox/compute/nodes.yml +121 -0
  164. data/spec/fixtures/proxmox/compute/servers.yml +24679 -0
  165. data/spec/fixtures/proxmox/compute/snapshots.yml +3321 -0
  166. data/spec/fixtures/proxmox/compute/storages.yml +159 -0
  167. data/spec/fixtures/proxmox/compute/tasks.yml +685 -0
  168. data/spec/fixtures/proxmox/identity/auth.yml +44 -0
  169. data/spec/fixtures/proxmox/identity/domains.yml +701 -0
  170. data/spec/fixtures/proxmox/identity/groups.yml +363 -0
  171. data/spec/fixtures/proxmox/identity/identity_ticket.yml +40 -0
  172. data/spec/fixtures/proxmox/identity/permissions.yml +803 -0
  173. data/spec/fixtures/proxmox/identity/pools.yml +1191 -0
  174. data/spec/fixtures/proxmox/identity/read_version.yml +42 -0
  175. data/spec/fixtures/proxmox/identity/renew.yml +40 -0
  176. data/spec/fixtures/proxmox/identity/roles.yml +363 -0
  177. data/spec/fixtures/proxmox/identity/users.yml +763 -0
  178. data/spec/fixtures/proxmox/network/identity_ticket.yml +40 -0
  179. data/spec/fixtures/proxmox/network/networks.yml +372 -0
  180. data/spec/fixtures/proxmox/pve.home +34 -0
  181. data/spec/hash_spec.rb +42 -0
  182. data/spec/helpers/controller_helper_spec.rb +145 -0
  183. data/spec/helpers/cpu_helper_spec.rb +70 -0
  184. data/spec/helpers/disk_helper_spec.rb +210 -0
  185. data/spec/helpers/ip_helper_spec.rb +160 -0
  186. data/spec/helpers/nic_helper_spec.rb +136 -0
  187. data/spec/identity_spec.rb +322 -0
  188. data/spec/network_spec.rb +67 -0
  189. data/spec/proxmox_vcr.rb +95 -0
  190. data/spec/spec_helper.rb +40 -0
  191. metadata +547 -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::Proxmox::Network do
24
+ before :all do
25
+ @proxmox_vcr = ProxmoxVCR.new(
26
+ vcr_directory: 'spec/fixtures/proxmox/network',
27
+ service_class: Fog::Proxmox::Network
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.get 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,95 @@
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_credentials
76
+
77
+ @username = 'root@pam'
78
+ @password = 'proxmox01'
79
+
80
+ unless use_recorded
81
+ @username = ENV['PVE_USERNAME'] || options[:username] || @username
82
+ @password = ENV['PVE_PASSWORD'] || options[:password] || @password
83
+ end
84
+
85
+ connection_params = {
86
+ pve_url: @url,
87
+ pve_username: @username,
88
+ pve_password: @password,
89
+ connection_options: @connection_options
90
+ }
91
+
92
+ @service = @service_class.new(connection_params)
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,40 @@
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
+ add_group 'Network', 'lib/fog/network'
29
+ end
30
+
31
+ require 'minitest/autorun'
32
+ require 'vcr'
33
+ require 'fog/core'
34
+ require 'fog/proxmox'
35
+
36
+ VCR.configure do |c|
37
+ c.cassette_library_dir = 'spec/fixtures/proxmox'
38
+ c.hook_into :webmock
39
+ c.debug_logger = nil # use $stderr to debug
40
+ end
metadata ADDED
@@ -0,0 +1,547 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fog-proxmox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.13.0
5
+ platform: ruby
6
+ authors:
7
+ - Tristan Robert
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-22 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: '2.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
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.17'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '='
207
+ - !ruby/object:Gem::Version
208
+ version: '0.17'
209
+ - !ruby/object:Gem::Dependency
210
+ name: vcr
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '4.0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '4.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.5'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '3.5'
237
+ - !ruby/object:Gem::Dependency
238
+ name: bundler-audit
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '0.6'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '0.6'
251
+ - !ruby/object:Gem::Dependency
252
+ name: fog-core
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: '2.1'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: '2.1'
265
+ - !ruby/object:Gem::Dependency
266
+ name: fog-json
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '1.2'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '1.2'
279
+ - !ruby/object:Gem::Dependency
280
+ name: ipaddress
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - "~>"
284
+ - !ruby/object:Gem::Version
285
+ version: '0.8'
286
+ type: :runtime
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - "~>"
291
+ - !ruby/object:Gem::Version
292
+ version: '0.8'
293
+ description: This library can be used as a module for `fog`.
294
+ email:
295
+ - tristan.robert.44@gmail.com
296
+ executables:
297
+ - console
298
+ - setup
299
+ extensions: []
300
+ extra_rdoc_files: []
301
+ files:
302
+ - ".bundle/config"
303
+ - ".codeclimate.yml"
304
+ - ".github/CODE_OF_CONDUCT.md"
305
+ - ".github/CONTRIBUTING.md"
306
+ - ".github/CONTRIBUTORS.md"
307
+ - ".github/FUNDING.yml"
308
+ - ".github/ISSUE_TEMPLATE.md"
309
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
310
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
311
+ - ".github/SUPPORT.md"
312
+ - ".github/fogproxmox.png"
313
+ - ".github/workflows/ci.yml"
314
+ - ".gitignore"
315
+ - ".rubocop.yml"
316
+ - ".ruby-gemset"
317
+ - ".solargraph.yml"
318
+ - ".vscode/launch.json"
319
+ - ".vscode/settings.json"
320
+ - ".vscode/tasks.json"
321
+ - Gemfile
322
+ - LICENSE
323
+ - README.md
324
+ - Rakefile
325
+ - bin/console
326
+ - bin/setup
327
+ - docs/compute.md
328
+ - docs/connection_parameters.md
329
+ - docs/getting_started.md
330
+ - docs/identity.md
331
+ - examples/compute.rb
332
+ - examples/identity.rb
333
+ - fog-proxmox.gemspec
334
+ - lib/fog/compute/proxmox.rb
335
+ - lib/fog/compute/proxmox/models/disk.rb
336
+ - lib/fog/compute/proxmox/models/disks.rb
337
+ - lib/fog/compute/proxmox/models/interface.rb
338
+ - lib/fog/compute/proxmox/models/interfaces.rb
339
+ - lib/fog/compute/proxmox/models/node.rb
340
+ - lib/fog/compute/proxmox/models/nodes.rb
341
+ - lib/fog/compute/proxmox/models/server.rb
342
+ - lib/fog/compute/proxmox/models/server_config.rb
343
+ - lib/fog/compute/proxmox/models/servers.rb
344
+ - lib/fog/compute/proxmox/models/snapshot.rb
345
+ - lib/fog/compute/proxmox/models/snapshots.rb
346
+ - lib/fog/compute/proxmox/models/storage.rb
347
+ - lib/fog/compute/proxmox/models/storages.rb
348
+ - lib/fog/compute/proxmox/models/task.rb
349
+ - lib/fog/compute/proxmox/models/tasks.rb
350
+ - lib/fog/compute/proxmox/models/volume.rb
351
+ - lib/fog/compute/proxmox/models/volumes.rb
352
+ - lib/fog/compute/proxmox/requests/action_server.rb
353
+ - lib/fog/compute/proxmox/requests/clone_server.rb
354
+ - lib/fog/compute/proxmox/requests/create_backup.rb
355
+ - lib/fog/compute/proxmox/requests/create_server.rb
356
+ - lib/fog/compute/proxmox/requests/create_snapshot.rb
357
+ - lib/fog/compute/proxmox/requests/create_spice.rb
358
+ - lib/fog/compute/proxmox/requests/create_term.rb
359
+ - lib/fog/compute/proxmox/requests/create_vnc.rb
360
+ - lib/fog/compute/proxmox/requests/delete_server.rb
361
+ - lib/fog/compute/proxmox/requests/delete_snapshot.rb
362
+ - lib/fog/compute/proxmox/requests/delete_volume.rb
363
+ - lib/fog/compute/proxmox/requests/get_node_statistics.rb
364
+ - lib/fog/compute/proxmox/requests/get_server_config.rb
365
+ - lib/fog/compute/proxmox/requests/get_server_status.rb
366
+ - lib/fog/compute/proxmox/requests/get_snapshot_config.rb
367
+ - lib/fog/compute/proxmox/requests/get_task.rb
368
+ - lib/fog/compute/proxmox/requests/get_vnc.rb
369
+ - lib/fog/compute/proxmox/requests/get_volume.rb
370
+ - lib/fog/compute/proxmox/requests/list_nodes.rb
371
+ - lib/fog/compute/proxmox/requests/list_servers.rb
372
+ - lib/fog/compute/proxmox/requests/list_snapshots.rb
373
+ - lib/fog/compute/proxmox/requests/list_storages.rb
374
+ - lib/fog/compute/proxmox/requests/list_tasks.rb
375
+ - lib/fog/compute/proxmox/requests/list_volumes.rb
376
+ - lib/fog/compute/proxmox/requests/log_task.rb
377
+ - lib/fog/compute/proxmox/requests/migrate_server.rb
378
+ - lib/fog/compute/proxmox/requests/move_disk.rb
379
+ - lib/fog/compute/proxmox/requests/move_volume.rb
380
+ - lib/fog/compute/proxmox/requests/next_vmid.rb
381
+ - lib/fog/compute/proxmox/requests/resize_container.rb
382
+ - lib/fog/compute/proxmox/requests/resize_server.rb
383
+ - lib/fog/compute/proxmox/requests/rollback_snapshot.rb
384
+ - lib/fog/compute/proxmox/requests/status_task.rb
385
+ - lib/fog/compute/proxmox/requests/stop_task.rb
386
+ - lib/fog/compute/proxmox/requests/template_server.rb
387
+ - lib/fog/compute/proxmox/requests/update_server.rb
388
+ - lib/fog/compute/proxmox/requests/update_snapshot.rb
389
+ - lib/fog/identity/proxmox.rb
390
+ - lib/fog/identity/proxmox/models/domain.rb
391
+ - lib/fog/identity/proxmox/models/domain_type.rb
392
+ - lib/fog/identity/proxmox/models/domains.rb
393
+ - lib/fog/identity/proxmox/models/group.rb
394
+ - lib/fog/identity/proxmox/models/groups.rb
395
+ - lib/fog/identity/proxmox/models/permission.rb
396
+ - lib/fog/identity/proxmox/models/permissions.rb
397
+ - lib/fog/identity/proxmox/models/pool.rb
398
+ - lib/fog/identity/proxmox/models/pools.rb
399
+ - lib/fog/identity/proxmox/models/principal.rb
400
+ - lib/fog/identity/proxmox/models/role.rb
401
+ - lib/fog/identity/proxmox/models/roles.rb
402
+ - lib/fog/identity/proxmox/models/user.rb
403
+ - lib/fog/identity/proxmox/models/users.rb
404
+ - lib/fog/identity/proxmox/requests/change_password.rb
405
+ - lib/fog/identity/proxmox/requests/check_permissions.rb
406
+ - lib/fog/identity/proxmox/requests/create_domain.rb
407
+ - lib/fog/identity/proxmox/requests/create_group.rb
408
+ - lib/fog/identity/proxmox/requests/create_pool.rb
409
+ - lib/fog/identity/proxmox/requests/create_role.rb
410
+ - lib/fog/identity/proxmox/requests/create_user.rb
411
+ - lib/fog/identity/proxmox/requests/delete_domain.rb
412
+ - lib/fog/identity/proxmox/requests/delete_group.rb
413
+ - lib/fog/identity/proxmox/requests/delete_pool.rb
414
+ - lib/fog/identity/proxmox/requests/delete_role.rb
415
+ - lib/fog/identity/proxmox/requests/delete_user.rb
416
+ - lib/fog/identity/proxmox/requests/get_domain.rb
417
+ - lib/fog/identity/proxmox/requests/get_group.rb
418
+ - lib/fog/identity/proxmox/requests/get_pool.rb
419
+ - lib/fog/identity/proxmox/requests/get_role.rb
420
+ - lib/fog/identity/proxmox/requests/get_user.rb
421
+ - lib/fog/identity/proxmox/requests/list_domains.rb
422
+ - lib/fog/identity/proxmox/requests/list_groups.rb
423
+ - lib/fog/identity/proxmox/requests/list_permissions.rb
424
+ - lib/fog/identity/proxmox/requests/list_pools.rb
425
+ - lib/fog/identity/proxmox/requests/list_roles.rb
426
+ - lib/fog/identity/proxmox/requests/list_users.rb
427
+ - lib/fog/identity/proxmox/requests/read_version.rb
428
+ - lib/fog/identity/proxmox/requests/update_domain.rb
429
+ - lib/fog/identity/proxmox/requests/update_group.rb
430
+ - lib/fog/identity/proxmox/requests/update_permissions.rb
431
+ - lib/fog/identity/proxmox/requests/update_pool.rb
432
+ - lib/fog/identity/proxmox/requests/update_role.rb
433
+ - lib/fog/identity/proxmox/requests/update_user.rb
434
+ - lib/fog/network/proxmox.rb
435
+ - lib/fog/network/proxmox/models/network.rb
436
+ - lib/fog/network/proxmox/models/networks.rb
437
+ - lib/fog/network/proxmox/models/node.rb
438
+ - lib/fog/network/proxmox/models/nodes.rb
439
+ - lib/fog/network/proxmox/requests/create_network.rb
440
+ - lib/fog/network/proxmox/requests/delete_network.rb
441
+ - lib/fog/network/proxmox/requests/get_network.rb
442
+ - lib/fog/network/proxmox/requests/get_node.rb
443
+ - lib/fog/network/proxmox/requests/list_networks.rb
444
+ - lib/fog/network/proxmox/requests/list_nodes.rb
445
+ - lib/fog/network/proxmox/requests/power_node.rb
446
+ - lib/fog/network/proxmox/requests/update_network.rb
447
+ - lib/fog/proxmox.rb
448
+ - lib/fog/proxmox/attributes.rb
449
+ - lib/fog/proxmox/core.rb
450
+ - lib/fog/proxmox/errors.rb
451
+ - lib/fog/proxmox/hash.rb
452
+ - lib/fog/proxmox/helpers/controller_helper.rb
453
+ - lib/fog/proxmox/helpers/cpu_helper.rb
454
+ - lib/fog/proxmox/helpers/disk_helper.rb
455
+ - lib/fog/proxmox/helpers/ip_helper.rb
456
+ - lib/fog/proxmox/helpers/nic_helper.rb
457
+ - lib/fog/proxmox/json.rb
458
+ - lib/fog/proxmox/string.rb
459
+ - lib/fog/proxmox/variables.rb
460
+ - lib/fog/proxmox/version.rb
461
+ - lib/fog/storage/proxmox.rb
462
+ - spec/compute_spec.rb
463
+ - spec/fixtures/proxmox/compute/containers.yml
464
+ - spec/fixtures/proxmox/compute/identity_ticket.yml
465
+ - spec/fixtures/proxmox/compute/nodes.yml
466
+ - spec/fixtures/proxmox/compute/servers.yml
467
+ - spec/fixtures/proxmox/compute/snapshots.yml
468
+ - spec/fixtures/proxmox/compute/storages.yml
469
+ - spec/fixtures/proxmox/compute/tasks.yml
470
+ - spec/fixtures/proxmox/identity/auth.yml
471
+ - spec/fixtures/proxmox/identity/domains.yml
472
+ - spec/fixtures/proxmox/identity/groups.yml
473
+ - spec/fixtures/proxmox/identity/identity_ticket.yml
474
+ - spec/fixtures/proxmox/identity/permissions.yml
475
+ - spec/fixtures/proxmox/identity/pools.yml
476
+ - spec/fixtures/proxmox/identity/read_version.yml
477
+ - spec/fixtures/proxmox/identity/renew.yml
478
+ - spec/fixtures/proxmox/identity/roles.yml
479
+ - spec/fixtures/proxmox/identity/users.yml
480
+ - spec/fixtures/proxmox/network/identity_ticket.yml
481
+ - spec/fixtures/proxmox/network/networks.yml
482
+ - spec/fixtures/proxmox/pve.home
483
+ - spec/hash_spec.rb
484
+ - spec/helpers/controller_helper_spec.rb
485
+ - spec/helpers/cpu_helper_spec.rb
486
+ - spec/helpers/disk_helper_spec.rb
487
+ - spec/helpers/ip_helper_spec.rb
488
+ - spec/helpers/nic_helper_spec.rb
489
+ - spec/identity_spec.rb
490
+ - spec/network_spec.rb
491
+ - spec/proxmox_vcr.rb
492
+ - spec/spec_helper.rb
493
+ homepage: https://github.com/fog/fog-proxmox
494
+ licenses:
495
+ - GPL-3.0
496
+ metadata: {}
497
+ post_install_message:
498
+ rdoc_options: []
499
+ require_paths:
500
+ - lib
501
+ required_ruby_version: !ruby/object:Gem::Requirement
502
+ requirements:
503
+ - - ">="
504
+ - !ruby/object:Gem::Version
505
+ version: '2.5'
506
+ required_rubygems_version: !ruby/object:Gem::Requirement
507
+ requirements:
508
+ - - ">="
509
+ - !ruby/object:Gem::Version
510
+ version: '0'
511
+ requirements: []
512
+ rubygems_version: 3.0.3
513
+ signing_key:
514
+ specification_version: 4
515
+ summary: Module for the 'Fog' gem to support Proxmox VE
516
+ test_files:
517
+ - spec/compute_spec.rb
518
+ - spec/fixtures/proxmox/compute/containers.yml
519
+ - spec/fixtures/proxmox/compute/identity_ticket.yml
520
+ - spec/fixtures/proxmox/compute/nodes.yml
521
+ - spec/fixtures/proxmox/compute/servers.yml
522
+ - spec/fixtures/proxmox/compute/snapshots.yml
523
+ - spec/fixtures/proxmox/compute/storages.yml
524
+ - spec/fixtures/proxmox/compute/tasks.yml
525
+ - spec/fixtures/proxmox/identity/auth.yml
526
+ - spec/fixtures/proxmox/identity/domains.yml
527
+ - spec/fixtures/proxmox/identity/groups.yml
528
+ - spec/fixtures/proxmox/identity/identity_ticket.yml
529
+ - spec/fixtures/proxmox/identity/permissions.yml
530
+ - spec/fixtures/proxmox/identity/pools.yml
531
+ - spec/fixtures/proxmox/identity/read_version.yml
532
+ - spec/fixtures/proxmox/identity/renew.yml
533
+ - spec/fixtures/proxmox/identity/roles.yml
534
+ - spec/fixtures/proxmox/identity/users.yml
535
+ - spec/fixtures/proxmox/network/identity_ticket.yml
536
+ - spec/fixtures/proxmox/network/networks.yml
537
+ - spec/fixtures/proxmox/pve.home
538
+ - spec/hash_spec.rb
539
+ - spec/helpers/controller_helper_spec.rb
540
+ - spec/helpers/cpu_helper_spec.rb
541
+ - spec/helpers/disk_helper_spec.rb
542
+ - spec/helpers/ip_helper_spec.rb
543
+ - spec/helpers/nic_helper_spec.rb
544
+ - spec/identity_spec.rb
545
+ - spec/network_spec.rb
546
+ - spec/proxmox_vcr.rb
547
+ - spec/spec_helper.rb