vagrant-zones 0.1.72 → 0.1.73
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-lint.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/Gemfile +11 -0
- data/lib/vagrant-zones/action/destroy.rb +1 -1
- data/lib/vagrant-zones/action/import.rb +3 -3
- data/lib/vagrant-zones/action/package.rb +2 -2
- data/lib/vagrant-zones/driver.rb +71 -19
- data/lib/vagrant-zones/provider.rb +1 -1
- data/lib/vagrant-zones/version.rb +1 -1
- data/vagrant-zones.gemspec +1 -12
- metadata +3 -205
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1db5834991b56f5766c88f90ff5f227e3dd26bd77d48df861b9983807bf24432
|
4
|
+
data.tar.gz: 58146a70bed428cd95df64bc3df9bf4766d1090a4003aea6e22fbcfa4255f1a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37f9361e1db8bb106ff23499263f98e182a6b8d2470956000e66e2db77ecca7bdf6f066f4da72a5ee1c27fab41dd84aac61e18ff1b337dcbad1fcd0702ff18e9
|
7
|
+
data.tar.gz: 430adac41fa0b0ae65a98d8d3156b4da11b552b19d3130bc6246a6f4492314c18fa792ad963fbc88573bb057b2c2616538db7bff50cfd60a60d1575072ab2f61
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.1.73](https://github.com/STARTcloud/vagrant-zones/compare/v0.1.72...v0.1.73) (2023-08-19)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* Stable OmniOS Networking via DLADM and zlogin ([93e338b](https://github.com/STARTcloud/vagrant-zones/commit/93e338b84c83d4572d6cd1aa4689e130e23d39c8))
|
9
|
+
|
3
10
|
## [0.1.72](https://github.com/STARTcloud/vagrant-zones/compare/v0.1.71...v0.1.72) (2023-02-06)
|
4
11
|
|
5
12
|
|
data/Gemfile
CHANGED
@@ -11,4 +11,15 @@ end
|
|
11
11
|
|
12
12
|
group :plugins do
|
13
13
|
gemspec
|
14
|
+
gem 'bundler', '~> 2.2', '>= 2.2.3'
|
15
|
+
gem 'code-scanning-rubocop', '~> 0.5', '>= 0.5.0'
|
16
|
+
gem 'rake', '~> 13.0', '>= 13.0.6'
|
17
|
+
gem 'rspec', '~> 3.4'
|
18
|
+
gem 'rspec-core', '~> 3.4'
|
19
|
+
gem 'rspec-expectations', '~> 3.10', '>= 3.10.0'
|
20
|
+
gem 'rspec-mocks', '~> 3.10', '>= 3.10.0'
|
21
|
+
gem 'rubocop', '~> 1.0'
|
22
|
+
gem 'rubocop-rake', '~> 0.6', '>= 0.6.0'
|
23
|
+
gem 'rubocop-rspec', '~> 2.4', '>= 2.4.0'
|
24
|
+
gem 'ruby-progressbar', '~> 1.11', '>= 1.11.0'
|
14
25
|
end
|
@@ -21,7 +21,7 @@ module VagrantPlugins
|
|
21
21
|
|
22
22
|
def validate_uuid_format(uuid)
|
23
23
|
uuid_regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
|
24
|
-
|
24
|
+
true if uuid_regex.match?(uuid.to_s.downcase)
|
25
25
|
end
|
26
26
|
|
27
27
|
def call(env)
|
@@ -97,8 +97,8 @@ module VagrantPlugins
|
|
97
97
|
@app.call(env)
|
98
98
|
end
|
99
99
|
|
100
|
-
def execute(
|
101
|
-
@executor.execute(
|
100
|
+
def execute(...)
|
101
|
+
@executor.execute(...)
|
102
102
|
end
|
103
103
|
|
104
104
|
def check(uuid, env_ui)
|
data/lib/vagrant-zones/driver.rb
CHANGED
@@ -54,8 +54,8 @@ module VagrantPlugins
|
|
54
54
|
end
|
55
55
|
|
56
56
|
# Execute System commands
|
57
|
-
def execute(
|
58
|
-
@executor.execute(
|
57
|
+
def execute(...)
|
58
|
+
@executor.execute(...)
|
59
59
|
end
|
60
60
|
|
61
61
|
## Begin installation for zone
|
@@ -233,7 +233,7 @@ module VagrantPlugins
|
|
233
233
|
ip = if opts[:ip].empty?
|
234
234
|
nil
|
235
235
|
else
|
236
|
-
opts[:ip].gsub(
|
236
|
+
opts[:ip].gsub("\t", '')
|
237
237
|
end
|
238
238
|
uii.info(I18n.t('vagrant_zones.ipaddress') + ip) if config.debug
|
239
239
|
ip
|
@@ -308,7 +308,7 @@ module VagrantPlugins
|
|
308
308
|
ip = opts[:ip].to_s
|
309
309
|
return nil if ip.empty?
|
310
310
|
|
311
|
-
return ip.gsub(
|
311
|
+
return ip.gsub("\t", '')
|
312
312
|
end
|
313
313
|
end
|
314
314
|
end
|
@@ -531,8 +531,7 @@ module VagrantPlugins
|
|
531
531
|
netplan4 = %( nameservers:\n addresses: [#{servers[0]['nameserver']} , #{servers[1]['nameserver']}] )
|
532
532
|
netplan = netplan1 + netplan2 + netplan3 + netplan4
|
533
533
|
cmd = "echo -e '#{netplan}' | sudo tee /etc/netplan/#{vnic_name}.yaml"
|
534
|
-
|
535
|
-
uii.info(infomessage) if ssh_run_command(uii, cmd)
|
534
|
+
uii.info(I18n.t('vagrant_zones.netplan_applied_static') + "/etc/netplan/#{vnic_name}.yaml") if ssh_run_command(uii, cmd)
|
536
535
|
|
537
536
|
## Apply the Configuration
|
538
537
|
uii.info(I18n.t('vagrant_zones.netplan_applied')) if ssh_run_command(uii, 'sudo netplan apply')
|
@@ -553,22 +552,24 @@ module VagrantPlugins
|
|
553
552
|
phys_if = 'pfexec dladm show-phys -m -o LINK,ADDRESS,CLIENT | tail -n +2'
|
554
553
|
phys_if_results = ssh_run_command(uii, phys_if).split("\n")
|
555
554
|
device = ''
|
555
|
+
interface = ''
|
556
556
|
phys_if_results.each do |entry|
|
557
557
|
e_mac = ''
|
558
|
-
entries = entry.strip.split
|
558
|
+
entries = entry.strip.split("\r")[1].split
|
559
559
|
entries[1].split(':').each { |x| e_mac += "#{format('%02x', x.to_i(16))}:" }
|
560
560
|
e_mac = e_mac[0..-2]
|
561
561
|
device = entries[0] if e_mac.match(/#{mac}/)
|
562
|
+
interface = entries[2] if e_mac.match(/#{mac}/)
|
562
563
|
end
|
563
564
|
|
564
|
-
delete_if = "pfexec ipadm delete-if #{device}"
|
565
|
-
rename_link = "pfexec dladm rename-link #{device} #{vnic_name}"
|
565
|
+
delete_if = interface.match(/--/) ? '' : "pfexec ipadm delete-if #{device} && "
|
566
|
+
rename_link = "pfexec dladm rename-link #{device} #{vnic_name} && "
|
566
567
|
if_create = "pfexec ipadm create-if #{vnic_name}"
|
567
568
|
static_addr = "pfexec ipadm create-addr -T static -a #{ip}/#{shrtsubnet} #{vnic_name}/v4vagrant"
|
568
|
-
net_cmd = "#{delete_if}
|
569
|
+
net_cmd = "#{delete_if} #{rename_link} #{if_create} && #{static_addr}"
|
569
570
|
uii.info(I18n.t('vagrant_zones.dladm_applied')) if ssh_run_command(uii, net_cmd)
|
570
|
-
|
571
|
-
route_add = "pfexec route -p add default #{defrouter}"
|
571
|
+
route_add = ''
|
572
|
+
route_add = "pfexec route -p add default #{defrouter}" unless defrouter.nil?
|
572
573
|
uii.info(I18n.t('vagrant_zones.dladm_route_applied')) if ssh_run_command(uii, route_add)
|
573
574
|
|
574
575
|
ns_string = "nameserver #{servers[0]['nameserver']}\nnameserver #{servers[1]['nameserver']}"
|
@@ -576,6 +577,48 @@ module VagrantPlugins
|
|
576
577
|
uii.info(I18n.t('vagrant_zones.dladm_dns_applied')) if ssh_run_command(uii, dns_set.to_s)
|
577
578
|
end
|
578
579
|
|
580
|
+
## Setup vnics for Zones using zlogin for solaris like OSes -- ie dladm
|
581
|
+
def zoneniczloginsetup_dladm(uii, opts, mac)
|
582
|
+
ip = ipaddress(uii, opts)
|
583
|
+
defrouter = opts[:gateway].to_s
|
584
|
+
vnic_name = vname(uii, opts)
|
585
|
+
shrtsubnet = IPAddr.new(opts[:netmask].to_s).to_i.to_s(2).count('1').to_s
|
586
|
+
servers = dnsservers(uii, opts)
|
587
|
+
uii.info(I18n.t('vagrant_zones.configure_interface_using_vnic_dladm'))
|
588
|
+
uii.info(" #{vnic_name}")
|
589
|
+
|
590
|
+
# loop through each phys if and run code if physif matches #{mac}
|
591
|
+
segments = mac.split(':')
|
592
|
+
new_segments = segments.map { |segment| segment.to_i(16).to_s(16) }
|
593
|
+
sanitized_mac = new_segments.join(':')
|
594
|
+
phys_if = "pfexec dladm show-phys -m -o LINK,ADDRESS,CLIENT | tail -n +2 | grep #{sanitized_mac}"
|
595
|
+
phys_if_results = zlogin(uii, phys_if)
|
596
|
+
device = ''
|
597
|
+
interface = ''
|
598
|
+
phys_if_results.each do |entry|
|
599
|
+
e_mac = ''
|
600
|
+
entries = entry.strip.split("\r")[1].split
|
601
|
+
entries[1].split(':').each { |x| e_mac += "#{format('%02x', x.to_i(16))}:" }
|
602
|
+
e_mac = e_mac[0..-2]
|
603
|
+
device = entries[0] if e_mac.match(/#{mac}/)
|
604
|
+
interface = entries[2] if e_mac.match(/#{mac}/)
|
605
|
+
end
|
606
|
+
|
607
|
+
delete_if = interface.match(/--/) ? '' : "pfexec ipadm delete-if #{device} && "
|
608
|
+
rename_link = "pfexec dladm rename-link #{device} #{vnic_name} && "
|
609
|
+
if_create = "pfexec ipadm create-if #{vnic_name}"
|
610
|
+
static_addr = "pfexec ipadm create-addr -T static -a #{ip}/#{shrtsubnet} #{vnic_name}/v4vagrant"
|
611
|
+
net_cmd = "#{delete_if} #{rename_link} #{if_create} && #{static_addr}"
|
612
|
+
uii.info(I18n.t('vagrant_zones.dladm_applied')) if zlogin(uii, net_cmd)
|
613
|
+
route_add = "pfexec route -p add default #{defrouter}"
|
614
|
+
route_add = 'echo True' if opts[:gateway].nil?
|
615
|
+
uii.info(I18n.t('vagrant_zones.dladm_route_applied')) if zlogin(uii, route_add)
|
616
|
+
|
617
|
+
ns_string = "nameserver #{servers[0]['nameserver']}\nnameserver #{servers[1]['nameserver']}"
|
618
|
+
dns_set = "pfexec echo '#{ns_string}' | pfexec tee /etc/resolv.conf"
|
619
|
+
uii.info(I18n.t('vagrant_zones.dladm_dns_applied')) if zlogin(uii, dns_set.to_s)
|
620
|
+
end
|
621
|
+
|
579
622
|
## zonecfg function for for nat Networking
|
580
623
|
def natnicconfig(uii, opts)
|
581
624
|
config = @machine.provider_config
|
@@ -1067,8 +1110,15 @@ module VagrantPlugins
|
|
1067
1110
|
mac = mac[0..-2]
|
1068
1111
|
end
|
1069
1112
|
|
1113
|
+
## Code Block to Detect OS
|
1114
|
+
cmd = 'uname -a'
|
1115
|
+
uii.info(I18n.t('vagrant_zones.os_detect'))
|
1116
|
+
os_detected = zlogin(uii, cmd)
|
1117
|
+
uii.info('Zone OS detected as: OmniOS') if os_detected.to_s.match(/SunOS/)
|
1118
|
+
|
1070
1119
|
zoneniczloginsetup_windows(uii, opts, mac) if config.os_type.to_s.match(/windows/)
|
1071
|
-
|
1120
|
+
zoneniczloginsetup_dladm(uii, opts, mac) if os_detected.to_s.match(/SunOS/)
|
1121
|
+
zoneniczloginsetup_netplan(uii, opts, mac) if !config.os_type.to_s.match(/windows/) && !os_detected.to_s.match(/SunOS/)
|
1072
1122
|
end
|
1073
1123
|
|
1074
1124
|
## This setups the Netplan based OS Networking via Zlogin
|
@@ -1093,7 +1143,6 @@ module VagrantPlugins
|
|
1093
1143
|
cmd = "echo '#{netplan}' > /etc/netplan/#{vnic_name}.yaml"
|
1094
1144
|
infomessage = I18n.t('vagrant_zones.netplan_applied_static') + "/etc/netplan/#{vnic_name}.yaml"
|
1095
1145
|
uii.info(infomessage) if zlogin(uii, cmd)
|
1096
|
-
## Apply the Configuration
|
1097
1146
|
uii.info(I18n.t('vagrant_zones.netplan_applied')) if zlogin(uii, 'netplan apply')
|
1098
1147
|
end
|
1099
1148
|
|
@@ -1340,6 +1389,7 @@ module VagrantPlugins
|
|
1340
1389
|
name = @machine.name
|
1341
1390
|
config = @machine.provider_config
|
1342
1391
|
rsp = []
|
1392
|
+
execute_return = ''
|
1343
1393
|
PTY.spawn("pfexec zlogin -C #{name}") do |zread, zwrite, pid|
|
1344
1394
|
Timeout.timeout(config.setup_wait) do
|
1345
1395
|
error_check = "echo \"Error Code: $?\"\n"
|
@@ -1347,10 +1397,11 @@ module VagrantPlugins
|
|
1347
1397
|
runonce = true
|
1348
1398
|
loop do
|
1349
1399
|
zread.expect(/\n/) { |line| rsp.push line }
|
1350
|
-
puts(rsp[-1]
|
1400
|
+
puts(rsp[-1]) if config.debug
|
1351
1401
|
zwrite.printf("#{cmd}\r\n") if runonce
|
1352
1402
|
zwrite.printf(error_check.to_s) if runonce
|
1353
1403
|
runonce = false
|
1404
|
+
execute_return = rsp[-4] if rsp[-1].to_s.match(/Error Code: 0/)
|
1354
1405
|
break if rsp[-1].to_s.match(/Error Code: 0/)
|
1355
1406
|
|
1356
1407
|
em = "#{cmd} \nFailed with ==> #{rsp[-1]}"
|
@@ -1360,6 +1411,7 @@ module VagrantPlugins
|
|
1360
1411
|
end
|
1361
1412
|
Process.kill('HUP', pid)
|
1362
1413
|
end
|
1414
|
+
execute_return
|
1363
1415
|
end
|
1364
1416
|
|
1365
1417
|
# This checks if the user exists on the VM, usually for LX zones
|
@@ -1455,7 +1507,7 @@ module VagrantPlugins
|
|
1455
1507
|
## List ZFS Snapshots, helper function to sort and display
|
1456
1508
|
def zfssnaplistdisp(zfs_snapshots, uii, index, disk)
|
1457
1509
|
uii.info("\n Disk Number: #{index}\n Disk Path: #{disk}")
|
1458
|
-
zfssnapshots = zfs_snapshots.split(
|
1510
|
+
zfssnapshots = zfs_snapshots.split("\n").reverse
|
1459
1511
|
zfssnapshots << "Snapshot\t\t\t\tUsed\tAvailable\tRefer\tPath"
|
1460
1512
|
pml, rml, aml, uml, sml = 0
|
1461
1513
|
zfssnapshots.reverse.each do |snapshot|
|
@@ -1528,7 +1580,7 @@ module VagrantPlugins
|
|
1528
1580
|
datasets.each do |disk|
|
1529
1581
|
output = execute(false, "#{@pfexec} zfs list -t snapshot -o name | grep #{disk}")
|
1530
1582
|
## Never delete the source when doing all
|
1531
|
-
output = output.split(
|
1583
|
+
output = output.split("\n").drop(1)
|
1532
1584
|
## Delete in Reverse order
|
1533
1585
|
output.reverse.each do |snaps|
|
1534
1586
|
cmd = "#{@pfexec} zfs destroy #{snaps}"
|
@@ -1542,7 +1594,7 @@ module VagrantPlugins
|
|
1542
1594
|
next unless dindex.to_i == opts[:dataset].to_i
|
1543
1595
|
|
1544
1596
|
output = execute(false, "#{@pfexec} zfs list -t snapshot -o name | grep #{disk}")
|
1545
|
-
output = output.split(
|
1597
|
+
output = output.split("\n").drop(1)
|
1546
1598
|
output.each_with_index do |snaps, spindex|
|
1547
1599
|
if opts[:snapshot_name].to_i == spindex && opts[:snapshot_name].to_s != 'all'
|
1548
1600
|
uii.info(" - #{snaps}")
|
@@ -1586,7 +1638,7 @@ module VagrantPlugins
|
|
1586
1638
|
h.each do |_k, d|
|
1587
1639
|
next unless opts[:delete] == d || opts[:delete] == 'all'
|
1588
1640
|
|
1589
|
-
cj = cronjobs[d.to_sym].to_s.gsub(
|
1641
|
+
cj = cronjobs[d.to_sym].to_s.gsub('*', '\*')
|
1590
1642
|
rc = "#{rmcr}'#{cj}' | #{sc}"
|
1591
1643
|
uii.info(" - Removing Cron: #{cj}") unless cronjobs[d.to_sym].nil?
|
1592
1644
|
execute(false, rc) unless cronjobs[d.to_sym].nil?
|
@@ -36,7 +36,7 @@ module VagrantPlugins
|
|
36
36
|
private_key_path: driver.userprivatekeypath(@machine).to_s,
|
37
37
|
PasswordAuthentication: passwordauth
|
38
38
|
}
|
39
|
-
|
39
|
+
ssh_info unless ssh_info.nil?
|
40
40
|
end
|
41
41
|
|
42
42
|
# This should return an action callable for the given name.
|
data/vagrant-zones.gemspec
CHANGED
@@ -27,22 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
|
30
|
-
spec.required_ruby_version = '>= 2.
|
30
|
+
spec.required_ruby_version = '>= 2.7.0'
|
31
31
|
spec.required_rubygems_version = '>= 1.3.6'
|
32
32
|
spec.add_runtime_dependency 'i18n', '~> 1.0'
|
33
33
|
spec.add_runtime_dependency 'iniparse', '~> 1.0'
|
34
34
|
spec.add_runtime_dependency 'log4r', '~> 1.1'
|
35
35
|
spec.add_runtime_dependency 'netaddr', '~> 2.0', '>= 2.0.4'
|
36
36
|
spec.add_runtime_dependency 'ruby_expect', '~> 1.7', '>= 1.7.5'
|
37
|
-
spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.3'
|
38
|
-
spec.add_development_dependency 'code-scanning-rubocop', '~> 0.5', '>= 0.5.0'
|
39
|
-
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
|
40
|
-
spec.add_development_dependency 'rspec', '~> 3.4'
|
41
|
-
spec.add_development_dependency 'rspec-core', '~> 3.4'
|
42
|
-
spec.add_development_dependency 'rspec-expectations', '~> 3.10', '>= 3.10.0'
|
43
|
-
spec.add_development_dependency 'rspec-mocks', '~> 3.10', '>= 3.10.0'
|
44
|
-
spec.add_development_dependency 'rubocop', '~> 1.0'
|
45
|
-
spec.add_development_dependency 'rubocop-rake', '~> 0.6', '>= 0.6.0'
|
46
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 2.4', '>= 2.4.0'
|
47
|
-
spec.add_development_dependency 'ruby-progressbar', '~> 1.11', '>= 1.11.0'
|
48
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-zones
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.73
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Gilbert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -92,208 +92,6 @@ dependencies:
|
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 1.7.5
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: bundler
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '2.2'
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: 2.2.3
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '2.2'
|
112
|
-
- - ">="
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: 2.2.3
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: code-scanning-rubocop
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '0.5'
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.5.0
|
125
|
-
type: :development
|
126
|
-
prerelease: false
|
127
|
-
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0.5'
|
132
|
-
- - ">="
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 0.5.0
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: rake
|
137
|
-
requirement: !ruby/object:Gem::Requirement
|
138
|
-
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '13.0'
|
142
|
-
- - ">="
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 13.0.6
|
145
|
-
type: :development
|
146
|
-
prerelease: false
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '13.0'
|
152
|
-
- - ">="
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version: 13.0.6
|
155
|
-
- !ruby/object:Gem::Dependency
|
156
|
-
name: rspec
|
157
|
-
requirement: !ruby/object:Gem::Requirement
|
158
|
-
requirements:
|
159
|
-
- - "~>"
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
version: '3.4'
|
162
|
-
type: :development
|
163
|
-
prerelease: false
|
164
|
-
version_requirements: !ruby/object:Gem::Requirement
|
165
|
-
requirements:
|
166
|
-
- - "~>"
|
167
|
-
- !ruby/object:Gem::Version
|
168
|
-
version: '3.4'
|
169
|
-
- !ruby/object:Gem::Dependency
|
170
|
-
name: rspec-core
|
171
|
-
requirement: !ruby/object:Gem::Requirement
|
172
|
-
requirements:
|
173
|
-
- - "~>"
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
version: '3.4'
|
176
|
-
type: :development
|
177
|
-
prerelease: false
|
178
|
-
version_requirements: !ruby/object:Gem::Requirement
|
179
|
-
requirements:
|
180
|
-
- - "~>"
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
version: '3.4'
|
183
|
-
- !ruby/object:Gem::Dependency
|
184
|
-
name: rspec-expectations
|
185
|
-
requirement: !ruby/object:Gem::Requirement
|
186
|
-
requirements:
|
187
|
-
- - "~>"
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: '3.10'
|
190
|
-
- - ">="
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: 3.10.0
|
193
|
-
type: :development
|
194
|
-
prerelease: false
|
195
|
-
version_requirements: !ruby/object:Gem::Requirement
|
196
|
-
requirements:
|
197
|
-
- - "~>"
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '3.10'
|
200
|
-
- - ">="
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: 3.10.0
|
203
|
-
- !ruby/object:Gem::Dependency
|
204
|
-
name: rspec-mocks
|
205
|
-
requirement: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '3.10'
|
210
|
-
- - ">="
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
version: 3.10.0
|
213
|
-
type: :development
|
214
|
-
prerelease: false
|
215
|
-
version_requirements: !ruby/object:Gem::Requirement
|
216
|
-
requirements:
|
217
|
-
- - "~>"
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: '3.10'
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: 3.10.0
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: rubocop
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - "~>"
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '1.0'
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - "~>"
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: '1.0'
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: rubocop-rake
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
240
|
-
requirements:
|
241
|
-
- - "~>"
|
242
|
-
- !ruby/object:Gem::Version
|
243
|
-
version: '0.6'
|
244
|
-
- - ">="
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
version: 0.6.0
|
247
|
-
type: :development
|
248
|
-
prerelease: false
|
249
|
-
version_requirements: !ruby/object:Gem::Requirement
|
250
|
-
requirements:
|
251
|
-
- - "~>"
|
252
|
-
- !ruby/object:Gem::Version
|
253
|
-
version: '0.6'
|
254
|
-
- - ">="
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
version: 0.6.0
|
257
|
-
- !ruby/object:Gem::Dependency
|
258
|
-
name: rubocop-rspec
|
259
|
-
requirement: !ruby/object:Gem::Requirement
|
260
|
-
requirements:
|
261
|
-
- - "~>"
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
version: '2.4'
|
264
|
-
- - ">="
|
265
|
-
- !ruby/object:Gem::Version
|
266
|
-
version: 2.4.0
|
267
|
-
type: :development
|
268
|
-
prerelease: false
|
269
|
-
version_requirements: !ruby/object:Gem::Requirement
|
270
|
-
requirements:
|
271
|
-
- - "~>"
|
272
|
-
- !ruby/object:Gem::Version
|
273
|
-
version: '2.4'
|
274
|
-
- - ">="
|
275
|
-
- !ruby/object:Gem::Version
|
276
|
-
version: 2.4.0
|
277
|
-
- !ruby/object:Gem::Dependency
|
278
|
-
name: ruby-progressbar
|
279
|
-
requirement: !ruby/object:Gem::Requirement
|
280
|
-
requirements:
|
281
|
-
- - "~>"
|
282
|
-
- !ruby/object:Gem::Version
|
283
|
-
version: '1.11'
|
284
|
-
- - ">="
|
285
|
-
- !ruby/object:Gem::Version
|
286
|
-
version: 1.11.0
|
287
|
-
type: :development
|
288
|
-
prerelease: false
|
289
|
-
version_requirements: !ruby/object:Gem::Requirement
|
290
|
-
requirements:
|
291
|
-
- - "~>"
|
292
|
-
- !ruby/object:Gem::Version
|
293
|
-
version: '1.11'
|
294
|
-
- - ">="
|
295
|
-
- !ruby/object:Gem::Version
|
296
|
-
version: 1.11.0
|
297
95
|
description: Vagrant provider plugin to support zones
|
298
96
|
email:
|
299
97
|
- support@prominic.net
|
@@ -385,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
385
183
|
requirements:
|
386
184
|
- - ">="
|
387
185
|
- !ruby/object:Gem::Version
|
388
|
-
version: 2.
|
186
|
+
version: 2.7.0
|
389
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
390
188
|
requirements:
|
391
189
|
- - ">="
|