(self, brName, dev)
| 262 | |
| 263 | |
| 264 | def addBridge(self, brName, dev): |
| 265 | bash("ifdown %s" % dev.name) |
| 266 | |
| 267 | if not os.path.exists(self.brCfgFile): |
| 268 | shutil.copy(self.devCfgFile, self.brCfgFile) |
| 269 | |
| 270 | #config device file at first: disable nm, set onboot=yes if not |
| 271 | cfo = configFileOps(self.devCfgFile, self) |
| 272 | cfo.addEntry("NM_CONTROLLED", "no") |
| 273 | cfo.addEntry("ONBOOT", "yes") |
| 274 | if self.syscfg.env.bridgeType == "openvswitch": |
| 275 | if cfo.getEntry("IPADDR"): |
| 276 | cfo.rmEntry("IPADDR", cfo.getEntry("IPADDR")) |
| 277 | cfo.addEntry("DEVICETYPE", "ovs") |
| 278 | cfo.addEntry("TYPE", "OVSPort") |
| 279 | cfo.addEntry("OVS_BRIDGE", brName) |
| 280 | elif self.syscfg.env.bridgeType == "native": |
| 281 | cfo.addEntry("BRIDGE", brName) |
| 282 | else: |
| 283 | raise CloudInternalException("Unknown network.bridge.type %s" % self.syscfg.env.bridgeType) |
| 284 | cfo.save() |
| 285 | |
| 286 | cfo = configFileOps(self.brCfgFile, self) |
| 287 | cfo.addEntry("NM_CONTROLLED", "no") |
| 288 | cfo.addEntry("ONBOOT", "yes") |
| 289 | cfo.addEntry("DEVICE", brName) |
| 290 | if self.syscfg.env.bridgeType == "openvswitch": |
| 291 | if cfo.getEntry("HWADDR"): |
| 292 | cfo.rmEntry("HWADDR", cfo.getEntry("HWADDR")) |
| 293 | if cfo.getEntry("UUID"): |
| 294 | cfo.rmEntry("UUID", cfo.getEntry("UUID")) |
| 295 | cfo.addEntry("STP", "yes") |
| 296 | cfo.addEntry("DEVICETYPE", "ovs") |
| 297 | cfo.addEntry("TYPE", "OVSBridge") |
| 298 | elif self.syscfg.env.bridgeType == "native": |
| 299 | cfo.addEntry("TYPE", "Bridge") |
| 300 | else: |
| 301 | raise CloudInternalException("Unknown network.bridge.type %s" % self.syscfg.env.bridgeType) |
| 302 | cfo.save() |
| 303 | |
| 304 | def config(self): |
| 305 | try: |
no test coverage detected