tests: Add basic unit tests for interface-reconfigure.
[sliver-openvswitch.git] / tests / interface-reconfigure.at
1 dnl IFR_SETUP
2 dnl
3 dnl Creates a directory tree for use with "interface-reconfigure --root-dir".
4 m4_define([IFR_SETUP], 
5   [[for script in \
6         interface-reconfigure \
7         InterfaceReconfigure.py \
8         InterfaceReconfigureBridge.py \
9         InterfaceReconfigureVswitch.py
10     do
11         cp $top_srcdir/xenserver/opt_xensource_libexec_$script $script
12     done
13
14     mkdir -p etc
15     cat > etc/xensource-inventory <<EOF
16 PRODUCT_BRAND='XenServer'
17 PRODUCT_NAME='xenenterprise'
18 PRODUCT_VERSION='5.5.0'
19 BUILD_NUMBER='24648p'
20 KERNEL_VERSION='2.6.18-128.1.6.el5.xs5.5.0.505.1024xen'
21 XEN_VERSION='3.3.1'
22 INSTALLATION_DATE='2010-02-10 16:45:28.748345'
23 PRIMARY_DISK='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c'
24 BACKUP_PARTITION='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c-part2'
25 INSTALLATION_UUID='852ee692-71b4-439e-abfb-0eba72dc85f0'
26 CONTROL_DOMAIN_UUID='44e6b66e-3074-4a3c-bbcd-756d845a3b56'
27 DEFAULT_SR_PHYSDEVS='/dev/sda3'
28 DOM0_MEM='752'
29 MANAGEMENT_INTERFACE='xenbr2'
30 EOF
31
32     mkdir -p etc/xensource
33     echo vswitch > etc/xensource/network.conf
34
35     for utility in \
36         sbin/ethtool \
37         sbin/ifconfig \
38         sbin/ifdown \
39         sbin/ifup \
40         sbin/ip \
41         sbin/update-issue \
42         sbin/vconfig \
43         usr/bin/ovs-vsctl \
44         usr/sbin/brctl
45     do
46         mkdir -p `dirname $utility`
47         cat > $utility <<'EOF'
48 #! /bin/sh
49 echo ${0} ${*} >&2
50 EOF
51         chmod +x $utility
52     done
53
54     mkdir -p etc/sysconfig/network-scripts
55     configure_netdev () {
56         mkdir -p sys/class/net/${1}
57         echo ${2} > sys/class/net/${1}/address
58         echo ${3} > sys/class/net/${1}/tx_queue_len
59
60         : >> etc/sysconfig/network-scripts/ifcfg-${1}
61     }
62
63     configure_netdev lo   00:00:00:00:00:00 0
64     configure_netdev eth0 00:22:19:22:4b:af 1000
65     configure_netdev eth1 00:22:19:22:4b:b1 1000
66     configure_netdev eth2 00:15:17:a0:29:80 1000
67     configure_netdev eth3 00:15:17:a0:29:81 1000
68     configure_netdev eth4 00:1b:21:29:ce:51 1000
69
70     mkdir -p var/xapi
71     cat > var/xapi/network.dbcache <<'EOF'
72 <?xml version="1.0" ?>
73 <xenserver-network-configuration>
74         <pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
75                 <VLAN_slave_of/>
76                 <management>
77                         False
78                 </management>
79                 <bond_slave_of>
80                         OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
81                 </bond_slave_of>
82                 <uuid>
83                         bd62a141-091f-3909-e334-0334f67ff3be
84                 </uuid>
85                 <IP>
86                         
87                 </IP>
88                 <VLAN_master_of>
89                         OpaqueRef:NULL
90                 </VLAN_master_of>
91                 <VLAN>
92                         -1
93                 </VLAN>
94                 <netmask>
95                         
96                 </netmask>
97                 <other_config/>
98                 <MAC>
99                         00:22:19:22:4b:af
100                 </MAC>
101                 <ip_configuration_mode>
102                         None
103                 </ip_configuration_mode>
104                 <DNS>
105                         
106                 </DNS>
107                 <device>
108                         eth0
109                 </device>
110                 <bond_master_of/>
111                 <currently_attached>
112                         False
113                 </currently_attached>
114                 <gateway>
115                         
116                 </gateway>
117                 <network>
118                         OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
119                 </network>
120         </pif>
121         <pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
122                 <VLAN_slave_of/>
123                 <management>
124                         False
125                 </management>
126                 <bond_slave_of>
127                         OpaqueRef:NULL
128                 </bond_slave_of>
129                 <uuid>
130                         df8d35c2-cc3a-a623-7065-d987a29feb75
131                 </uuid>
132                 <IP>
133                         
134                 </IP>
135                 <VLAN_master_of>
136                         OpaqueRef:NULL
137                 </VLAN_master_of>
138                 <VLAN>
139                         -1
140                 </VLAN>
141                 <netmask>
142                         
143                 </netmask>
144                 <other_config/>
145                 <MAC>
146                         00:1b:21:29:ce:51
147                 </MAC>
148                 <ip_configuration_mode>
149                         None
150                 </ip_configuration_mode>
151                 <DNS>
152                         
153                 </DNS>
154                 <device>
155                         eth4
156                 </device>
157                 <bond_master_of/>
158                 <currently_attached>
159                         False
160                 </currently_attached>
161                 <gateway>
162                         
163                 </gateway>
164                 <network>
165                         OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
166                 </network>
167         </pif>
168         <pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
169                 <VLAN_slave_of/>
170                 <management>
171                         False
172                 </management>
173                 <bond_slave_of>
174                         OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
175                 </bond_slave_of>
176                 <uuid>
177                         2f87fc95-5ab4-571a-2487-3f4ac1985663
178                 </uuid>
179                 <IP>
180                         
181                 </IP>
182                 <VLAN_master_of>
183                         OpaqueRef:NULL
184                 </VLAN_master_of>
185                 <VLAN>
186                         -1
187                 </VLAN>
188                 <netmask>
189                         
190                 </netmask>
191                 <other_config/>
192                 <MAC>
193                         00:22:19:22:4b:b1
194                 </MAC>
195                 <ip_configuration_mode>
196                         None
197                 </ip_configuration_mode>
198                 <DNS>
199                         
200                 </DNS>
201                 <device>
202                         eth1
203                 </device>
204                 <bond_master_of/>
205                 <currently_attached>
206                         False
207                 </currently_attached>
208                 <gateway>
209                         
210                 </gateway>
211                 <network>
212                         OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
213                 </network>
214         </pif>
215         <pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
216                 <VLAN_slave_of/>
217                 <management>
218                         False
219                 </management>
220                 <bond_slave_of>
221                         OpaqueRef:NULL
222                 </bond_slave_of>
223                 <uuid>
224                         d2dfdab3-daf4-afea-f055-a25a0d24d714
225                 </uuid>
226                 <IP>
227                         
228                 </IP>
229                 <VLAN_master_of>
230                         OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
231                 </VLAN_master_of>
232                 <VLAN>
233                         4
234                 </VLAN>
235                 <netmask>
236                         
237                 </netmask>
238                 <other_config/>
239                 <MAC>
240                         fe:ff:ff:ff:ff:ff
241                 </MAC>
242                 <ip_configuration_mode>
243                         None
244                 </ip_configuration_mode>
245                 <DNS>
246                         
247                 </DNS>
248                 <device>
249                         bond0
250                 </device>
251                 <bond_master_of/>
252                 <currently_attached>
253                         True
254                 </currently_attached>
255                 <gateway>
256                         
257                 </gateway>
258                 <network>
259                         OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
260                 </network>
261         </pif>
262         <pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
263                 <VLAN_slave_of>
264                         <master>
265                                 OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
266                         </master>
267                 </VLAN_slave_of>
268                 <management>
269                         False
270                 </management>
271                 <bond_slave_of>
272                         OpaqueRef:NULL
273                 </bond_slave_of>
274                 <uuid>
275                         f4ba396e-a993-a592-5fbc-a1d566afb59e
276                 </uuid>
277                 <IP>
278                         10.0.0.188
279                 </IP>
280                 <VLAN_master_of>
281                         OpaqueRef:NULL
282                 </VLAN_master_of>
283                 <VLAN>
284                         -1
285                 </VLAN>
286                 <netmask>
287                         255.0.0.0
288                 </netmask>
289                 <other_config/>
290                 <MAC>
291                         00:15:17:a0:29:81
292                 </MAC>
293                 <ip_configuration_mode>
294                         Static
295                 </ip_configuration_mode>
296                 <DNS>
297                         
298                 </DNS>
299                 <device>
300                         eth3
301                 </device>
302                 <bond_master_of/>
303                 <currently_attached>
304                         True
305                 </currently_attached>
306                 <gateway>
307                         
308                 </gateway>
309                 <network>
310                         OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
311                 </network>
312         </pif>
313         <pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
314                 <VLAN_slave_of/>
315                 <management>
316                         True
317                 </management>
318                 <bond_slave_of>
319                         OpaqueRef:NULL
320                 </bond_slave_of>
321                 <uuid>
322                         646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
323                 </uuid>
324                 <IP>
325                         172.18.3.188
326                 </IP>
327                 <VLAN_master_of>
328                         OpaqueRef:NULL
329                 </VLAN_master_of>
330                 <VLAN>
331                         -1
332                 </VLAN>
333                 <netmask>
334                         255.255.0.0
335                 </netmask>
336                 <other_config/>
337                 <MAC>
338                         00:15:17:a0:29:80
339                 </MAC>
340                 <ip_configuration_mode>
341                         DHCP
342                 </ip_configuration_mode>
343                 <DNS>
344                         
345                 </DNS>
346                 <device>
347                         eth2
348                 </device>
349                 <bond_master_of/>
350                 <currently_attached>
351                         True
352                 </currently_attached>
353                 <gateway>
354                         
355                 </gateway>
356                 <network>
357                         OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
358                 </network>
359         </pif>
360         <pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
361                 <VLAN_slave_of/>
362                 <management>
363                         False
364                 </management>
365                 <bond_slave_of>
366                         OpaqueRef:NULL
367                 </bond_slave_of>
368                 <uuid>
369                         3941edd2-865b-8dd8-61f0-199f5e1fa652
370                 </uuid>
371                 <IP>
372                         
373                 </IP>
374                 <VLAN_master_of>
375                         OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
376                 </VLAN_master_of>
377                 <VLAN>
378                         123
379                 </VLAN>
380                 <netmask>
381                         
382                 </netmask>
383                 <other_config/>
384                 <MAC>
385                         fe:ff:ff:ff:ff:ff
386                 </MAC>
387                 <ip_configuration_mode>
388                         None
389                 </ip_configuration_mode>
390                 <DNS>
391                         
392                 </DNS>
393                 <device>
394                         eth3
395                 </device>
396                 <bond_master_of/>
397                 <currently_attached>
398                         True
399                 </currently_attached>
400                 <gateway>
401                         
402                 </gateway>
403                 <network>
404                         OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
405                 </network>
406         </pif>
407         <pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
408                 <VLAN_slave_of>
409                         <master>
410                                 OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
411                         </master>
412                 </VLAN_slave_of>
413                 <management>
414                         False
415                 </management>
416                 <bond_slave_of>
417                         OpaqueRef:NULL
418                 </bond_slave_of>
419                 <uuid>
420                         6c0327a9-afa3-fc19-6798-a1bfe20095ed
421                 </uuid>
422                 <IP>
423                         
424                 </IP>
425                 <VLAN_master_of>
426                         OpaqueRef:NULL
427                 </VLAN_master_of>
428                 <VLAN>
429                         -1
430                 </VLAN>
431                 <netmask>
432                         
433                 </netmask>
434                 <other_config/>
435                 <MAC>
436                         00:22:19:22:4b:af
437                 </MAC>
438                 <ip_configuration_mode>
439                         None
440                 </ip_configuration_mode>
441                 <DNS>
442                         
443                 </DNS>
444                 <device>
445                         bond0
446                 </device>
447                 <bond_master_of>
448                         <slave>
449                                 OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
450                         </slave>
451                 </bond_master_of>
452                 <currently_attached>
453                         True
454                 </currently_attached>
455                 <gateway>
456                         
457                 </gateway>
458                 <network>
459                         OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
460                 </network>
461         </pif>
462         <bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
463                 <master>
464                         OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
465                 </master>
466                 <uuid>
467                         dad825f1-6d81-386e-849c-5589281e53e1
468                 </uuid>
469                 <slaves>
470                         <slave>
471                                 OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
472                         </slave>
473                         <slave>
474                                 OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
475                         </slave>
476                 </slaves>
477         </bond>
478         <vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
479                 <tagged_PIF>
480                         OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
481                 </tagged_PIF>
482                 <uuid>
483                         841814da-d0d2-9da4-0b2e-b6143480bbfb
484                 </uuid>
485                 <untagged_PIF>
486                         OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
487                 </untagged_PIF>
488         </vlan>
489         <vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
490                 <tagged_PIF>
491                         OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
492                 </tagged_PIF>
493                 <uuid>
494                         399279a2-5ccd-5368-9af3-8622a1f1ac82
495                 </uuid>
496                 <untagged_PIF>
497                         OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
498                 </untagged_PIF>
499         </vlan>
500         <network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
501                 <PIFs>
502                         <PIF>
503                                 OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
504                         </PIF>
505                 </PIFs>
506                 <bridge>
507                         xapi2
508                 </bridge>
509                 <other_config/>
510                 <uuid>
511                         99be2da4-6c33-6f8e-49ea-3bc592fe3c85
512                 </uuid>
513         </network>
514         <network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
515                 <PIFs>
516                         <PIF>
517                                 OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
518                         </PIF>
519                 </PIFs>
520                 <bridge>
521                         xenbr3
522                 </bridge>
523                 <other_config/>
524                 <uuid>
525                         2902ae1b-8013-897a-b697-0b200ea3aaa5
526                 </uuid>
527         </network>
528         <network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
529                 <PIFs>
530                         <PIF>
531                                 OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
532                         </PIF>
533                 </PIFs>
534                 <bridge>
535                         xapi1
536                 </bridge>
537                 <other_config/>
538                 <uuid>
539                         45cbbb43-113d-a712-3231-c6463f253cef
540                 </uuid>
541         </network>
542         <network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
543                 <PIFs>
544                         <PIF>
545                                 OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
546                         </PIF>
547                 </PIFs>
548                 <bridge>
549                         xenbr1
550                 </bridge>
551                 <other_config/>
552                 <uuid>
553                         99f8771a-645a-26a3-e06c-30a401f1d009
554                 </uuid>
555         </network>
556         <network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
557                 <PIFs>
558                         <PIF>
559                                 OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
560                         </PIF>
561                 </PIFs>
562                 <bridge>
563                         xenbr2
564                 </bridge>
565                 <other_config/>
566                 <uuid>
567                         d08c8749-0c8f-9e8d-ce25-fd364661ee99
568                 </uuid>
569         </network>
570         <network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
571                 <PIFs>
572                         <PIF>
573                                 OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
574                         </PIF>
575                 </PIFs>
576                 <bridge>
577                         xenbr0
578                 </bridge>
579                 <other_config/>
580                 <uuid>
581                         c9eecb03-560d-61de-b6a8-56dfc766f67e
582                 </uuid>
583         </network>
584         <network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
585                 <PIFs>
586                         <PIF>
587                                 OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
588                         </PIF>
589                 </PIFs>
590                 <bridge>
591                         xenbr4
592                 </bridge>
593                 <other_config/>
594                 <uuid>
595                         d2c14c89-29cc-51d4-7664-633eff02b2ad
596                 </uuid>
597         </network>
598         <network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
599                 <PIFs/>
600                 <bridge>
601                         xapi0
602                 </bridge>
603                 <other_config/>
604                 <uuid>
605                         dc0f0632-c2aa-1b78-2fea-0d3a23c51740
606                 </uuid>
607         </network>
608         <network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
609                 <PIFs>
610                         <PIF>
611                                 OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
612                         </PIF>
613                 </PIFs>
614                 <bridge>
615                         xapi3
616                 </bridge>
617                 <other_config/>
618                 <uuid>
619                         db7bdc03-074d-42ae-fc73-9b06de1d57f6
620                 </uuid>
621         </network>
622 </xenserver-network-configuration>
623 EOF
624 ]])
625
626 m4_define([IFR_RUN], [./interface-reconfigure --root-prefix=$PWD --no-syslog])
627
628 m4_define([IFR_FILTER], [sed -n -e "s,$PWD,,g" -e 's/ -- /\
629     /g' -e '/^Running command:/!p' stderr])
630 \f
631 AT_BANNER([interface-reconfigure])
632
633 AT_SETUP([non-VLAN, non-bond])
634 AT_KEYWORDS([interface-reconfigure])
635 IFR_SETUP
636
637 AT_CHECK([IFR_RUN --force xenbr2 up], [0], [], [stderr])
638 AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 up
639 Loading xapi database cache from /var/xapi/network.dbcache
640 Configured for Vswitch datapath
641 action_up: xenbr2
642 Writing network configuration for xenbr2
643 Configuring xenbr2 using DHCP configuration
644 configure_datapath: bridge      - xenbr2
645 configure_datapath: physical    - [u'eth2']
646 configure_datapath: extra ports - []
647 configure_datapath: extra bonds - []
648 Applying changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
649 Applying changes to /etc/sysconfig/network configuration
650 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
651 /sbin/ifconfig eth2 up
652 /usr/bin/ovs-vsctl --timeout=20
653     --with-iface --if-exists del-port eth2
654     --may-exist add-br xenbr2
655     --may-exist add-port xenbr2 eth2
656     br-set-external-id xenbr2 xs-network-uuids d08c8749-0c8f-9e8d-ce25-fd364661ee99
657 /sbin/ifup xenbr2
658 /sbin/update-issue
659 Committing changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
660 Committing changes to /etc/sysconfig/network configuration
661 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
662 ]])
663
664 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xenbr2], [0],
665   [# DO NOT EDIT: This file (ifcfg-xenbr2) was autogenerated by interface-reconfigure
666 XEMANAGED=yes
667 DEVICE=xenbr2
668 ONBOOT=no
669 TYPE=Ethernet
670 BOOTPROTO=dhcp
671 PERSISTENT_DHCLIENT=yes
672 ])
673
674 # Simulate interface-reconfigure creating xenbr2, so that we can tell
675 # interface-reconfigure to take it back down.
676 AT_CHECK([configure_netdev xenbr2 00:15:17:a0:29:80 0])
677
678 AT_CHECK([IFR_RUN --force xenbr2 down], [0], [], [stderr])
679 AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 down
680 Loading xapi database cache from /var/xapi/network.dbcache
681 Configured for Vswitch datapath
682 action_down: xenbr2
683 /sbin/ifdown xenbr2
684 deconfigure ipdev xenbr2 on xenbr2
685 deconfigure_bridge: bridge           - xenbr2
686 /usr/bin/ovs-vsctl --timeout=20
687     --with-iface --if-exists del-port xenbr2
688     --if-exists del-br xenbr2
689 ]])
690
691 AT_CLEANUP
692 \f
693 AT_SETUP([VLAN, non-bond])
694 AT_KEYWORDS([interface-reconfigure])
695 IFR_SETUP
696
697 AT_CHECK([IFR_RUN --force xapi3 up], [0], [], [stderr])
698 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 up
699 Loading xapi database cache from /var/xapi/network.dbcache
700 Configured for Vswitch datapath
701 action_up: xapi3
702 Writing network configuration for xapi3
703 Configuring xapi3 using None configuration
704 configure_datapath: bridge      - xenbr3
705 configure_datapath: physical    - [u'eth3']
706 configure_datapath: extra ports - []
707 configure_datapath: extra bonds - []
708 Applying changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
709 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
710 /sbin/ifconfig eth3 up
711 /usr/bin/ovs-vsctl --timeout=20
712     --with-iface --if-exists del-port eth3
713     --may-exist add-br xenbr3
714     --may-exist add-port xenbr3 eth3
715     br-set-external-id xenbr3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
716     --if-exists del-br xapi3
717     --may-exist add-br xapi3 xenbr3 123
718     br-set-external-id xapi3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
719 /sbin/ifup xapi3
720 /sbin/update-issue
721 Committing changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
722 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
723 ]])
724
725 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi3], [0],
726   [# DO NOT EDIT: This file (ifcfg-xapi3) was autogenerated by interface-reconfigure
727 XEMANAGED=yes
728 DEVICE=xapi3
729 ONBOOT=no
730 TYPE=Ethernet
731 BOOTPROTO=none
732 ])
733
734 # Simulate interface-reconfigure creating xapi3, so that we can tell
735 # interface-reconfigure to take it back down.
736 AT_CHECK([configure_netdev xapi3 00:23:20:AC:AF:02 0])
737
738 AT_CHECK([IFR_RUN --force xapi3 down], [0], [], [stderr])
739 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 down
740 Loading xapi database cache from /var/xapi/network.dbcache
741 Configured for Vswitch datapath
742 action_down: xapi3
743 /sbin/ifdown xapi3
744 deconfigure ipdev xapi3 on xenbr3
745 deconfigure_bridge: bridge           - xapi3
746 action_down: no more masters, bring down slave xenbr3
747 deconfigure_bridge: bridge           - xenbr3
748 /usr/bin/ovs-vsctl --timeout=20
749     --with-iface --if-exists del-port xapi3
750     --if-exists del-br xapi3
751     --if-exists del-br xenbr3
752 ]])
753
754 AT_CLEANUP
755 \f
756 AT_SETUP([Bond, non-VLAN])
757 AT_KEYWORDS([interface-reconfigure])
758 IFR_SETUP
759
760 # Pretend that bond0 exists, even though it would really be created by
761 # a "create-bond" call in an ovs-vsctl invocation within
762 # interface-reconfigure, because otherwise interface-reconfigure will
763 # die with "failed to apply changes: netdev: up: device bond0 does not
764 # exist" after it thinks it created bond0.
765 AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
766
767 AT_CHECK([IFR_RUN --force xapi1 up], [0], [], [stderr])
768 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 up
769 Loading xapi database cache from /var/xapi/network.dbcache
770 Configured for Vswitch datapath
771 action_up: xapi1
772 Writing network configuration for xapi1
773 Configuring xapi1 using None configuration
774 configure_datapath: leaving bond bond0 up
775 configure_datapath: leaving bond bond0 up
776 configure_datapath: bridge      - xapi1
777 configure_datapath: physical    - [u'eth0', u'eth1']
778 configure_datapath: extra ports - []
779 configure_datapath: extra bonds - []
780 netdev: down: device xenbr0 does not exist, ignoring
781 netdev: down: device xenbr1 does not exist, ignoring
782 Applying changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
783 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
784 /sbin/ifconfig eth0 up
785 /sbin/ifconfig eth1 up
786 /usr/bin/ovs-vsctl --timeout=20
787     --if-exists del-br xenbr0
788     --if-exists del-br xenbr1
789     --with-iface --if-exists del-port eth0
790     --with-iface --if-exists del-port eth1
791     --may-exist add-br xapi1
792     --with-iface --if-exists del-port bond0
793     --fake-iface add-bond xapi1 bond0 eth0 eth1
794     br-set-external-id xapi1 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
795 /sbin/ifup xapi1
796 action_up: bring up bond0
797 /sbin/ifconfig bond0 up
798 /sbin/update-issue
799 Committing changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
800 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
801 ]])
802
803 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi1], [0],
804   [# DO NOT EDIT: This file (ifcfg-xapi1) was autogenerated by interface-reconfigure
805 XEMANAGED=yes
806 DEVICE=xapi1
807 ONBOOT=no
808 TYPE=Ethernet
809 BOOTPROTO=none
810 ])
811
812 # Simulate interface-reconfigure creating xapi1, so that we can tell
813 # interface-reconfigure to take it back down.
814 AT_CHECK([configure_netdev xapi1 00:22:19:22:4B:AF 0])
815
816 AT_CHECK([IFR_RUN --force xapi1 down], [0], [], [stderr])
817 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 down
818 Loading xapi database cache from /var/xapi/network.dbcache
819 Configured for Vswitch datapath
820 action_down: xapi1
821 /sbin/ifdown xapi1
822 deconfigure ipdev xapi1 on xapi1
823 deconfigure_bridge: bridge           - xapi1
824 /usr/bin/ovs-vsctl --timeout=20
825     --with-iface --if-exists del-port xapi1
826     --if-exists del-br xapi1
827 ]])
828
829 AT_CLEANUP
830 \f
831 AT_SETUP([VLAN on bond])
832 AT_KEYWORDS([interface-reconfigure])
833 IFR_SETUP
834
835 # Pretend that bond0 exists, even though it would really be created by
836 # a "create-bond" call in an ovs-vsctl invocation within
837 # interface-reconfigure, because otherwise interface-reconfigure will
838 # die with "failed to apply changes: netdev: up: device bond0 does not
839 # exist" after it thinks it created bond0.
840 AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
841
842 AT_CHECK([IFR_RUN --force xapi2 up], [0], [], [stderr])
843 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 up
844 Loading xapi database cache from /var/xapi/network.dbcache
845 Configured for Vswitch datapath
846 action_up: xapi2
847 Writing network configuration for xapi2
848 Configuring xapi2 using None configuration
849 configure_datapath: leaving bond bond0 up
850 configure_datapath: leaving bond bond0 up
851 configure_datapath: bridge      - xapi1
852 configure_datapath: physical    - [u'eth0', u'eth1']
853 configure_datapath: extra ports - []
854 configure_datapath: extra bonds - []
855 netdev: down: device xenbr0 does not exist, ignoring
856 netdev: down: device xenbr1 does not exist, ignoring
857 Applying changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
858 Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
859 /sbin/ifconfig eth0 up
860 /sbin/ifconfig eth1 up
861 /usr/bin/ovs-vsctl --timeout=20
862     --if-exists del-br xenbr0
863     --if-exists del-br xenbr1
864     --with-iface --if-exists del-port eth0
865     --with-iface --if-exists del-port eth1
866     --may-exist add-br xapi1
867     --with-iface --if-exists del-port bond0
868     --fake-iface add-bond xapi1 bond0 eth0 eth1
869     br-set-external-id xapi1 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
870     --if-exists del-br xapi2
871     --may-exist add-br xapi2 xapi1 4
872     br-set-external-id xapi2 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
873 /sbin/ifup xapi2
874 action_up: bring up bond0
875 /sbin/ifconfig bond0 up
876 /sbin/update-issue
877 Committing changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
878 Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
879 ]])
880
881 AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi2], [0],
882   [# DO NOT EDIT: This file (ifcfg-xapi2) was autogenerated by interface-reconfigure
883 XEMANAGED=yes
884 DEVICE=xapi2
885 ONBOOT=no
886 TYPE=Ethernet
887 BOOTPROTO=none
888 ])
889
890 # Simulate interface-reconfigure creating xapi2, so that we can tell
891 # interface-reconfigure to take it back down.
892 AT_CHECK([configure_netdev xapi2 00:23:20:A4:71:C2 0])
893
894 AT_CHECK([IFR_RUN --force xapi2 down], [0], [], [stderr])
895 AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 down
896 Loading xapi database cache from /var/xapi/network.dbcache
897 Configured for Vswitch datapath
898 action_down: xapi2
899 /sbin/ifdown xapi2
900 deconfigure ipdev xapi2 on xapi1
901 deconfigure_bridge: bridge           - xapi2
902 action_down: no more masters, bring down slave xapi1
903 deconfigure_bridge: bridge           - xapi1
904 /usr/bin/ovs-vsctl --timeout=20
905     --with-iface --if-exists del-port xapi2
906     --if-exists del-br xapi2
907     --if-exists del-br xapi1
908 ]])
909
910 AT_CLEANUP