fog-proxmox 0.14.0 → 0.15.1

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +28 -4
  4. data/lib/fog/proxmox/attributes.rb +3 -2
  5. data/lib/fog/proxmox/auth/token/access_ticket.rb +68 -57
  6. data/lib/fog/proxmox/auth/token/user_token.rb +79 -66
  7. data/lib/fog/proxmox/auth/token.rb +66 -60
  8. data/lib/fog/proxmox/compute/models/disk.rb +6 -1
  9. data/lib/fog/proxmox/compute/models/disks.rb +1 -1
  10. data/lib/fog/proxmox/compute/models/interface.rb +1 -1
  11. data/lib/fog/proxmox/compute/models/interfaces.rb +1 -1
  12. data/lib/fog/proxmox/compute/models/node.rb +3 -5
  13. data/lib/fog/proxmox/compute/models/nodes.rb +1 -1
  14. data/lib/fog/proxmox/compute/models/server.rb +33 -16
  15. data/lib/fog/proxmox/compute/models/server_config.rb +9 -4
  16. data/lib/fog/proxmox/compute/models/servers.rb +5 -5
  17. data/lib/fog/proxmox/compute/models/snapshot.rb +1 -1
  18. data/lib/fog/proxmox/compute/models/snapshots.rb +1 -1
  19. data/lib/fog/proxmox/compute/models/storage.rb +3 -2
  20. data/lib/fog/proxmox/compute/models/storages.rb +2 -2
  21. data/lib/fog/proxmox/compute/models/task.rb +1 -1
  22. data/lib/fog/proxmox/compute/models/tasks.rb +1 -0
  23. data/lib/fog/proxmox/compute/models/volume.rb +2 -1
  24. data/lib/fog/proxmox/compute/models/volumes.rb +2 -2
  25. data/lib/fog/proxmox/compute/requests/get_server_config.rb +14 -14
  26. data/lib/fog/proxmox/compute/requests/get_server_status.rb +17 -17
  27. data/lib/fog/proxmox/compute/requests/log_task.rb +1 -1
  28. data/lib/fog/proxmox/core.rb +28 -24
  29. data/lib/fog/proxmox/errors.rb +2 -1
  30. data/lib/fog/proxmox/hash.rb +0 -2
  31. data/lib/fog/proxmox/helpers/controller_helper.rb +3 -4
  32. data/lib/fog/proxmox/helpers/cpu_helper.rb +13 -6
  33. data/lib/fog/proxmox/helpers/disk_helper.rb +18 -12
  34. data/lib/fog/proxmox/helpers/ip_helper.rb +21 -20
  35. data/lib/fog/proxmox/helpers/nic_helper.rb +23 -14
  36. data/lib/fog/proxmox/identity/models/domain.rb +7 -3
  37. data/lib/fog/proxmox/identity/models/domain_type.rb +0 -1
  38. data/lib/fog/proxmox/identity/models/domains.rb +1 -2
  39. data/lib/fog/proxmox/identity/models/group.rb +4 -2
  40. data/lib/fog/proxmox/identity/models/groups.rb +1 -1
  41. data/lib/fog/proxmox/identity/models/permission.rb +5 -4
  42. data/lib/fog/proxmox/identity/models/permissions.rb +3 -1
  43. data/lib/fog/proxmox/identity/models/pool.rb +4 -4
  44. data/lib/fog/proxmox/identity/models/pools.rb +4 -4
  45. data/lib/fog/proxmox/identity/models/role.rb +1 -1
  46. data/lib/fog/proxmox/identity/models/roles.rb +1 -1
  47. data/lib/fog/proxmox/identity/models/token.rb +4 -3
  48. data/lib/fog/proxmox/identity/models/token_info.rb +2 -2
  49. data/lib/fog/proxmox/identity/models/tokens.rb +9 -13
  50. data/lib/fog/proxmox/identity/models/user.rb +1 -2
  51. data/lib/fog/proxmox/identity/models/users.rb +1 -1
  52. data/lib/fog/proxmox/identity/requests/get_user.rb +1 -0
  53. data/lib/fog/proxmox/identity/requests/list_user_permissions.rb +1 -1
  54. data/lib/fog/proxmox/network/models/networks.rb +1 -1
  55. data/lib/fog/proxmox/network/models/node.rb +1 -0
  56. data/lib/fog/proxmox/network/models/nodes.rb +1 -1
  57. data/lib/fog/proxmox/string.rb +4 -3
  58. data/lib/fog/proxmox/version.rb +1 -1
  59. data/lib/fog/proxmox.rb +1 -3
  60. data/spec/compute_spec.rb +3 -2
  61. data/spec/fixtures/proxmox/compute/snapshots.yml +350 -1055
  62. data/spec/hash_spec.rb +2 -1
  63. data/spec/helpers/controller_helper_spec.rb +135 -123
  64. data/spec/helpers/cpu_helper_spec.rb +58 -53
  65. data/spec/helpers/disk_helper_spec.rb +104 -54
  66. data/spec/helpers/ip_helper_spec.rb +155 -138
  67. data/spec/helpers/nic_helper_spec.rb +29 -20
  68. data/spec/identity_spec.rb +86 -74
  69. data/spec/proxmox_vcr.rb +3 -3
  70. metadata +89 -90
  71. data/.bundle/config +0 -4
  72. data/.codeclimate.yml +0 -14
  73. data/.github/CODE_OF_CONDUCT.md +0 -74
  74. data/.github/CONTRIBUTING.md +0 -20
  75. data/.github/CONTRIBUTORS.md +0 -9
  76. data/.github/FUNDING.yml +0 -12
  77. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
  78. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  79. data/.github/ISSUE_TEMPLATE.md +0 -43
  80. data/.github/SUPPORT.md +0 -9
  81. data/.github/fogproxmox.png +0 -0
  82. data/.github/workflows/ci.yml +0 -79
  83. data/.gitignore +0 -8
  84. data/.rubocop.yml +0 -13
  85. data/.ruby-gemset +0 -1
  86. data/.solargraph.yml +0 -10
  87. data/.vscode/launch.json +0 -96
  88. data/.vscode/settings.json +0 -45
  89. data/.vscode/tasks.json +0 -27
  90. data/Gemfile +0 -23
  91. data/Rakefile +0 -58
  92. data/bin/console +0 -29
  93. data/bin/setup +0 -29
  94. data/fog-proxmox.gemspec +0 -63
@@ -38,11 +38,13 @@ describe Fog::Proxmox::NicHelper do
38
38
  end
39
39
 
40
40
  let(:lxc_nic) do
41
- { id: 'net0', name: 'eth0', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1, ip: '192.168.56.100/31' }
41
+ { id: 'net0', name: 'eth0', hwaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1,
42
+ rate: 1, tag: 1, ip: '192.168.56.100/31' }
42
43
  end
43
44
 
44
45
  let(:qemu_nic) do
45
- { id: 'net1', model: 'virtio', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1, rate: 1, tag: 1 }
46
+ { id: 'net1', model: 'virtio', macaddr: '66:89:C5:59:AA:96', bridge: 'vmbr0', firewall: 1, link_down: 1, queues: 1,
47
+ rate: 1, tag: 1 }
46
48
  end
47
49
 
48
50
  let(:qemu_nic_create) do
@@ -50,84 +52,91 @@ describe Fog::Proxmox::NicHelper do
50
52
  end
51
53
 
52
54
  describe '#extract_model' do
53
- it "returns model card" do
55
+ it 'returns model card' do
54
56
  model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm[:net0])
55
57
  assert_equal 'virtio', model
56
58
  end
57
- it "returns model card creation" do
59
+
60
+ it 'returns model card creation' do
58
61
  model = Fog::Proxmox::NicHelper.extract_nic_id(net_vm_create[:net0])
59
62
  assert_equal 'virtio', model
60
63
  end
61
64
  end
62
65
 
63
66
  describe '#extract_name' do
64
- it "returns lxc name" do
67
+ it 'returns lxc name' do
65
68
  model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc[:net0])
66
69
  assert_equal 'eth0', model
67
70
  end
68
- it "returns lxc name creation" do
71
+
72
+ it 'returns lxc name creation' do
69
73
  model = Fog::Proxmox::NicHelper.extract_nic_id(net_lxc_create[:net0])
70
74
  assert_equal 'eth0', model
71
75
  end
72
76
  end
73
77
 
74
78
  describe '#extract_mac_address' do
75
- it "returns vm mac address" do
79
+ it 'returns vm mac address' do
76
80
  mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_vm[:net0])
77
81
  assert_equal '66:89:C5:59:AA:96', mac_address
78
82
  end
79
- it "returns lxc mac address" do
83
+
84
+ it 'returns lxc mac address' do
80
85
  mac_address = Fog::Proxmox::NicHelper.extract_mac_address(net_lxc[:net0])
81
86
  assert_equal '66:89:C5:59:AA:96', mac_address
82
87
  end
83
88
  end
84
89
 
85
90
  describe '#nic?' do
86
- it "returns true" do
91
+ it 'returns true' do
87
92
  assert Fog::Proxmox::NicHelper.nic?('net0')
88
93
  end
89
- it "returns false" do
94
+
95
+ it 'returns false' do
90
96
  assert !Fog::Proxmox::NicHelper.nic?('net')
91
97
  end
92
98
  end
93
99
 
94
100
  describe '#collect_nics' do
95
- it "returns net0" do
96
- nets = Fog::Proxmox::NicHelper.collect_nics(net_vm.merge({'netout': 'sdfdsgfdsf'}))
101
+ it 'returns net0' do
102
+ nets = Fog::Proxmox::NicHelper.collect_nics(net_vm.merge({ 'netout': 'sdfdsgfdsf' }))
97
103
  assert nets.has_key?(:net0)
98
104
  assert nets.has_value?(net_vm[:net0])
99
105
  assert !nets.has_key?('netout')
100
106
  end
101
- it "returns empty" do
102
- nets = Fog::Proxmox::NicHelper.collect_nics({'netout': 'sdfdsgfdsf'})
107
+
108
+ it 'returns empty' do
109
+ nets = Fog::Proxmox::NicHelper.collect_nics({ 'netout': 'sdfdsgfdsf' })
103
110
  assert nets.empty?
104
111
  end
105
112
  end
106
113
 
107
114
  describe '#flatten' do
108
- it "returns qemu nic string" do
115
+ it 'returns qemu nic string' do
109
116
  flat_qemu = { net1: 'virtio=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
110
117
  assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic)
111
118
  end
112
- it "returns qemu nic create string" do
119
+
120
+ it 'returns qemu nic create string' do
113
121
  flat_qemu = { net1: 'model=virtio,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1' }
114
122
  assert_equal flat_qemu, Fog::Proxmox::NicHelper.flatten(qemu_nic_create)
115
123
  end
116
- it "returns lxc nic string" do
117
- flat_lxc = { net0: 'eth0=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
124
+
125
+ it 'returns lxc nic string' do
126
+ flat_lxc = { net0: 'name=eth0,hwaddr=66:89:C5:59:AA:96,bridge=vmbr0,firewall=1,link_down=1,queues=1,rate=1,tag=1,ip=192.168.56.100/31' }
118
127
  assert_equal flat_lxc, Fog::Proxmox::NicHelper.flatten(lxc_nic)
119
128
  end
120
129
  end
121
130
 
122
131
  describe '#has_ip?' do
123
- it "returns true" do
132
+ it 'returns true' do
124
133
  ip = Fog::Proxmox::NicHelper.has_ip?(net_lxc[:net0])
125
134
  assert_equal true, ip
126
135
  end
127
136
  end
128
137
 
129
138
  describe '#extract_ip' do
130
- it "returns lxc ip cidr" do
139
+ it 'returns lxc ip cidr' do
131
140
  ip = Fog::Proxmox::NicHelper.extract_ip(net_lxc[:net0])
132
141
  assert_equal '192.168.56.100/31', ip
133
142
  end
@@ -21,7 +21,6 @@ require 'spec_helper'
21
21
  require_relative './proxmox_vcr'
22
22
 
23
23
  describe Fog::Proxmox::Identity do
24
-
25
24
  before :all do
26
25
  @proxmox_vcr = ProxmoxVCR.new(
27
26
  vcr_directory: 'spec/fixtures/proxmox/identity',
@@ -37,46 +36,58 @@ describe Fog::Proxmox::Identity do
37
36
 
38
37
  it 'authenticates with access ticket' do
39
38
  VCR.use_cassette('auth_access_ticket') do
40
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username, proxmox_password: @password)
39
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
40
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username, proxmox_password: @password)
41
41
  _(proc do
42
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username, proxmox_password: 'wrong_password')
43
- end).must_raise Excon::Errors::Unauthorized
42
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
43
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username, proxmox_password: 'wrong_password')
44
+ end).must_raise Excon::Errors::Unauthorized
44
45
  _(proc do
45
46
  Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_username: @username, proxmox_password: @password)
46
- end).must_raise ArgumentError
47
+ end).must_raise ArgumentError
47
48
  _(proc do
48
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_password: @password)
49
- end).must_raise Fog::Proxmox::Auth::Token::AccessTicket::URIError
49
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
50
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_password: @password)
51
+ end).must_raise Fog::Proxmox::Auth::Token::AccessTicket::URIError
50
52
  _(proc do
51
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username)
52
- end).must_raise Fog::Proxmox::Auth::Token::AccessTicket::URIError
53
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
54
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username)
55
+ end).must_raise Fog::Proxmox::Auth::Token::AccessTicket::URIError
53
56
  _(proc do
54
- Fog::Proxmox::Identity.new(proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME, proxmox_username: @username, proxmox_password: 'wrong_password')
57
+ Fog::Proxmox::Identity.new(proxmox_auth_method: Fog::Proxmox::Auth::Token::AccessTicket::NAME,
58
+ proxmox_username: @username, proxmox_password: 'wrong_password')
55
59
  end).must_raise ArgumentError
56
60
  end
57
61
  end
58
62
 
59
63
  it 'authenticates with user token' do
60
64
  VCR.use_cassette('auth_user_token') do
61
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: @token)
62
- _(proc do
63
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: 'wrong_token')
64
- end).must_raise Excon::Errors::Unauthorized
65
- _(proc do
66
- Fog::Proxmox::Identity.new(proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: 'wrong_token')
67
- end).must_raise ArgumentError
68
- _(proc do
69
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: 'wrong_token')
70
- end).must_raise ArgumentError
71
- _(proc do
72
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_token: @token)
73
- end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
74
- _(proc do
75
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_tokenid: @tokenid, proxmox_token: @token)
76
- end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
77
- _(proc do
78
- Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid)
79
- end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
65
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
66
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: @token)
67
+ _(proc do
68
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
69
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: 'wrong_token')
70
+ end).must_raise Excon::Errors::Unauthorized
71
+ _(proc do
72
+ Fog::Proxmox::Identity.new(proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME,
73
+ proxmox_userid: @username, proxmox_tokenid: @tokenid, proxmox_token: 'wrong_token')
74
+ end).must_raise ArgumentError
75
+ _(proc do
76
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url, proxmox_userid: @username, proxmox_tokenid: @tokenid,
77
+ proxmox_token: 'wrong_token')
78
+ end).must_raise ArgumentError
79
+ _(proc do
80
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
81
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_token: @token)
82
+ end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
83
+ _(proc do
84
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
85
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_tokenid: @tokenid, proxmox_token: @token)
86
+ end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
87
+ _(proc do
88
+ Fog::Proxmox::Identity.new(proxmox_url: @proxmox_url,
89
+ proxmox_auth_method: Fog::Proxmox::Auth::Token::UserToken::NAME, proxmox_userid: @username, proxmox_tokenid: @tokenid)
90
+ end).must_raise Fog::Proxmox::Auth::Token::UserToken::URIError
80
91
  end
81
92
  end
82
93
 
@@ -274,7 +285,7 @@ describe Fog::Proxmox::Identity do
274
285
  email: 'bobsinclar@proxmox.com'
275
286
  }
276
287
  role_hash = {
277
- roleid: 'PVETestAdmin',
288
+ roleid: 'PVETestAdmin',
278
289
  privs: 'User.Modify,Group.Allocate'
279
290
  }
280
291
  @service.roles.create(role_hash)
@@ -301,7 +312,8 @@ describe Fog::Proxmox::Identity do
301
312
  bob.destroy
302
313
  # Add ACL to groups
303
314
  group1 = @service.groups.create(groupid: 'group1', comment: 'Group 1')
304
- permission = @service.permissions.create(type: 'group', roleid: role.roleid, path: '/access', ugid: group1.groupid)
315
+ permission = @service.permissions.create(type: 'group', roleid: role.roleid, path: '/access',
316
+ ugid: group1.groupid)
305
317
  _(permission).wont_be_nil
306
318
  # Read new permission
307
319
  permissions = @service.permissions.all
@@ -357,48 +369,48 @@ describe Fog::Proxmox::Identity do
357
369
  end
358
370
  end
359
371
 
360
- it 'CRUD user tokens' do
361
- VCR.use_cassette('tokens') do
362
- # Get user
363
- bob_hash = {
364
- userid: 'bobsinclar@pve',
365
- password: 'bobsinclar1',
366
- firstname: 'Bob',
367
- lastname: 'Sinclar',
368
- email: 'bobsinclar@proxmox.com'
369
- }
370
- token_hash = {
371
- userid: bob_hash[:userid],
372
- tokenid: 'bobsinclar1'
373
- }
374
- @service.users.create(bob_hash)
375
- bob = @service.users.get token_hash[:userid]
376
- _(bob).wont_be_nil
377
- # Create Token
378
- token = bob.tokens.create(token_hash)
379
- token_info = token.info
380
- _(token_info).wont_be_nil
381
- # all user tokens
382
- tokens_all = bob.tokens.all
383
- _(tokens_all).wont_be_nil
384
- _(tokens_all).wont_be_empty
385
- _(tokens_all).must_include token
386
- # Find token info by tokenid
387
- token_get = bob.tokens.get(token_hash[:tokenid])
388
- _(token_get).wont_be_nil
389
- _(token_get).must_equal token
390
- # Update
391
- token.comment = 'test'
392
- token.expire = 0
393
- token.privsep = 0
394
- token.update
395
- # Delete
396
- token.destroy
397
- token = bob.tokens.get token_hash[:tokenid]
398
- _(token).must_be_nil
399
- bob.destroy
400
- bob= @service.users.get bob_hash[:userid]
401
- _(bob).must_be_nil
402
- end
372
+ it 'CRUD user tokens' do
373
+ VCR.use_cassette('tokens') do
374
+ # Get user
375
+ bob_hash = {
376
+ userid: 'bobsinclar@pve',
377
+ password: 'bobsinclar1',
378
+ firstname: 'Bob',
379
+ lastname: 'Sinclar',
380
+ email: 'bobsinclar@proxmox.com'
381
+ }
382
+ token_hash = {
383
+ userid: bob_hash[:userid],
384
+ tokenid: 'bobsinclar1'
385
+ }
386
+ @service.users.create(bob_hash)
387
+ bob = @service.users.get token_hash[:userid]
388
+ _(bob).wont_be_nil
389
+ # Create Token
390
+ token = bob.tokens.create(token_hash)
391
+ token_info = token.info
392
+ _(token_info).wont_be_nil
393
+ # all user tokens
394
+ tokens_all = bob.tokens.all
395
+ _(tokens_all).wont_be_nil
396
+ _(tokens_all).wont_be_empty
397
+ _(tokens_all).must_include token
398
+ # Find token info by tokenid
399
+ token_get = bob.tokens.get(token_hash[:tokenid])
400
+ _(token_get).wont_be_nil
401
+ _(token_get).must_equal token
402
+ # Update
403
+ token.comment = 'test'
404
+ token.expire = 0
405
+ token.privsep = 0
406
+ token.update
407
+ # Delete
408
+ token.destroy
409
+ token = bob.tokens.get token_hash[:tokenid]
410
+ _(token).must_be_nil
411
+ bob.destroy
412
+ bob = @service.users.get bob_hash[:userid]
413
+ _(bob).must_be_nil
403
414
  end
415
+ end
404
416
  end
data/spec/proxmox_vcr.rb CHANGED
@@ -55,7 +55,7 @@ class ProxmoxVCR
55
55
  if use_recorded
56
56
  config.cassette_library_dir = ENV['SPEC_PATH'] || @vcr_directory
57
57
  config.default_cassette_options = { record: :none }
58
- config.default_cassette_options[:match_requests_on] = %i[method uri body]
58
+ config.default_cassette_options[:match_requests_on] = %i[method path body]
59
59
  else
60
60
  config.cassette_library_dir = 'spec/debug'
61
61
  config.default_cassette_options = { record: :all }
@@ -70,8 +70,8 @@ class ProxmoxVCR
70
70
  @auth_method = Fog::Proxmox::Auth::Token::AccessTicket::NAME
71
71
  @username = 'root@pam'
72
72
  @password = 'proxmox01'
73
- @tokenid = 'root1'
74
- @token = 'ed6402b4-641d-46b1-b20a-33ba9ba12f54'
73
+ @tokenid = 'root1'
74
+ @token = 'ed6402b4-641d-46b1-b20a-33ba9ba12f54'
75
75
 
76
76
  unless use_recorded
77
77
  @auth_method = ENV['PROXMOX_AUTH_METHOD'] || options[:auth_method] || @auth_method
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-proxmox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tristan Robert
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-23 00:00:00.000000000 Z
11
+ date: 2025-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '4.7'
159
+ version: '6.1'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '4.7'
166
+ version: '6.1'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rspec
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,84 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '0.55'
187
+ version: '1.39'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '0.55'
194
+ version: '1.39'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-factory_bot
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "<"
200
+ - !ruby/object:Gem::Version
201
+ version: 2.26.0
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "<"
207
+ - !ruby/object:Gem::Version
208
+ version: 2.26.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubocop-minitest
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '0.24'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '0.24'
223
+ - !ruby/object:Gem::Dependency
224
+ name: rubocop-rake
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '0.6'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '0.6'
237
+ - !ruby/object:Gem::Dependency
238
+ name: rubocop-rspec
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '2.15'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '2.15'
251
+ - !ruby/object:Gem::Dependency
252
+ name: rubocop-rspec_rails
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "<"
256
+ - !ruby/object:Gem::Version
257
+ version: 2.29.0
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "<"
263
+ - !ruby/object:Gem::Version
264
+ version: 2.29.0
195
265
  - !ruby/object:Gem::Dependency
196
266
  name: ruby-debug-ide
197
267
  requirement: !ruby/object:Gem::Requirement
@@ -210,16 +280,16 @@ dependencies:
210
280
  name: simplecov
211
281
  requirement: !ruby/object:Gem::Requirement
212
282
  requirements:
213
- - - '='
283
+ - - "~>"
214
284
  - !ruby/object:Gem::Version
215
- version: '0.17'
285
+ version: '0.21'
216
286
  type: :development
217
287
  prerelease: false
218
288
  version_requirements: !ruby/object:Gem::Requirement
219
289
  requirements:
220
- - - '='
290
+ - - "~>"
221
291
  - !ruby/object:Gem::Version
222
- version: '0.17'
292
+ version: '0.21'
223
293
  - !ruby/object:Gem::Dependency
224
294
  name: vcr
225
295
  requirement: !ruby/object:Gem::Requirement
@@ -276,61 +346,22 @@ dependencies:
276
346
  - - "~>"
277
347
  - !ruby/object:Gem::Version
278
348
  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
349
  description: This library can be used as a module for `fog`.
294
350
  email:
295
351
  - tristan.robert.44@gmail.com
296
- executables:
297
- - console
298
- - setup
352
+ executables: []
299
353
  extensions: []
300
354
  extra_rdoc_files: []
301
355
  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
356
+ - CHANGELOG.md
322
357
  - LICENSE
323
358
  - README.md
324
- - Rakefile
325
- - bin/console
326
- - bin/setup
327
359
  - docs/compute.md
328
360
  - docs/connection_parameters.md
329
361
  - docs/getting_started.md
330
362
  - docs/identity.md
331
363
  - examples/compute.rb
332
364
  - examples/identity.rb
333
- - fog-proxmox.gemspec
334
365
  - lib/fog/proxmox.rb
335
366
  - lib/fog/proxmox/attributes.rb
336
367
  - lib/fog/proxmox/auth/token.rb
@@ -507,8 +538,9 @@ files:
507
538
  homepage: https://github.com/fog/fog-proxmox
508
539
  licenses:
509
540
  - GPL-3.0
510
- metadata: {}
511
- post_install_message:
541
+ metadata:
542
+ rubygems_mfa_required: 'true'
543
+ post_install_message:
512
544
  rdoc_options: []
513
545
  require_paths:
514
546
  - lib
@@ -523,41 +555,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
523
555
  - !ruby/object:Gem::Version
524
556
  version: '0'
525
557
  requirements: []
526
- rubygems_version: 3.2.3
527
- signing_key:
558
+ rubygems_version: 3.1.6
559
+ signing_key:
528
560
  specification_version: 4
529
561
  summary: Module for the 'Fog' gem to support Proxmox VE
530
- test_files:
531
- - spec/compute_spec.rb
532
- - spec/fixtures/proxmox/compute/common_auth.yml
533
- - spec/fixtures/proxmox/compute/containers.yml
534
- - spec/fixtures/proxmox/compute/nodes.yml
535
- - spec/fixtures/proxmox/compute/servers.yml
536
- - spec/fixtures/proxmox/compute/snapshots.yml
537
- - spec/fixtures/proxmox/compute/storages.yml
538
- - spec/fixtures/proxmox/compute/tasks.yml
539
- - spec/fixtures/proxmox/identity/auth.yml
540
- - spec/fixtures/proxmox/identity/auth_access_ticket.yml
541
- - spec/fixtures/proxmox/identity/auth_user_token.yml
542
- - spec/fixtures/proxmox/identity/common_auth.yml
543
- - spec/fixtures/proxmox/identity/domains.yml
544
- - spec/fixtures/proxmox/identity/groups.yml
545
- - spec/fixtures/proxmox/identity/permissions.yml
546
- - spec/fixtures/proxmox/identity/pools.yml
547
- - spec/fixtures/proxmox/identity/read_version.yml
548
- - spec/fixtures/proxmox/identity/roles.yml
549
- - spec/fixtures/proxmox/identity/tokens.yml
550
- - spec/fixtures/proxmox/identity/users.yml
551
- - spec/fixtures/proxmox/network/common_auth.yml
552
- - spec/fixtures/proxmox/network/networks.yml
553
- - spec/fixtures/proxmox/pve.home
554
- - spec/hash_spec.rb
555
- - spec/helpers/controller_helper_spec.rb
556
- - spec/helpers/cpu_helper_spec.rb
557
- - spec/helpers/disk_helper_spec.rb
558
- - spec/helpers/ip_helper_spec.rb
559
- - spec/helpers/nic_helper_spec.rb
560
- - spec/identity_spec.rb
561
- - spec/network_spec.rb
562
- - spec/proxmox_vcr.rb
563
- - spec/spec_helper.rb
562
+ test_files: []
data/.bundle/config DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- BUNDLE_BIN: "bin"
3
- BUNDLE_PATH: "vendor/bundle"
4
- BUNDLE_CACHE_ALL: "true"
data/.codeclimate.yml DELETED
@@ -1,14 +0,0 @@
1
- ---
2
- version: "2"
3
- plugins:
4
- rubocop:
5
- enabled: true
6
- reek:
7
- enabled: true
8
- exclude_patterns:
9
- - "tests/"
10
- - "spec/"
11
- - "vendor/"
12
- - "bin/"
13
- - "coverage/"
14
- - "examples/"