#!/usr/bin/python
#
-# Copyright (c) 2008,2009 Citrix Systems, Inc. All rights reserved.
+# Copyright (c) 2008,2009 Citrix Systems, Inc.
# Copyright (c) 2009 Nicira Networks.
#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation; version 2.1 only. with the special
+# exception on linking described in file LICENSE.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
"""Usage:
%(command-name)s <PIF> up
return ['--del-match=bridge.*.port=%s' % interface,
'--del-match=port.%s.[!0-9]*' % interface,
'--del-match=iface.%s.[!0-9]*' % interface,
- '--del-match=vlan.%s.[!0-9]*' % interface]
+ '--del-match=vlan.%s.trunks=*' % interface,
+ '--del-match=vlan.%s.tag=*' % interface]
def datapath_modify_config(commands):
if debug_mode():
for nwpif in db.get_pifs_by_device(db.get_pif_record(pif)['device']):
rec = db.get_pif_record(nwpif)
- if nwpif != pif and not rec['currently_attached']:
- log("Network PIF %s not currently attached (%s)" % (rec['uuid'],pifrec['uuid']))
- continue
+
+ # When state is read from dbcache PIF.currently_attached
+ # is always assumed to be false... Err on the side of
+ # listing even detached networks for the time being.
+ #if nwpif != pif and not rec['currently_attached']:
+ # log("Network PIF %s not currently attached (%s)" % (rec['uuid'],pifrec['uuid']))
+ # continue
nwrec = db.get_network_record(rec['network'])
cfgmod_argv += ['--add=bridge.%s.xs-network-uuids=%s' % (bridge, nwrec['uuid'])]
cfgmod_argv += ['--add=vlan.%s.tag=%s' % (ipdev, pifrec['VLAN'])]
cfgmod_argv += ['--add=iface.%s.internal=true' % (ipdev)]
cfgmod_argv += ['--add=iface.%s.fake-bridge=true' % (ipdev)]
- if not os.path.exists(vswitch_state_dir):
- os.mkdir(vswitch_state_dir)
- br = ConfigurationFile("br-%s" % ipdev, vswitch_state_dir)
- br.write("VLAN_SLAVE=%s\n" % bridge)
- br.write("VLAN_VID=%s\n" % pifrec['VLAN'])
- br.close()
- f.attach_child(br)
- else:
- br = ConfigurationFile("br-%s" % ipdev, vswitch_state_dir)
- br.unlink()
- f.attach_child(br)
# Apply updated configuration.
try: