Esempio n. 1
0
 def _generate_bridge_operation(self, version=1):
     """Generate bridge operation for this interface."""
     addrs = self._generate_addresses(version=version)
     bridge_operation = self._get_initial_params()
     if version == 1:
         bridge_operation.update({
             "id": self.name,
             "type": "bridge",
             "name": self.name,
             "mac_address": str(self.iface.mac_address),
             "bridge_interfaces": [parent.get_name() for parent in
                                   self.iface.parents.order_by('name')],
             "params": self._get_bridge_params(),
         })
         if addrs:
             bridge_operation["subnets"] = addrs
     elif version == 2:
         bridge_operation.update({
             # XXX mpontillo 2017-02-17: netplan does not yet support
             # specifying the MAC that should be used for a bond.
             # See launchpad bug #1664698.
             # "macaddress": str(self.iface.mac_address),
             "interfaces": [
                 parent.get_name()
                 for parent in self.iface.parents.order_by('name')
             ],
         })
         bridge_params = get_netplan_bridge_parameters(
             self._get_bridge_params())
         if len(bridge_params) > 0:
             bridge_operation['parameters'] = bridge_params
         bridge_operation.update(addrs)
     return bridge_operation
Esempio n. 2
0
 def _generate_bridge_operation(self, version=1):
     """Generate bridge operation for this interface."""
     addrs = self._generate_addresses(version=version)
     bridge_operation = self._get_initial_params()
     if version == 1:
         bridge_operation.update({
             "id": self.name,
             "type": "bridge",
             "name": self.name,
             "mac_address": str(self.iface.mac_address),
             "bridge_interfaces": [parent.get_name() for parent in
                                   self.iface.parents.order_by('name')],
             "params": self._get_bridge_params(),
         })
         if addrs:
             bridge_operation["subnets"] = addrs
     elif version == 2:
         bridge_operation.update({
             "macaddress": str(self.iface.mac_address),
             "interfaces": [
                 parent.get_name()
                 for parent in self.iface.parents.order_by('name')
             ],
         })
         bridge_params = get_netplan_bridge_parameters(
             self._get_bridge_params())
         if len(bridge_params) > 0:
             bridge_operation['parameters'] = bridge_params
         bridge_operation.update(addrs)
     return bridge_operation
Esempio n. 3
0
 def test_skips_and_logs_parameters_with_no_netplan_equivalent(self):
     with TwistedLoggerFixture() as logger:
         netplan_params = get_netplan_bridge_parameters({
             "bridge_waitport": True,
             "bridge_maxage": 10
         })
     self.assertThat(
         logger.output,
         DocTestMatches(
             dedent("""\
             ...no netplan equivalent for bridge option...""")),
     )
     self.expectThat(netplan_params, Equals({"max-age": 10}))
Esempio n. 4
0
 def test_converts_parameter_names(self):
     netplan_params = get_netplan_bridge_parameters({
         "bridge_ageing": 5,
         "bridge_maxage": 10,
         "bridge_stp": True,
     })
     self.expectThat(
         netplan_params,
         Equals({
             "ageing-time": 5,
             "max-age": 10,
             "stp": True,
         }))
Esempio n. 5
0
 def test_skips_and_logs_unknown_parameters(self):
     with TwistedLoggerFixture() as logger:
         netplan_params = get_netplan_bridge_parameters({
             "xbridge_ageing": 5,
             "bridge_maxage": 10,
             "xbridge_stp": True
         })
     self.assertThat(
         logger.output,
         DocTestMatches(
             dedent("""\
             ...unknown bridge option...""")),
     )
     self.expectThat(netplan_params, Equals({"max-age": 10}))
Esempio n. 6
0
 def _generate_bridge_operation(self, version=1):
     """Generate bridge operation for this interface."""
     addrs = self._generate_addresses(version=version)
     bridge_operation = self._get_initial_params()
     if version == 1:
         bridge_operation.update({
             "id":
             self.name,
             "type":
             "bridge",
             "name":
             self.name,
             "mac_address":
             str(self.iface.mac_address),
             "bridge_interfaces": [
                 parent.get_name()
                 for parent in self.iface.parents.order_by("name")
             ],
             "params":
             self._get_bridge_params(version=version),
         })
         if addrs:
             bridge_operation["subnets"] = addrs
     elif version == 2:
         bridge_operation.update({
             "macaddress":
             str(self.iface.mac_address),
             "interfaces": [
                 parent.get_name()
                 for parent in self.iface.parents.order_by("name")
             ],
         })
         if self.iface.params:
             bridge_type = self.iface.params.get("bridge_type",
                                                 BRIDGE_TYPE.STANDARD)
             if bridge_type == BRIDGE_TYPE.OVS:
                 bridge_operation.update({"renderer": "openvswitch"})
         bridge_params = get_netplan_bridge_parameters(
             self._get_bridge_params(version=version))
         if len(bridge_params) > 0:
             bridge_operation["parameters"] = bridge_params
         bridge_operation.update(addrs)
     return bridge_operation