nuageinit.sh (19fb9ad746517c7af9d79a982334b2550f285355) nuageinit.sh (504981357aa36365784458cfe8d9e23097bfac7b)
1#-
2# Copyright (c) 2022 Baptiste Daroussin <bapt@FreeBSD.org>
3#
4# SPDX-License-Identifier: BSD-2-Clause
5#
6
1atf_test_case args
2atf_test_case nocloud
3atf_test_case nocloud_userdata_script
4atf_test_case nocloud_user_data_script
7atf_test_case args
8atf_test_case nocloud
9atf_test_case nocloud_userdata_script
10atf_test_case nocloud_user_data_script
5atf_test_case nocloud_userdata_cloudconfig
6atf_test_case nocloud_userdata_cloudconfig_users
7atf_test_case nocloud_network
8atf_test_case config2
9atf_test_case config2_pubkeys
10atf_test_case config2_pubkeys_user_data
11atf_test_case config2_pubkeys_meta_data
12atf_test_case config2_network
13atf_test_case config2_network_static_v4
14
11atf_test_case nocloud_userdata_cloudconfig_users
12atf_test_case nocloud_network
13atf_test_case config2
14atf_test_case config2_pubkeys
15atf_test_case config2_pubkeys_user_data
16atf_test_case config2_pubkeys_meta_data
17atf_test_case config2_network
18atf_test_case config2_network_static_v4
19
15
16args_body()
17{
18 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit
19 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla
20 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla meh plop
21 atf_check -s exit:1 -e inline:"Unknown cloud init type: meh\n" /usr/libexec/nuageinit bla meh
22}
23

--- 14 unchanged lines hidden (view full) ---

38 atf_check -o inline:"hostname=\"myhost\"\n" cat etc/rc.conf.d/hostname
39}
40
41nocloud_userdata_script_body()
42{
43 here=$(pwd)
44 mkdir -p media/nuageinit
45 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
20args_body()
21{
22 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit
23 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla
24 atf_check -s exit:1 -e inline:"Usage /usr/libexec/nuageinit <cloud-init directory> [config-2|nocloud]\n" /usr/libexec/nuageinit bla meh plop
25 atf_check -s exit:1 -e inline:"Unknown cloud init type: meh\n" /usr/libexec/nuageinit bla meh
26}
27

--- 14 unchanged lines hidden (view full) ---

42 atf_check -o inline:"hostname=\"myhost\"\n" cat etc/rc.conf.d/hostname
43}
44
45nocloud_userdata_script_body()
46{
47 here=$(pwd)
48 mkdir -p media/nuageinit
49 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
46 printf "#!/bin/sh\necho "yeah"\n" > ${here}/media/nuageinit/user-data
47 chmod 755 ${here}/media/nuageinit/user-data
50 printf "#!/bin/sh\necho yeah\n" > ${here}/media/nuageinit/user-data
51 chmod 755 ${here}/media/nuageinit/user-data
48 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
49}
50
51nocloud_user_data_script_body()
52{
53 here=$(pwd)
54 mkdir -p media/nuageinit
55 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
52 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
53}
54
55nocloud_user_data_script_body()
56{
57 here=$(pwd)
58 mkdir -p media/nuageinit
59 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
56 printf "#!/bin/sh\necho "yeah"\n" > ${here}/media/nuageinit/user_data
57 chmod 755 ${here}/media/nuageinit/user_data
60 printf "#!/bin/sh\necho yeah\n" > ${here}/media/nuageinit/user_data
61 chmod 755 ${here}/media/nuageinit/user_data
58 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
59}
60
61nocloud_userdata_cloudconfig_users_body()
62{
63 here=$(pwd)
64 export NUAGE_FAKE_ROOTDIR=$(pwd)
65 if [ $(id -u) -ne 0 ]; then
66 atf_skip "root required"
67 fi
68 mkdir -p media/nuageinit
69 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
70 mkdir -p etc
62 atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
63}
64
65nocloud_userdata_cloudconfig_users_body()
66{
67 here=$(pwd)
68 export NUAGE_FAKE_ROOTDIR=$(pwd)
69 if [ $(id -u) -ne 0 ]; then
70 atf_skip "root required"
71 fi
72 mkdir -p media/nuageinit
73 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
74 mkdir -p etc
71 cat > etc/master.passwd <<EOF
75 cat > etc/master.passwd << EOF
72root:*:0:0::0:0:Charlie &:/root:/bin/csh
73sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
74EOF
75 pwd_mkdb -d etc ${here}/etc/master.passwd
76root:*:0:0::0:0:Charlie &:/root:/bin/csh
77sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
78EOF
79 pwd_mkdb -d etc ${here}/etc/master.passwd
76 cat > etc/group <<EOF
80 cat > etc/group << EOF
77wheel:*:0:root
78users:*:1:
79EOF
81wheel:*:0:root
82users:*:1:
83EOF
80 cat > media/nuageinit/user-data <<EOF
84 cat > media/nuageinit/user-data << EOF
81#cloud-config
82groups:
83 - admingroup: [root,sys]
84 - cloud-users
85users:
86 - default
87 - name: foobar
88 gecos: Foo B. Bar

--- 21 unchanged lines hidden (view full) ---

110 atf_check -o file:expectedgroup cat ${here}/etc/group
111}
112
113nocloud_network_body()
114{
115 here=$(pwd)
116 mkdir -p media/nuageinit
117 mkdir -p etc
85#cloud-config
86groups:
87 - admingroup: [root,sys]
88 - cloud-users
89users:
90 - default
91 - name: foobar
92 gecos: Foo B. Bar

--- 21 unchanged lines hidden (view full) ---

114 atf_check -o file:expectedgroup cat ${here}/etc/group
115}
116
117nocloud_network_body()
118{
119 here=$(pwd)
120 mkdir -p media/nuageinit
121 mkdir -p etc
118 cat > etc/master.passwd <<EOF
122 cat > etc/master.passwd << EOF
119root:*:0:0::0:0:Charlie &:/root:/bin/csh
120sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
121EOF
122 pwd_mkdb -d etc ${here}/etc/master.passwd
123root:*:0:0::0:0:Charlie &:/root:/bin/csh
124sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
125EOF
126 pwd_mkdb -d etc ${here}/etc/master.passwd
123 cat > etc/group <<EOF
127 cat > etc/group << EOF
124wheel:*:0:root
125users:*:1:
126EOF
127 if [ $(id -u) -ne 0 ]; then
128 atf_skip "root required"
129 fi
130 mynetworks=$(ifconfig -l ether)
131 if [ -z "$mynetworks" ]; then
132 atf_skip "a network interface is needed"
133 fi
134 set -- $mynetworks
135 myiface=$1
136 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
137 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
128wheel:*:0:root
129users:*:1:
130EOF
131 if [ $(id -u) -ne 0 ]; then
132 atf_skip "root required"
133 fi
134 mynetworks=$(ifconfig -l ether)
135 if [ -z "$mynetworks" ]; then
136 atf_skip "a network interface is needed"
137 fi
138 set -- $mynetworks
139 myiface=$1
140 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
141 printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data
138 cat > media/nuageinit/user-data <<EOF
142 cat > media/nuageinit/user-data << EOF
139#cloud-config
143#cloud-config
140#
141network:
142 version: 2
143 ethernets:
144 # opaque ID for physical interfaces, only referred to by other stanzas
145 id0:
146 match:
144network:
145 version: 2
146 ethernets:
147 # opaque ID for physical interfaces, only referred to by other stanzas
148 id0:
149 match:
147 macaddress: '${myaddr}'
150 macaddress: "$myaddr"
148 addresses:
149 - 192.168.14.2/24
150 - 2001:1::1/64
151 gateway4: 192.168.14.1
152 gateway6: 2001:1::2
153EOF
154 export NUAGE_FAKE_ROOTDIR=$(pwd)
155 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
151 addresses:
152 - 192.168.14.2/24
153 - 2001:1::1/64
154 gateway4: 192.168.14.1
155 gateway6: 2001:1::2
156EOF
157 export NUAGE_FAKE_ROOTDIR=$(pwd)
158 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit nocloud
156 cat > network <<EOF
159 cat > network << EOF
157ifconfig_${myiface}="inet 192.168.14.2/24"
158ifconfig_${myiface}_ipv6="inet6 2001:1::1/64"
159ipv6_network_interfaces="${myiface}"
160ipv6_default_interface="${myiface}"
161EOF
160ifconfig_${myiface}="inet 192.168.14.2/24"
161ifconfig_${myiface}_ipv6="inet6 2001:1::1/64"
162ipv6_network_interfaces="${myiface}"
163ipv6_default_interface="${myiface}"
164EOF
162 cat > routing <<EOF
165 cat > routing << EOF
163defaultrouter="192.168.14.1"
164ipv6_defaultrouter="2001:1::2"
165ipv6_route_${myiface}="2001:1::2 -prefixlen 128 -interface ${myiface}"
166EOF
167 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
168 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
169}
170config2_body()
171{
172 here=$(pwd)
173 mkdir -p media/nuageinit
174 atf_check -s exit:1 -e match:"nuageinit: error parsing config-2: meta_data.json.*" /usr/libexec/nuageinit ${here}/media/nuageinit config-2
175 printf "{}" > media/nuageinit/meta_data.json
176 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
177 cat > media/nuageinit/meta_data.json << EOF
178{
166defaultrouter="192.168.14.1"
167ipv6_defaultrouter="2001:1::2"
168ipv6_route_${myiface}="2001:1::2 -prefixlen 128 -interface ${myiface}"
169EOF
170 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
171 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
172}
173config2_body()
174{
175 here=$(pwd)
176 mkdir -p media/nuageinit
177 atf_check -s exit:1 -e match:"nuageinit: error parsing config-2: meta_data.json.*" /usr/libexec/nuageinit ${here}/media/nuageinit config-2
178 printf "{}" > media/nuageinit/meta_data.json
179 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
180 cat > media/nuageinit/meta_data.json << EOF
181{
179 "hostname": "cloudimg",
182 "hostname": "cloudimg"
180}
181EOF
182 export NUAGE_FAKE_ROOTDIR=$(pwd)
183 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
184 atf_check -o inline:"hostname=\"cloudimg\"\n" cat etc/rc.conf.d/hostname
185}
186
187config2_pubkeys_body()
188{
189 here=$(pwd)
190 export NUAGE_FAKE_ROOTDIR=$(pwd)
191 if [ $(id -u) -ne 0 ]; then
192 atf_skip "root required"
193 fi
194 mkdir -p media/nuageinit
195 touch media/nuageinit/meta_data.json
196 cat > media/nuageinit/user-data << EOF
197#cloud-config
183}
184EOF
185 export NUAGE_FAKE_ROOTDIR=$(pwd)
186 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
187 atf_check -o inline:"hostname=\"cloudimg\"\n" cat etc/rc.conf.d/hostname
188}
189
190config2_pubkeys_body()
191{
192 here=$(pwd)
193 export NUAGE_FAKE_ROOTDIR=$(pwd)
194 if [ $(id -u) -ne 0 ]; then
195 atf_skip "root required"
196 fi
197 mkdir -p media/nuageinit
198 touch media/nuageinit/meta_data.json
199 cat > media/nuageinit/user-data << EOF
200#cloud-config
198
199ssh_authorized_keys:
200 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova"
201EOF
202 mkdir -p etc
201ssh_authorized_keys:
202 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova"
203EOF
204 mkdir -p etc
203 cat > etc/master.passwd <<EOF
205 cat > etc/master.passwd << EOF
204root:*:0:0::0:0:Charlie &:/root:/bin/csh
205sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
206EOF
207 pwd_mkdb -d etc ${here}/etc/master.passwd
206root:*:0:0::0:0:Charlie &:/root:/bin/csh
207sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
208EOF
209 pwd_mkdb -d etc ${here}/etc/master.passwd
208 cat > etc/group <<EOF
210 cat > etc/group << EOF
209wheel:*:0:root
210users:*:1:
211EOF
212 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
213 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys
214}
215
216
217config2_pubkeys_user_data_body()
218{
219 here=$(pwd)
220 export NUAGE_FAKE_ROOTDIR=$(pwd)
221 if [ $(id -u) -ne 0 ]; then
222 atf_skip "root required"
223 fi
224 mkdir -p media/nuageinit
225 touch media/nuageinit/meta_data.json
226 cat > media/nuageinit/user_data << EOF
227#cloud-config
211wheel:*:0:root
212users:*:1:
213EOF
214 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
215 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys
216}
217
218
219config2_pubkeys_user_data_body()
220{
221 here=$(pwd)
222 export NUAGE_FAKE_ROOTDIR=$(pwd)
223 if [ $(id -u) -ne 0 ]; then
224 atf_skip "root required"
225 fi
226 mkdir -p media/nuageinit
227 touch media/nuageinit/meta_data.json
228 cat > media/nuageinit/user_data << EOF
229#cloud-config
228
229ssh_authorized_keys:
230 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova"
231EOF
232 mkdir -p etc
230ssh_authorized_keys:
231 - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova"
232EOF
233 mkdir -p etc
233 cat > etc/master.passwd <<EOF
234 cat > etc/master.passwd << EOF
234root:*:0:0::0:0:Charlie &:/root:/bin/csh
235sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
236EOF
237 pwd_mkdb -d etc ${here}/etc/master.passwd
235root:*:0:0::0:0:Charlie &:/root:/bin/csh
236sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
237EOF
238 pwd_mkdb -d etc ${here}/etc/master.passwd
238 cat > etc/group <<EOF
239 cat > etc/group << EOF
239wheel:*:0:root
240users:*:1:
241EOF
242 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
243 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys
244}
245
246config2_pubkeys_meta_data_body()
247{
248 here=$(pwd)
249 export NUAGE_FAKE_ROOTDIR=$(pwd)
250 if [ $(id -u) -ne 0 ]; then
251 atf_skip "root required"
252 fi
253 mkdir -p media/nuageinit
240wheel:*:0:root
241users:*:1:
242EOF
243 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
244 atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys
245}
246
247config2_pubkeys_meta_data_body()
248{
249 here=$(pwd)
250 export NUAGE_FAKE_ROOTDIR=$(pwd)
251 if [ $(id -u) -ne 0 ]; then
252 atf_skip "root required"
253 fi
254 mkdir -p media/nuageinit
254 cat > media/nuageinit/meta_data.json <<EOF
255 cat > media/nuageinit/meta_data.json << EOF
255{
256{
256 "uuid": "uuid_for_this_instance",
257 "admin_pass": "a_generated_password",
258 "public_keys": {
259 "tdb": "ssh-ed25519 my_key_id tdb@host"
260 },
261 "keys": [
262 {
263 "name": "tdb",
264 "type": "ssh",
265 "data": "ssh-ed25519 my_key_id tdb@host"
266 }
267 ],
268 "hostname": "freebsd-14-test.novalocal",
269 "name": "freebsd-14-test",
270 "launch_index": 0,
271 "availability_zone": "nova",
272 "random_seed": "long_random_seed",
273 "project_id": "my_project_id",
274 "devices": [],
275 "dedicated_cpus": []
257 "uuid": "uuid_for_this_instance",
258 "admin_pass": "a_generated_password",
259 "public_keys": {
260 "tdb": "ssh-ed25519 my_key_id tdb@host"
261 },
262 "keys": [
263 {
264 "name": "tdb",
265 "type": "ssh",
266 "data": "ssh-ed25519 my_key_id tdb@host"
267 }
268 ],
269 "hostname": "freebsd-14-test.novalocal",
270 "name": "freebsd-14-test",
271 "launch_index": 0,
272 "availability_zone": "nova",
273 "random_seed": "long_random_seed",
274 "project_id": "my_project_id",
275 "devices": [],
276 "dedicated_cpus": []
276}
277EOF
278 mkdir -p etc
277}
278EOF
279 mkdir -p etc
279 cat > etc/master.passwd <<EOF
280 cat > etc/master.passwd << EOF
280root:*:0:0::0:0:Charlie &:/root:/bin/csh
281sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
282EOF
283 pwd_mkdb -d etc ${here}/etc/master.passwd
281root:*:0:0::0:0:Charlie &:/root:/bin/csh
282sys:*:1:0::0:0:Sys:/home/sys:/bin/csh
283EOF
284 pwd_mkdb -d etc ${here}/etc/master.passwd
284 cat > etc/group <<EOF
285 cat > etc/group << EOF
285wheel:*:0:root
286users:*:1:
287EOF
288 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
289 atf_check -o inline:"ssh-ed25519 my_key_id tdb@host\n" cat home/freebsd/.ssh/authorized_keys
290}
291
286wheel:*:0:root
287users:*:1:
288EOF
289 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
290 atf_check -o inline:"ssh-ed25519 my_key_id tdb@host\n" cat home/freebsd/.ssh/authorized_keys
291}
292
292config2_network_body() {
293config2_network_body()
294{
293 here=$(pwd)
294 mkdir -p media/nuageinit
295 printf "{}" > media/nuageinit/meta_data.json
296 mynetworks=$(ifconfig -l ether)
297 if [ -z "$mynetworks" ]; then
298 atf_skip "a network interface is needed"
299 fi
300 set -- $mynetworks
301 myiface=$1
302 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
295 here=$(pwd)
296 mkdir -p media/nuageinit
297 printf "{}" > media/nuageinit/meta_data.json
298 mynetworks=$(ifconfig -l ether)
299 if [ -z "$mynetworks" ]; then
300 atf_skip "a network interface is needed"
301 fi
302 set -- $mynetworks
303 myiface=$1
304 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
303cat > media/nuageinit/network_data.json <<EOF
305cat > media/nuageinit/network_data.json << EOF
304{
305 "links": [
306 {
307 "ethernet_mac_address": "$myaddr",
308 "id": "iface0",
306{
307 "links": [
308 {
309 "ethernet_mac_address": "$myaddr",
310 "id": "iface0",
309 "mtu": null,
311 "mtu": null
310 }
311 ],
312 "networks": [
313 {
314 "id": "network0",
315 "link": "iface0",
316 "type": "ipv4_dhcp"
317 },
312 }
313 ],
314 "networks": [
315 {
316 "id": "network0",
317 "link": "iface0",
318 "type": "ipv4_dhcp"
319 },
318 { // IPv6
319 "id": "private-ipv4",
320 "type": "ipv6",
321 "link": "iface0",
322 // supports condensed IPv6 with CIDR netmask
323 "ip_address": "2001:cdba::3257:9652/24",
324 "gateway": "fd00::1"
325 "routes": [
326 {
327 "network": "::",
328 "netmask": "::",
329 "gateway": "fd00::1"
330 },
331 {
332 "network": "::",
333 "netmask": "ffff:ffff:ffff::",
334 "gateway": "fd00::1:1"
335 },
336 ],
337 "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d8"
338},
339 ],
320 { // IPv6
321 "id": "private-ipv4",
322 "type": "ipv6",
323 "link": "iface0",
324 // supports condensed IPv6 with CIDR netmask
325 "ip_address": "2001:cdba::3257:9652/24",
326 "gateway": "fd00::1",
327 "routes": [
328 {
329 "network": "::",
330 "netmask": "::",
331 "gateway": "fd00::1"
332 },
333 {
334 "network": "::",
335 "netmask": "ffff:ffff:ffff::",
336 "gateway": "fd00::1:1"
337 }
338 ],
339 "network_id": "da5bb487-5193-4a65-a3df-4a0055a8c0d8"
340 }
341 ]
340}
341EOF
342 export NUAGE_FAKE_ROOTDIR=$(pwd)
343 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
342}
343EOF
344 export NUAGE_FAKE_ROOTDIR=$(pwd)
345 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
344 cat > network <<EOF
346 cat > network << EOF
345ifconfig_${myiface}="DHCP"
346ifconfig_${myiface}_ipv6="inet6 2001:cdba::3257:9652/24"
347ipv6_network_interfaces="${myiface}"
348ipv6_default_interface="${myiface}"
349EOF
347ifconfig_${myiface}="DHCP"
348ifconfig_${myiface}_ipv6="inet6 2001:cdba::3257:9652/24"
349ipv6_network_interfaces="${myiface}"
350ipv6_default_interface="${myiface}"
351EOF
350 cat > routing <<EOF
352 cat > routing << EOF
351ipv6_defaultrouter="fd00::1"
352ipv6_route_${myiface}="fd00::1 -prefixlen 128 -interface ${myiface}"
353ipv6_static_routes="${myiface}"
354EOF
355 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
356 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
357}
358
353ipv6_defaultrouter="fd00::1"
354ipv6_route_${myiface}="fd00::1 -prefixlen 128 -interface ${myiface}"
355ipv6_static_routes="${myiface}"
356EOF
357 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
358 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
359}
360
359config2_network_static_v4_body() {
361config2_network_static_v4_body()
362{
360 here=$(pwd)
361 mkdir -p media/nuageinit
362 printf "{}" > media/nuageinit/meta_data.json
363 mynetworks=$(ifconfig -l ether)
364 if [ -z "$mynetworks" ]; then
365 atf_skip "a network interface is needed"
366 fi
367 set -- $mynetworks
368 myiface=$1
369 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
363 here=$(pwd)
364 mkdir -p media/nuageinit
365 printf "{}" > media/nuageinit/meta_data.json
366 mynetworks=$(ifconfig -l ether)
367 if [ -z "$mynetworks" ]; then
368 atf_skip "a network interface is needed"
369 fi
370 set -- $mynetworks
371 myiface=$1
372 myaddr=$(ifconfig $myiface ether | awk '/ether/ { print $2 }')
370cat > media/nuageinit/network_data.json <<EOF
373cat > media/nuageinit/network_data.json << EOF
371{
372 "links": [
373 {
374 "ethernet_mac_address": "$myaddr",
375 "id": "iface0",
374{
375 "links": [
376 {
377 "ethernet_mac_address": "$myaddr",
378 "id": "iface0",
376 "mtu": null,
379 "mtu": null
377 }
378 ],
379 "networks": [
380 {
381 "id": "network0",
382 "link": "iface0",
380 }
381 ],
382 "networks": [
383 {
384 "id": "network0",
385 "link": "iface0",
383 "type": "ipv4"
386 "type": "ipv4",
384 "ip_address": "10.184.0.244",
385 "netmask": "255.255.240.0",
386 "routes": [
387 "ip_address": "10.184.0.244",
388 "netmask": "255.255.240.0",
389 "routes": [
387 {
388 "network": "10.0.0.0",
389 "netmask": "255.0.0.0",
390 "gateway": "11.0.0.1"
391 },
392 {
393 "network": "0.0.0.0",
394 "netmask": "0.0.0.0",
395 "gateway": "23.253.157.1"
396 }
397 ]
398 }
399]
390 {
391 "network": "10.0.0.0",
392 "netmask": "255.0.0.0",
393 "gateway": "11.0.0.1"
394 },
395 {
396 "network": "0.0.0.0",
397 "netmask": "0.0.0.0",
398 "gateway": "23.253.157.1"
399 }
400 ]
401 }
402 ]
400}
401EOF
402
403 export NUAGE_FAKE_ROOTDIR=$(pwd)
404 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
403}
404EOF
405
406 export NUAGE_FAKE_ROOTDIR=$(pwd)
407 atf_check /usr/libexec/nuageinit ${here}/media/nuageinit config-2
405 cat > network <<EOF
408 cat > network << EOF
406ifconfig_${myiface}="inet 10.184.0.244 netmask 255.255.240.0"
407EOF
409ifconfig_${myiface}="inet 10.184.0.244 netmask 255.255.240.0"
410EOF
408 cat > routing <<EOF
411 cat > routing << EOF
409route_cloudinit1_${myiface}="-net 10.0.0.0 11.0.0.1 255.0.0.0"
410defaultrouter="23.253.157.1"
411static_routes="cloudinit1_${myiface}"
412EOF
413 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
414 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
415}
416

--- 15 unchanged lines hidden ---
412route_cloudinit1_${myiface}="-net 10.0.0.0 11.0.0.1 255.0.0.0"
413defaultrouter="23.253.157.1"
414static_routes="cloudinit1_${myiface}"
415EOF
416 atf_check -o file:network cat ${here}/etc/rc.conf.d/network
417 atf_check -o file:routing cat ${here}/etc/rc.conf.d/routing
418}
419

--- 15 unchanged lines hidden ---