fog-proxmox 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +7 -0
- data/.travis.yml +1 -0
- data/.vscode/launch.json +3 -21
- data/.vscode/settings.json +7 -7
- data/Gemfile.lock +39 -39
- data/README.md +9 -2
- data/examples/compute.rb +20 -23
- data/examples/identity.rb +16 -21
- data/fog-proxmox.gemspec +1 -2
- data/lib/fog/compute/proxmox.rb +2 -8
- data/lib/fog/compute/proxmox/models/disk.rb +13 -11
- data/lib/fog/compute/proxmox/models/disks.rb +3 -5
- data/lib/fog/compute/proxmox/models/interface.rb +6 -11
- data/lib/fog/compute/proxmox/models/interfaces.rb +3 -5
- data/lib/fog/compute/proxmox/models/node.rb +38 -43
- data/lib/fog/compute/proxmox/models/nodes.rb +5 -11
- data/lib/fog/compute/proxmox/models/server.rb +123 -80
- data/lib/fog/compute/proxmox/models/server_config.rb +56 -24
- data/lib/fog/compute/proxmox/models/servers.rb +34 -26
- data/lib/fog/compute/proxmox/models/snapshot.rb +28 -14
- data/lib/fog/compute/proxmox/models/snapshots.rb +9 -17
- data/lib/fog/compute/proxmox/models/storage.rb +15 -11
- data/lib/fog/compute/proxmox/models/storages.rb +13 -22
- data/lib/fog/compute/proxmox/models/task.rb +10 -14
- data/lib/fog/compute/proxmox/models/tasks.rb +9 -18
- data/lib/fog/compute/proxmox/models/volume.rb +12 -12
- data/lib/fog/compute/proxmox/models/volumes.rb +10 -19
- data/lib/fog/compute/proxmox/requests/action_server.rb +1 -4
- data/lib/fog/compute/proxmox/requests/clone_server.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_backup.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_server.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_snapshot.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_spice.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_term.rb +1 -4
- data/lib/fog/compute/proxmox/requests/create_vnc.rb +1 -4
- data/lib/fog/compute/proxmox/requests/delete_server.rb +1 -4
- data/lib/fog/compute/proxmox/requests/delete_snapshot.rb +1 -4
- data/lib/fog/compute/proxmox/requests/get_node_statistics.rb +1 -4
- data/lib/fog/compute/proxmox/requests/get_server_config.rb +1 -4
- data/lib/fog/compute/proxmox/requests/get_server_status.rb +1 -4
- data/lib/fog/compute/proxmox/requests/{get_snapshot.rb → get_snapshot_config.rb} +5 -8
- data/lib/fog/compute/proxmox/requests/get_task.rb +1 -4
- data/lib/fog/compute/proxmox/requests/get_vnc.rb +1 -4
- data/lib/fog/compute/proxmox/requests/list_nodes.rb +1 -2
- data/lib/fog/compute/proxmox/requests/list_storages.rb +3 -1
- data/lib/fog/compute/proxmox/requests/log_task.rb +1 -4
- data/lib/fog/compute/proxmox/requests/move_disk.rb +1 -4
- data/lib/fog/compute/proxmox/requests/move_volume.rb +1 -4
- data/lib/fog/compute/proxmox/requests/next_vmid.rb +5 -3
- data/lib/fog/compute/proxmox/requests/resize_container.rb +1 -4
- data/lib/fog/compute/proxmox/requests/status_task.rb +1 -4
- data/lib/fog/compute/proxmox/requests/update_server.rb +1 -4
- data/lib/fog/identity/proxmox.rb +2 -8
- data/lib/fog/identity/proxmox/models/domain.rb +25 -21
- data/lib/fog/identity/proxmox/models/{ldap.rb → domain_type.rb} +9 -18
- data/lib/fog/identity/proxmox/models/domains.rb +6 -76
- data/lib/fog/identity/proxmox/models/group.rb +6 -19
- data/lib/fog/identity/proxmox/models/groups.rb +6 -12
- data/lib/fog/identity/proxmox/models/permission.rb +27 -31
- data/lib/fog/identity/proxmox/models/permissions.rb +8 -25
- data/lib/fog/identity/proxmox/models/pool.rb +9 -22
- data/lib/fog/identity/proxmox/models/pools.rb +7 -13
- data/lib/fog/identity/proxmox/models/principal.rb +1 -6
- data/lib/fog/identity/proxmox/models/role.rb +7 -20
- data/lib/fog/identity/proxmox/models/roles.rb +6 -13
- data/lib/fog/identity/proxmox/models/user.rb +7 -21
- data/lib/fog/identity/proxmox/models/users.rb +6 -12
- data/lib/fog/identity/proxmox/requests/check_permissions.rb +1 -4
- data/lib/fog/identity/proxmox/requests/list_roles.rb +0 -1
- data/lib/fog/identity/proxmox/requests/read_version.rb +1 -5
- data/lib/fog/identity/proxmox/requests/update_group.rb +2 -3
- data/lib/fog/identity/proxmox/requests/{add_permission.rb → update_permissions.rb} +4 -4
- data/lib/fog/network/proxmox/models/network.rb +12 -18
- data/lib/fog/network/proxmox/models/networks.rb +11 -17
- data/lib/fog/network/proxmox/models/node.rb +14 -10
- data/lib/fog/network/proxmox/models/nodes.rb +5 -11
- data/lib/fog/network/proxmox/requests/create_network.rb +1 -4
- data/lib/fog/network/proxmox/requests/delete_network.rb +1 -4
- data/lib/fog/network/proxmox/requests/get_network.rb +1 -4
- data/lib/fog/network/proxmox/requests/get_node.rb +1 -4
- data/lib/fog/network/proxmox/requests/power_node.rb +1 -4
- data/lib/fog/network/proxmox/requests/update_network.rb +1 -4
- data/lib/fog/{compute/proxmox/requests/check_vmid.rb → proxmox/attributes.rb} +9 -17
- data/lib/fog/proxmox/core.rb +2 -1
- data/lib/fog/proxmox/helpers/cpu_helper.rb +6 -3
- data/lib/fog/proxmox/helpers/disk_helper.rb +1 -1
- data/lib/fog/proxmox/helpers/nic_helper.rb +37 -22
- data/lib/fog/proxmox/version.rb +1 -1
- data/lib/fog/storage/proxmox.rb +1 -1
- data/spec/compute_spec.rb +64 -45
- data/spec/fixtures/proxmox/compute/containers.yml +1684 -4137
- data/spec/fixtures/proxmox/compute/identity_ticket.yml +4 -4
- data/spec/fixtures/proxmox/compute/nodes.yml +21 -21
- data/spec/fixtures/proxmox/compute/servers.yml +3065 -7741
- data/spec/fixtures/proxmox/compute/snapshots.yml +279 -827
- data/spec/fixtures/proxmox/compute/storages.yml +60 -21
- data/spec/fixtures/proxmox/compute/tasks.yml +56 -98
- data/spec/fixtures/proxmox/identity/auth.yml +6 -6
- data/spec/fixtures/proxmox/identity/domains.yml +252 -84
- data/spec/fixtures/proxmox/identity/groups.yml +93 -54
- data/spec/fixtures/proxmox/identity/identity_ticket.yml +4 -4
- data/spec/fixtures/proxmox/identity/permissions.yml +317 -79
- data/spec/fixtures/proxmox/identity/pools.yml +266 -71
- data/spec/fixtures/proxmox/identity/read_version.yml +6 -6
- data/spec/fixtures/proxmox/identity/roles.yml +96 -57
- data/spec/fixtures/proxmox/identity/users.yml +224 -107
- data/spec/fixtures/proxmox/network/identity_ticket.yml +4 -4
- data/spec/fixtures/proxmox/network/networks.yml +54 -95
- data/spec/helpers/nic_helper_spec.rb +4 -4
- data/spec/identity_spec.rb +38 -46
- data/spec/network_spec.rb +1 -1
- metadata +9 -23
- data/lib/fog/compute/proxmox/models/container.rb +0 -86
- data/lib/fog/compute/proxmox/models/container_config.rb +0 -114
- data/lib/fog/compute/proxmox/models/containers.rb +0 -43
- data/lib/fog/compute/proxmox/requests/get_node.rb +0 -44
- data/lib/fog/compute/proxmox/requests/get_storage.rb +0 -44
- data/lib/fog/identity/proxmox/models/activedirectory.rb +0 -57
- data/lib/fog/identity/proxmox/models/oath.rb +0 -50
- data/lib/fog/identity/proxmox/models/pam.rb +0 -46
- data/lib/fog/identity/proxmox/models/pve.rb +0 -46
- data/lib/fog/identity/proxmox/models/yubico.rb +0 -51
- data/lib/fog/identity/proxmox/requests/remove_permission.rb +0 -42
- data/lib/fog/proxmox/models/collection.rb +0 -85
- data/lib/fog/proxmox/models/model.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89601175c17a32bfedcfbb2d2c95da5c04f5113b2059284beed81722fea4c02a
|
4
|
+
data.tar.gz: 73b0527220941f9532dfb28bcac1b81bc1e0690e00dabecbf1709f3c9b5701cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87c0195ad8bc29a851250e4149360bb9b2f7078fcabda4c0bb5158306a792fbde335ba78ce531f77762a31fdc7e25b8a7f8723cd8732bd774e5e663a51d7525e
|
7
|
+
data.tar.gz: 12ffb8db4943453a446fad5c58d61670e85fb6e10f3be74e361bad118c4a1d6b0e95b3a48ce8e31721da636c1a280e1f1b812e2bc5fc2dd773c72ecb4c7b4e42
|
data/.gitlab-ci.yml
CHANGED
data/.travis.yml
CHANGED
data/.vscode/launch.json
CHANGED
@@ -9,8 +9,6 @@
|
|
9
9
|
"cwd": "${workspaceRoot}",
|
10
10
|
"program": "${workspaceRoot}/main.rb",
|
11
11
|
"useBundler": true,
|
12
|
-
"pathToBundler": "/home/tristan/.rbenv/shims/bundler", // linux rbenv
|
13
|
-
"pathToRDebugIDE": "/home/tristan/.rbenv/shims/rdebug-ide",
|
14
12
|
},
|
15
13
|
{
|
16
14
|
"name": "Listen for rdebug-ide",
|
@@ -21,16 +19,6 @@
|
|
21
19
|
"remotePort": "1234",
|
22
20
|
"remoteWorkspaceRoot": "${workspaceRoot}"
|
23
21
|
},
|
24
|
-
{
|
25
|
-
"name": "Rails server",
|
26
|
-
"type": "Ruby",
|
27
|
-
"request": "launch",
|
28
|
-
"cwd": "${workspaceRoot}",
|
29
|
-
"program": "${workspaceRoot}/bin/rails",
|
30
|
-
"args": [
|
31
|
-
"server"
|
32
|
-
]
|
33
|
-
},
|
34
22
|
{
|
35
23
|
"name": "RSpec - all",
|
36
24
|
"type": "Ruby",
|
@@ -38,8 +26,6 @@
|
|
38
26
|
"cwd": "${workspaceRoot}",
|
39
27
|
"program": "${workspaceRoot}/bin/rspec",
|
40
28
|
"useBundler": true,
|
41
|
-
"pathToBundler": "/home/tristan/.rbenv/shims/bundler", // linux rbenv
|
42
|
-
"pathToRDebugIDE": "/home/tristan/.rbenv/shims/rdebug-ide",
|
43
29
|
"showDebuggerOutput": true,
|
44
30
|
"env": {
|
45
31
|
"DISABLE_PROXY": true,
|
@@ -47,7 +33,7 @@
|
|
47
33
|
"USE_VCR": false,
|
48
34
|
"PVE_URL": "https://192.168.56.101:8006/api2/json",
|
49
35
|
"PVE_USERNAME": "root@pam",
|
50
|
-
"PVE_PASSWORD": "
|
36
|
+
"PVE_PASSWORD": ""
|
51
37
|
},
|
52
38
|
"args": [
|
53
39
|
"-I",
|
@@ -61,8 +47,6 @@
|
|
61
47
|
"cwd": "${workspaceRoot}",
|
62
48
|
"program": "${workspaceRoot}/bin/rspec",
|
63
49
|
"useBundler": true,
|
64
|
-
"pathToBundler": "/home/tristan/.rbenv/shims/bundler", // linux rbenv
|
65
|
-
"pathToRDebugIDE": "/home/tristan/.rbenv/shims/rdebug-ide",
|
66
50
|
"showDebuggerOutput": true,
|
67
51
|
"env": {
|
68
52
|
"DISABLE_PROXY": true,
|
@@ -70,7 +54,7 @@
|
|
70
54
|
"USE_VCR": false,
|
71
55
|
"PVE_URL": "https://192.168.56.101:8006/api2/json",
|
72
56
|
"PVE_USERNAME": "root@pam",
|
73
|
-
"PVE_PASSWORD": "
|
57
|
+
"PVE_PASSWORD": ""
|
74
58
|
},
|
75
59
|
"args": [
|
76
60
|
"-I",
|
@@ -85,8 +69,6 @@
|
|
85
69
|
"cwd": "${workspaceRoot}",
|
86
70
|
"program": "${workspaceRoot}/bin/rake",
|
87
71
|
"useBundler": true,
|
88
|
-
"pathToBundler": "/home/tristan/.rbenv/shims/bundler", // linux rbenv
|
89
|
-
"pathToRDebugIDE": "/home/tristan/.rbenv/shims/rdebug-ide",
|
90
72
|
"showDebuggerOutput": true,
|
91
73
|
"env": {
|
92
74
|
"DISABLE_PROXY": true,
|
@@ -94,7 +76,7 @@
|
|
94
76
|
"USE_VCR": false,
|
95
77
|
"PVE_URL": "https://192.168.56.101:8006/api2/json",
|
96
78
|
"PVE_USERNAME": "root@pam",
|
97
|
-
"PVE_PASSWORD": "
|
79
|
+
"PVE_PASSWORD": ""
|
98
80
|
},
|
99
81
|
"args": [
|
100
82
|
"spec",
|
data/.vscode/settings.json
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
// Placez vos paramètres dans ce fichier pour remplacer les paramètres par défaut et les paramètres utilisateur.
|
2
2
|
{
|
3
|
-
"ruby.pathToBundler": "/
|
3
|
+
"ruby.pathToBundler": "~/.asdf/shims/bundle",
|
4
4
|
"ruby.useBundler": true,
|
5
|
-
"solargraph.commandPath": "/
|
6
|
-
"solargraph.bundlerPath": "/
|
5
|
+
"solargraph.commandPath": "~/.asdf/shims/solargraph",
|
6
|
+
"solargraph.bundlerPath": "~/.asdf/shims/bundle",
|
7
7
|
"workbench.startupEditor": "newUntitledFile",
|
8
8
|
"workbench.iconTheme": "vscode-icons",
|
9
9
|
"git.autofetch": true,
|
@@ -25,11 +25,11 @@
|
|
25
25
|
"include": "**/*.erb,**/*.rb,**/vendor/*.*",
|
26
26
|
"exclude": "{**/@(test|spec|tmp|.*),**/@(test|spec|tmp|.*)/**,**/*_spec.rb}"
|
27
27
|
},
|
28
|
-
"ruby.interpreter.commandPath": "/
|
29
|
-
"ruby.pathToBundler": "/
|
28
|
+
"ruby.interpreter.commandPath": "~/.asdf/shims/ruby",
|
29
|
+
"ruby.pathToBundler": "~/.asdf/shims/bundle",
|
30
30
|
"ruby.useBundler": true,
|
31
|
-
"solargraph.commandPath": "/
|
32
|
-
"solargraph.bundlerPath": "/
|
31
|
+
"solargraph.commandPath": "~/.asdf/shims/solargraph",
|
32
|
+
"solargraph.bundlerPath": "~/.asdf/shims/bundle",
|
33
33
|
"gitlens.advanced.messages": {
|
34
34
|
"suppressCommitHasNoPreviousCommitWarning": false,
|
35
35
|
"suppressCommitNotFoundWarning": false,
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fog-proxmox (0.
|
4
|
+
fog-proxmox (0.6.0)
|
5
5
|
fog-core (~> 1.45)
|
6
6
|
fog-json (~> 1.0)
|
7
7
|
ipaddress (~> 0.8)
|
@@ -9,7 +9,7 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
addressable (2.
|
12
|
+
addressable (2.6.0)
|
13
13
|
public_suffix (>= 2.0.2, < 4.0)
|
14
14
|
ast (2.4.0)
|
15
15
|
axiom-types (0.1.1)
|
@@ -27,7 +27,7 @@ GEM
|
|
27
27
|
safe_yaml (~> 1.0.0)
|
28
28
|
debase (0.2.2)
|
29
29
|
debase-ruby_core_source (>= 0.10.2)
|
30
|
-
debase-ruby_core_source (0.10.
|
30
|
+
debase-ruby_core_source (0.10.4)
|
31
31
|
debride (1.8.1)
|
32
32
|
path_expander (~> 1.0)
|
33
33
|
ruby_parser (~> 3.6)
|
@@ -38,9 +38,9 @@ GEM
|
|
38
38
|
docile (1.3.1)
|
39
39
|
equalizer (0.0.11)
|
40
40
|
excon (0.62.0)
|
41
|
-
fasterer (0.
|
41
|
+
fasterer (0.5.1)
|
42
42
|
colorize (~> 0.7)
|
43
|
-
ruby_parser (
|
43
|
+
ruby_parser (>= 3.13.0)
|
44
44
|
fastri (0.3.1.1)
|
45
45
|
fog-core (1.45.0)
|
46
46
|
builder
|
@@ -50,72 +50,72 @@ GEM
|
|
50
50
|
fog-core
|
51
51
|
multi_json (~> 1.10)
|
52
52
|
formatador (0.2.5)
|
53
|
-
hashdiff (0.3.
|
53
|
+
hashdiff (0.3.8)
|
54
54
|
ice_nine (0.11.2)
|
55
55
|
ipaddress (0.8.3)
|
56
|
-
jaro_winkler (1.5.
|
57
|
-
json (2.
|
58
|
-
method_source (0.9.
|
56
|
+
jaro_winkler (1.5.2)
|
57
|
+
json (2.2.0)
|
58
|
+
method_source (0.9.2)
|
59
59
|
minitest (5.11.3)
|
60
60
|
multi_json (1.13.1)
|
61
|
-
parallel (1.
|
62
|
-
parser (2.5.
|
61
|
+
parallel (1.17.0)
|
62
|
+
parser (2.5.3.0)
|
63
63
|
ast (~> 2.4.0)
|
64
64
|
path_expander (1.0.3)
|
65
|
-
|
66
|
-
pry (0.11.3)
|
65
|
+
pry (0.12.2)
|
67
66
|
coderay (~> 1.1.0)
|
68
67
|
method_source (~> 0.9.0)
|
69
|
-
|
68
|
+
psych (3.1.0)
|
69
|
+
public_suffix (3.0.3)
|
70
70
|
rainbow (3.0.0)
|
71
|
-
rake (12.3.
|
71
|
+
rake (12.3.2)
|
72
72
|
rcodetools (0.8.5.0)
|
73
|
-
reek (4.8.
|
73
|
+
reek (4.8.2)
|
74
74
|
codeclimate-engine-rb (~> 0.4.0)
|
75
75
|
parser (>= 2.5.0.0, < 2.6)
|
76
76
|
rainbow (>= 2.0, < 4.0)
|
77
|
-
rspec (3.
|
78
|
-
rspec-core (~> 3.
|
79
|
-
rspec-expectations (~> 3.
|
80
|
-
rspec-mocks (~> 3.
|
81
|
-
rspec-core (3.
|
82
|
-
rspec-support (~> 3.
|
83
|
-
rspec-expectations (3.
|
77
|
+
rspec (3.8.0)
|
78
|
+
rspec-core (~> 3.8.0)
|
79
|
+
rspec-expectations (~> 3.8.0)
|
80
|
+
rspec-mocks (~> 3.8.0)
|
81
|
+
rspec-core (3.8.0)
|
82
|
+
rspec-support (~> 3.8.0)
|
83
|
+
rspec-expectations (3.8.2)
|
84
84
|
diff-lcs (>= 1.2.0, < 2.0)
|
85
|
-
rspec-support (~> 3.
|
86
|
-
rspec-mocks (3.
|
85
|
+
rspec-support (~> 3.8.0)
|
86
|
+
rspec-mocks (3.8.0)
|
87
87
|
diff-lcs (>= 1.2.0, < 2.0)
|
88
|
-
rspec-support (~> 3.
|
89
|
-
rspec-support (3.
|
90
|
-
rubocop (0.
|
88
|
+
rspec-support (~> 3.8.0)
|
89
|
+
rspec-support (3.8.0)
|
90
|
+
rubocop (0.66.0)
|
91
91
|
jaro_winkler (~> 1.5.1)
|
92
92
|
parallel (~> 1.10)
|
93
|
-
parser (>= 2.5)
|
94
|
-
|
93
|
+
parser (>= 2.5, != 2.5.1.1)
|
94
|
+
psych (>= 3.1.0)
|
95
95
|
rainbow (>= 2.2.2, < 4.0)
|
96
96
|
ruby-progressbar (~> 1.7)
|
97
|
-
unicode-display_width (
|
97
|
+
unicode-display_width (>= 1.4.0, < 1.6)
|
98
98
|
ruby-debug-ide (0.6.1)
|
99
99
|
rake (>= 0.8.1)
|
100
|
-
ruby-progressbar (1.
|
101
|
-
ruby_parser (3.
|
100
|
+
ruby-progressbar (1.10.0)
|
101
|
+
ruby_parser (3.13.1)
|
102
102
|
sexp_processor (~> 4.9)
|
103
|
-
safe_yaml (1.0.
|
104
|
-
sexp_processor (4.
|
103
|
+
safe_yaml (1.0.5)
|
104
|
+
sexp_processor (4.12.0)
|
105
105
|
simplecov (0.16.1)
|
106
106
|
docile (~> 1.1)
|
107
107
|
json (>= 1.8, < 3)
|
108
108
|
simplecov-html (~> 0.10.0)
|
109
109
|
simplecov-html (0.10.2)
|
110
110
|
thread_safe (0.3.6)
|
111
|
-
unicode-display_width (1.
|
111
|
+
unicode-display_width (1.5.0)
|
112
112
|
vcr (3.0.3)
|
113
113
|
virtus (1.0.5)
|
114
114
|
axiom-types (~> 0.1)
|
115
115
|
coercible (~> 1.0)
|
116
116
|
descendants_tracker (~> 0.0, >= 0.0.3)
|
117
117
|
equalizer (~> 0.0, >= 0.0.9)
|
118
|
-
webmock (3.
|
118
|
+
webmock (3.5.1)
|
119
119
|
addressable (>= 2.3.6)
|
120
120
|
crack (>= 0.3.2)
|
121
121
|
hashdiff
|
@@ -124,7 +124,7 @@ PLATFORMS
|
|
124
124
|
ruby
|
125
125
|
|
126
126
|
DEPENDENCIES
|
127
|
-
bundler (~>
|
127
|
+
bundler (~> 2.0)
|
128
128
|
debase (~> 0.2.2)
|
129
129
|
debride (~> 1.8)
|
130
130
|
fasterer (~> 0.3)
|
@@ -143,4 +143,4 @@ DEPENDENCIES
|
|
143
143
|
webmock (~> 3.4)
|
144
144
|
|
145
145
|
BUNDLED WITH
|
146
|
-
|
146
|
+
2.0.1
|
data/README.md
CHANGED
@@ -6,12 +6,19 @@
|
|
6
6
|
[![Maintainability](https://api.codeclimate.com/v1/badges/33e619f2167cc9864b61/maintainability)](https://codeclimate.com/github/fog/fog-proxmox/maintainability)
|
7
7
|
[![Test Coverage](https://api.codeclimate.com/v1/badges/33e619f2167cc9864b61/test_coverage)](https://codeclimate.com/github/fog/fog-proxmox/test_coverage)
|
8
8
|
|
9
|
-
This is a [FOG](http://fog.io/) (>= 1.45.0) module gem to support [Proxmox VE](https://www.proxmox.com/en/proxmox-ve)
|
9
|
+
This is a [FOG](http://fog.io/) (>= 1.45.0) module gem to support [Proxmox VE](https://www.proxmox.com/en/proxmox-ve)
|
10
10
|
|
11
11
|
It is intended to satisfy this [feature](https://github.com/fog/fog/issues/3644), but Proxmox provider only, and above all this [Foreman](http://www.theforeman.org) [feature](https://projects.theforeman.org/issues/2186).
|
12
12
|
|
13
13
|
It is inspired by the great [fog-openstack](https://github.com/fog/fog-openstack) module.
|
14
14
|
|
15
|
+
## Compatibility versions
|
16
|
+
|
17
|
+
|Fog-Proxmox|Proxmox VE|
|
18
|
+
|--|--|
|
19
|
+
|<0.6|<5.3|
|
20
|
+
|>=0.6|>=5.3|
|
21
|
+
|
15
22
|
## Installation
|
16
23
|
|
17
24
|
Add this line to your application's Gemfile:
|
@@ -23,7 +30,7 @@ gem 'fog-proxmox'
|
|
23
30
|
And then execute:
|
24
31
|
|
25
32
|
```ruby
|
26
|
-
bundle install
|
33
|
+
bundle install
|
27
34
|
```
|
28
35
|
|
29
36
|
Or install it yourself as:
|
data/examples/compute.rb
CHANGED
@@ -39,10 +39,10 @@ compute = Fog::Compute::Proxmox.new(
|
|
39
39
|
|
40
40
|
# Create pools
|
41
41
|
pool_hash = { poolid: 'pool1' }
|
42
|
-
compute.
|
42
|
+
pool1 = compute.pools.create(pool_hash)
|
43
43
|
|
44
44
|
# Get one pool by id
|
45
|
-
pool1 = compute.pools.
|
45
|
+
pool1 = compute.pools.get 'pool1'
|
46
46
|
|
47
47
|
# Update pool
|
48
48
|
pool1.comment 'pool 1'
|
@@ -63,7 +63,7 @@ pool1.destroy
|
|
63
63
|
|
64
64
|
# Get node owner
|
65
65
|
node_name = 'pve'
|
66
|
-
node = compute.nodes.
|
66
|
+
node = compute.nodes.get node_name
|
67
67
|
|
68
68
|
# Get next free vmid
|
69
69
|
vmid = node.servers.next_id
|
@@ -105,22 +105,19 @@ server.update(config_hash)
|
|
105
105
|
config_hash = { onboot: 1, keyboard: 'fr', ostype: 'l26', kvm: 0 }
|
106
106
|
server.update(config_hash)
|
107
107
|
# Get configuration model
|
108
|
-
config = server.
|
108
|
+
config = server.config
|
109
109
|
# Get nics config
|
110
|
-
nics = server.
|
110
|
+
nics = server.config.nics
|
111
111
|
nics[:net0]
|
112
112
|
# Get hdd controllers (ide, sata, scsi or virtio) config
|
113
113
|
# All return hashes with key equals to controller id
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
scsis = server.get_config.scsis
|
118
|
-
virtios = server.get_config.virtios
|
119
|
-
virtios[:virtio0]
|
114
|
+
disks = server.config.disks
|
115
|
+
ide0 = disks.get('ide0')
|
116
|
+
virtio0 = disks.get('virtio0')
|
120
117
|
# Get mac_addresses
|
121
|
-
server.
|
118
|
+
server.config.mac_adresses
|
122
119
|
# List all servers
|
123
|
-
servers_all =
|
120
|
+
servers_all = node.servers.all
|
124
121
|
|
125
122
|
# Start server
|
126
123
|
server.action('start')
|
@@ -167,14 +164,14 @@ snapshot.update
|
|
167
164
|
snapshot.destroy
|
168
165
|
|
169
166
|
# Fetch disk images
|
170
|
-
server.
|
167
|
+
server.config.disks
|
171
168
|
|
172
169
|
# Delete server
|
173
170
|
server.destroy
|
174
171
|
|
175
172
|
# Create containers
|
176
173
|
node_name = 'pve'
|
177
|
-
node = compute.nodes.
|
174
|
+
node = compute.nodes.get node_name
|
178
175
|
ostemplate = 'local:vztmpl/alpine-3.7-default_20171211_amd64.tar.xz'
|
179
176
|
container_hash = {
|
180
177
|
vmid: vmid,
|
@@ -217,8 +214,8 @@ config_hash = { onboot: 1, ostype: 'alpine' }
|
|
217
214
|
container.update(config_hash)
|
218
215
|
# Get mac_addresses
|
219
216
|
container.mac_adresses
|
220
|
-
# Get
|
221
|
-
container.config.
|
217
|
+
# Get interfaces
|
218
|
+
container.config.interfaces
|
222
219
|
# Get additional mount points
|
223
220
|
container.config.mount_points
|
224
221
|
# List all servers
|
@@ -261,19 +258,19 @@ snapshot.update
|
|
261
258
|
snapshot.destroy
|
262
259
|
|
263
260
|
# Fetch additional mount points
|
264
|
-
container.mount_points
|
261
|
+
container.config.mount_points
|
265
262
|
# Fetch network interfaces
|
266
|
-
container.
|
263
|
+
container.config.interfaces
|
267
264
|
|
268
265
|
# Delete container
|
269
266
|
container.destroy
|
270
267
|
|
271
268
|
# List 1 task
|
272
|
-
|
273
|
-
node = 'pve'
|
274
|
-
tasks =
|
269
|
+
filters = { limit: 1 }
|
270
|
+
node = compute.nodes.get 'pve'
|
271
|
+
tasks = node.tasks.all(filters)
|
275
272
|
# Get task
|
276
273
|
upid = tasks[0].upid
|
277
|
-
task =
|
274
|
+
task = node.tasks.get(upid)
|
278
275
|
# Stop task
|
279
276
|
task.stop
|
data/examples/identity.rb
CHANGED
@@ -49,19 +49,11 @@ bob_hash = {
|
|
49
49
|
lastname: 'Sinclar',
|
50
50
|
email: 'bobsinclar@proxmox.com'
|
51
51
|
}
|
52
|
-
|
53
|
-
# bob_hash = {
|
54
|
-
# userid: 'bobsinclar',
|
55
|
-
# realm: 'pve',
|
56
|
-
# password: 'bobsinclar1',
|
57
|
-
# firstname: 'Bob',
|
58
|
-
# lastname: 'Sinclar',
|
59
|
-
# email: 'bobsinclar@proxmox.com'
|
60
|
-
# }
|
52
|
+
|
61
53
|
identity.users.create(bob_hash)
|
62
54
|
|
63
55
|
# Get a user by id
|
64
|
-
bob = identity.users.
|
56
|
+
bob = identity.users.get 'bobsinclar@pve'
|
65
57
|
|
66
58
|
# List all users
|
67
59
|
identity.users.all
|
@@ -85,7 +77,7 @@ group_hash = { groupid: 'group1' }
|
|
85
77
|
identity.domains.create(group_hash)
|
86
78
|
|
87
79
|
# Get one group by id
|
88
|
-
group1 = identity.groups.
|
80
|
+
group1 = identity.groups.get 'group1'
|
89
81
|
|
90
82
|
# Update group
|
91
83
|
group1.comment 'Group 1'
|
@@ -107,7 +99,7 @@ role_hash = { roleid: 'role1' }
|
|
107
99
|
identity.roles.create(role_hash)
|
108
100
|
|
109
101
|
# Get one role by id
|
110
|
-
role1 = identity.roles.
|
102
|
+
role1 = identity.roles.get 'role1'
|
111
103
|
|
112
104
|
# Update role
|
113
105
|
role1.comment 'Role 1'
|
@@ -157,7 +149,7 @@ identity.domains.each do |domain|
|
|
157
149
|
end
|
158
150
|
|
159
151
|
# Find domain by id
|
160
|
-
ldap = identity.domains.
|
152
|
+
ldap = identity.domains.get ldap_hash[:realm]
|
161
153
|
|
162
154
|
# Update domain
|
163
155
|
ldap.type.comment = 'Test domain LDAP'
|
@@ -171,17 +163,19 @@ ldap.destroy
|
|
171
163
|
|
172
164
|
# Add a user permission
|
173
165
|
permission_hash = {
|
174
|
-
|
175
|
-
|
176
|
-
|
166
|
+
type: 'user'
|
167
|
+
path: '/access',
|
168
|
+
roleid: 'PVEUserAdmin',
|
169
|
+
ugid: bob_hash[:userid]
|
177
170
|
}
|
178
171
|
# Add a group permission
|
179
172
|
# permission_hash = {
|
180
|
-
#
|
181
|
-
#
|
182
|
-
#
|
173
|
+
# type: 'group'
|
174
|
+
# path: '/access',
|
175
|
+
# roleid: 'PVEUserAdmin',
|
176
|
+
# ugid: 'group1'
|
183
177
|
# }
|
184
|
-
identity.
|
178
|
+
permission = identity.permissions.create(permission_hash)
|
185
179
|
|
186
180
|
# List all permissions
|
187
181
|
identity.permissions.all
|
@@ -192,4 +186,5 @@ identity.permissions.each do |permission|
|
|
192
186
|
end
|
193
187
|
|
194
188
|
# Remove permission
|
195
|
-
identity.
|
189
|
+
permission = identity.get(permission_hash)
|
190
|
+
permission.destroy
|