vagrant-guests-photon 1.0.1 → 1.0.2
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +3 -0
- data/Gemfile +1 -0
- data/README.md +3 -4
- data/lib/vagrant-guests-photon/cap/configure_networks.rb +13 -5
- data/lib/vagrant-guests-photon/version.rb +1 -1
- data/spec/cap/configure_networks_spec.rb +42 -34
- data/spec/spec_helper.rb +2 -0
- metadata +22 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cc5901eaae4d0c91b67bc09621fe9628c680aea
|
4
|
+
data.tar.gz: c6d18e3a9af68b16b564745d2938a3218034311f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ba90e444742d70440478f3c65610dae9267f5aefcfd57d787821b3661360d7bc65d89c8fbb4a3183da03f378ac91d03105de99c2ddc250c0e36b3b1ee3d1ded
|
7
|
+
data.tar.gz: c004a45dfbe535f77eb1f034952c6835c8fb150cfa553acb01e68b778b112ba9f4420784c373306dd9c39cd4b4403b1f572d8b7c0e3d5070e7b44aea9b0b4df2
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0-p645
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
# vagrant-guests-photon
|
2
|
-
|
1
|
+
# vagrant-guests-photon [](https://travis-ci.org/vmware/vagrant-guests-photon) [](https://coveralls.io/github/vmware/vagrant-guests-photon?branch=master)
|
3
2
|
This is a [Vagrant](http://www.vagrantup.com/) [plugin](http://docs.vagrantup.com/v2/plugins/index.html) that adds VMware Photon guest support.
|
4
3
|
|
5
4
|
## Installation
|
@@ -9,7 +8,6 @@ $ vagrant plugin install vagrant-guests-photon
|
|
9
8
|
```
|
10
9
|
|
11
10
|
## Development
|
12
|
-
|
13
11
|
To build and install the plugin directly from this repo:
|
14
12
|
|
15
13
|
```
|
@@ -20,5 +18,6 @@ $ vagrant plugin install pkg/vagrant-guests-photon-1.0.1.gem
|
|
20
18
|
You can run RSpec with:
|
21
19
|
|
22
20
|
```
|
23
|
-
$
|
21
|
+
$ bundle install
|
22
|
+
$ bundle exec rake
|
24
23
|
```
|
@@ -36,11 +36,10 @@ module VagrantPlugins
|
|
36
36
|
|
37
37
|
def self.configure_networks(machine, networks)
|
38
38
|
machine.communicate.tap do |comm|
|
39
|
-
comm.sudo("rm -f /etc/systemd/network/50-vagrant-*.network")
|
40
39
|
|
41
40
|
# Read network interface names
|
42
41
|
interfaces = []
|
43
|
-
comm.sudo("ifconfig -a | grep '^eth' | cut -f1 -d' '") do |_, result|
|
42
|
+
comm.sudo("ifconfig -a | grep -E '^enp|^eth' | cut -f1 -d' '") do |_, result|
|
44
43
|
interfaces = result.split("\n")
|
45
44
|
end
|
46
45
|
|
@@ -54,9 +53,10 @@ module VagrantPlugins
|
|
54
53
|
next
|
55
54
|
end
|
56
55
|
|
57
|
-
unit_name =
|
58
|
-
|
59
|
-
|
56
|
+
unit_name = find_network_file comm, iface
|
57
|
+
comm.sudo("rm -f /etc/systemd/network/#{unit_name}")
|
58
|
+
|
59
|
+
if network[:type] == :static
|
60
60
|
cidr = IPAddr.new(network[:netmask]).to_cidr
|
61
61
|
address = "%s/%s" % [network[:ip], cidr]
|
62
62
|
unit_file = STATIC_NETWORK % [iface, address]
|
@@ -78,6 +78,14 @@ module VagrantPlugins
|
|
78
78
|
comm.sudo("systemctl restart systemd-networkd.service")
|
79
79
|
end
|
80
80
|
end
|
81
|
+
|
82
|
+
def self.find_network_file(comm, iface)
|
83
|
+
comm.sudo("grep #{iface} /etc/systemd/network/* | awk -F\: '{print $1}' | head -n1") do |_, result|
|
84
|
+
puts result
|
85
|
+
return File.basename(result.strip)
|
86
|
+
end
|
87
|
+
return "50-vagrant-%s.network" % [iface]
|
88
|
+
end
|
81
89
|
end
|
82
90
|
end
|
83
91
|
end
|
@@ -46,31 +46,34 @@ describe VagrantPlugins::GuestPhoton::Cap::ConfigureNetworks do
|
|
46
46
|
}
|
47
47
|
]
|
48
48
|
|
49
|
-
interfaces = "
|
49
|
+
interfaces = "enp0s3\nenp0s8\neth2\nenp1s5\nenp1s6\n"
|
50
50
|
|
51
51
|
before do
|
52
|
-
communicate.stub(:sudo).with("ifconfig -a | grep '^eth' | cut -f1 -d' '")
|
52
|
+
communicate.stub(:sudo).with("ifconfig -a | grep -E '^enp|^eth' | cut -f1 -d' '")
|
53
53
|
.and_yield(nil, interfaces)
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'should configure networks' do
|
57
|
-
communicate.should_receive(:sudo).with("
|
58
|
-
communicate.should_receive(:sudo).with("ifconfig -a | grep '^eth' | cut -f1 -d' '")
|
57
|
+
communicate.should_receive(:sudo).with("ifconfig -a | grep -E '^enp|^eth' | cut -f1 -d' '")
|
59
58
|
|
60
|
-
#
|
59
|
+
# enp0s8
|
60
|
+
communicate.should_receive(:sudo).with("grep enp0s8 /etc/systemd/network/* | awk -F: '{print $1}' | head -n1")
|
61
|
+
communicate.should_receive(:sudo).with("rm -f /etc/systemd/network/50-vagrant-enp0s8.network")
|
61
62
|
communicate.should_receive(:upload) do |src, dst|
|
62
63
|
contents = (File.readlines src).join("")
|
63
|
-
contents.should eq "[Match]\nName=
|
64
|
-
dst.should eq "/tmp/50-vagrant-
|
64
|
+
contents.should eq "[Match]\nName=enp0s8\n\n[Network]\nAddress=192.168.10.10/24\n"
|
65
|
+
dst.should eq "/tmp/50-vagrant-enp0s8.network"
|
65
66
|
end
|
66
67
|
communicate.should_receive(:sudo)
|
67
|
-
.with("mv /tmp/50-vagrant-
|
68
|
+
.with("mv /tmp/50-vagrant-enp0s8.network /etc/systemd/network/")
|
68
69
|
communicate.should_receive(:sudo)
|
69
|
-
.with("chown root:root /etc/systemd/network/50-vagrant-
|
70
|
+
.with("chown root:root /etc/systemd/network/50-vagrant-enp0s8.network")
|
70
71
|
communicate.should_receive(:sudo)
|
71
|
-
.with("chmod +r /etc/systemd/network/50-vagrant-
|
72
|
+
.with("chmod +r /etc/systemd/network/50-vagrant-enp0s8.network")
|
72
73
|
|
73
74
|
# eth2
|
75
|
+
communicate.should_receive(:sudo).with("grep eth2 /etc/systemd/network/* | awk -F: '{print $1}' | head -n1")
|
76
|
+
communicate.should_receive(:sudo).with("rm -f /etc/systemd/network/50-vagrant-eth2.network")
|
74
77
|
communicate.should_receive(:upload) do |src, dst|
|
75
78
|
contents = (File.readlines src).join("")
|
76
79
|
contents.should eq "[Match]\nName=eth2\n\n[Network]\nDHCP=yes\n"
|
@@ -83,31 +86,35 @@ describe VagrantPlugins::GuestPhoton::Cap::ConfigureNetworks do
|
|
83
86
|
communicate.should_receive(:sudo)
|
84
87
|
.with("chmod +r /etc/systemd/network/50-vagrant-eth2.network")
|
85
88
|
|
86
|
-
#
|
89
|
+
# enp1s5
|
90
|
+
communicate.should_receive(:sudo).with("grep enp1s5 /etc/systemd/network/* | awk -F: '{print $1}' | head -n1")
|
91
|
+
communicate.should_receive(:sudo).with("rm -f /etc/systemd/network/50-vagrant-enp1s5.network")
|
87
92
|
communicate.should_receive(:upload) do |src, dst|
|
88
93
|
contents = (File.readlines src).join("")
|
89
|
-
contents.should eq "[Match]\nName=
|
90
|
-
dst.should eq "/tmp/50-vagrant-
|
94
|
+
contents.should eq "[Match]\nName=enp1s5\n\n[Network]\nDHCP=yes\n"
|
95
|
+
dst.should eq "/tmp/50-vagrant-enp1s5.network"
|
91
96
|
end
|
92
97
|
communicate.should_receive(:sudo)
|
93
|
-
.with("mv /tmp/50-vagrant-
|
98
|
+
.with("mv /tmp/50-vagrant-enp1s5.network /etc/systemd/network/")
|
94
99
|
communicate.should_receive(:sudo)
|
95
|
-
.with("chown root:root /etc/systemd/network/50-vagrant-
|
100
|
+
.with("chown root:root /etc/systemd/network/50-vagrant-enp1s5.network")
|
96
101
|
communicate.should_receive(:sudo)
|
97
|
-
.with("chmod +r /etc/systemd/network/50-vagrant-
|
102
|
+
.with("chmod +r /etc/systemd/network/50-vagrant-enp1s5.network")
|
98
103
|
|
99
|
-
#
|
104
|
+
# enp1s6
|
105
|
+
communicate.should_receive(:sudo).with("grep enp1s6 /etc/systemd/network/* | awk -F: '{print $1}' | head -n1")
|
106
|
+
communicate.should_receive(:sudo).with("rm -f /etc/systemd/network/50-vagrant-enp1s6.network")
|
100
107
|
communicate.should_receive(:upload) do |src, dst|
|
101
108
|
contents = (File.readlines src).join("")
|
102
|
-
contents.should eq "[Match]\nName=
|
103
|
-
dst.should eq "/tmp/50-vagrant-
|
109
|
+
contents.should eq "[Match]\nName=enp1s6\n\n[Network]\nAddress=192.168.1.201/24\n"
|
110
|
+
dst.should eq "/tmp/50-vagrant-enp1s6.network"
|
104
111
|
end
|
105
112
|
communicate.should_receive(:sudo)
|
106
|
-
.with("mv /tmp/50-vagrant-
|
113
|
+
.with("mv /tmp/50-vagrant-enp1s6.network /etc/systemd/network/")
|
107
114
|
communicate.should_receive(:sudo)
|
108
|
-
.with("chown root:root /etc/systemd/network/50-vagrant-
|
115
|
+
.with("chown root:root /etc/systemd/network/50-vagrant-enp1s6.network")
|
109
116
|
communicate.should_receive(:sudo)
|
110
|
-
.with("chmod +r /etc/systemd/network/50-vagrant-
|
117
|
+
.with("chmod +r /etc/systemd/network/50-vagrant-enp1s6.network")
|
111
118
|
|
112
119
|
communicate.should_receive(:sudo).with("systemctl restart systemd-networkd.service")
|
113
120
|
|
@@ -115,7 +122,7 @@ describe VagrantPlugins::GuestPhoton::Cap::ConfigureNetworks do
|
|
115
122
|
end
|
116
123
|
end
|
117
124
|
|
118
|
-
context 'configure 2 kinds of networks without
|
125
|
+
context 'configure 2 kinds of networks without enp0s8' do
|
119
126
|
networks = [
|
120
127
|
# config.vm.network :private_network, ip: "192.168.33.10"
|
121
128
|
{
|
@@ -137,30 +144,31 @@ describe VagrantPlugins::GuestPhoton::Cap::ConfigureNetworks do
|
|
137
144
|
}
|
138
145
|
]
|
139
146
|
|
140
|
-
interfaces = "
|
147
|
+
interfaces = "enp0s3\nenp0s8\n"
|
141
148
|
|
142
149
|
before do
|
143
|
-
communicate.stub(:sudo).with("ifconfig -a | grep '^eth' | cut -f1 -d' '")
|
150
|
+
communicate.stub(:sudo).with("ifconfig -a | grep -E '^enp|^eth' | cut -f1 -d' '")
|
144
151
|
.and_yield(nil, interfaces)
|
145
152
|
@@logger = Log4r::Logger.new("vagrant::guest::photon::configure_networks")
|
146
153
|
end
|
147
154
|
|
148
|
-
it 'should configure networks without
|
149
|
-
communicate.should_receive(:sudo).with("
|
150
|
-
communicate.should_receive(:sudo).with("
|
155
|
+
it 'should configure networks without enp0s9' do
|
156
|
+
communicate.should_receive(:sudo).with("ifconfig -a | grep -E '^enp|^eth' | cut -f1 -d' '")
|
157
|
+
communicate.should_receive(:sudo).with("grep enp0s8 /etc/systemd/network/* | awk -F: '{print $1}' | head -n1")
|
158
|
+
communicate.should_receive(:sudo).with("rm -f /etc/systemd/network/50-vagrant-enp0s8.network")
|
151
159
|
|
152
|
-
#
|
160
|
+
# enp0s8
|
153
161
|
communicate.should_receive(:upload) do |src, dst|
|
154
162
|
contents = (File.readlines src).join("")
|
155
|
-
contents.should eq "[Match]\nName=
|
156
|
-
dst.should eq "/tmp/50-vagrant-
|
163
|
+
contents.should eq "[Match]\nName=enp0s8\n\n[Network]\nAddress=192.168.10.10/24\n"
|
164
|
+
dst.should eq "/tmp/50-vagrant-enp0s8.network"
|
157
165
|
end
|
158
166
|
communicate.should_receive(:sudo)
|
159
|
-
.with("mv /tmp/50-vagrant-
|
167
|
+
.with("mv /tmp/50-vagrant-enp0s8.network /etc/systemd/network/")
|
160
168
|
communicate.should_receive(:sudo)
|
161
|
-
.with("chown root:root /etc/systemd/network/50-vagrant-
|
169
|
+
.with("chown root:root /etc/systemd/network/50-vagrant-enp0s8.network")
|
162
170
|
communicate.should_receive(:sudo)
|
163
|
-
.with("chmod +r /etc/systemd/network/50-vagrant-
|
171
|
+
.with("chmod +r /etc/systemd/network/50-vagrant-enp0s8.network")
|
164
172
|
|
165
173
|
# eth2
|
166
174
|
@@logger.should_receive(:warn).with(
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,97 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-guests-photon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Rapposelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '2.14'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.14'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-expectations
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2.14'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2.14'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec-mocks
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '2.14'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.14'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
description: Enables Vagrant to manage VMware Photon machines.
|
@@ -100,9 +100,11 @@ executables: []
|
|
100
100
|
extensions: []
|
101
101
|
extra_rdoc_files: []
|
102
102
|
files:
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
103
|
+
- .gitignore
|
104
|
+
- .rspec
|
105
|
+
- .rubocop.yml
|
106
|
+
- .ruby-version
|
107
|
+
- .travis.yml
|
106
108
|
- Gemfile
|
107
109
|
- LICENSE
|
108
110
|
- README.md
|
@@ -131,17 +133,17 @@ require_paths:
|
|
131
133
|
- lib
|
132
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|
133
135
|
requirements:
|
134
|
-
- -
|
136
|
+
- - '>='
|
135
137
|
- !ruby/object:Gem::Version
|
136
138
|
version: '0'
|
137
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
140
|
requirements:
|
139
|
-
- -
|
141
|
+
- - '>='
|
140
142
|
- !ruby/object:Gem::Version
|
141
143
|
version: '0'
|
142
144
|
requirements: []
|
143
145
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.0.14
|
145
147
|
signing_key:
|
146
148
|
specification_version: 4
|
147
149
|
summary: VMware Photon Guest Plugin for Vagrant
|