示例#1
0
 def _generate_bond_operation(self, version=1):
     """Generate bond operation for `iface` and place in
     `network_config`."""
     addrs = self._generate_addresses(version=version)
     bond_operation = self._get_initial_params()
     if version == 1:
         bond_operation.update({
             "id": self.name,
             "type": "bond",
             "name": self.name,
             "mac_address": str(self.iface.mac_address),
             "bond_interfaces": [parent.get_name() for parent in
                                 self.iface.parents.order_by('name')],
             "params": self._get_bond_params(),
         })
         if addrs:
             bond_operation["subnets"] = addrs
     else:
         bond_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')
                 ],
         })
         bond_params = get_netplan_bond_parameters(self._get_bond_params())
         if len(bond_params) > 0:
             bond_operation['parameters'] = bond_params
         bond_operation.update(addrs)
     return bond_operation
示例#2
0
 def test_converts_arp_ip_target_to_list_with_weird_whitespace(self):
     netplan_params = get_netplan_bond_parameters(
         {"bond-arp-ip-target": "  192.168.0.1    fe80::1    "})
     self.expectThat(
         netplan_params,
         Equals({"arp-ip-targets": ["192.168.0.1", "fe80::1"]}),
     )
示例#3
0
 def _generate_bond_operation(self, version=1):
     """Generate bond operation for `iface` and place in
     `network_config`."""
     addrs = self._generate_addresses(version=version)
     bond_operation = self._get_initial_params()
     if version == 1:
         bond_operation.update({
             "id": self.name,
             "type": "bond",
             "name": self.name,
             "mac_address": str(self.iface.mac_address),
             "bond_interfaces": [parent.get_name() for parent in
                                 self.iface.parents.order_by('name')],
             "params": self._get_bond_params(),
         })
         if addrs:
             bond_operation["subnets"] = addrs
     else:
         bond_operation.update({
             "macaddress": str(self.iface.mac_address),
             "interfaces": [
                 parent.get_name()
                 for parent in self.iface.parents.order_by('name')
                 ],
         })
         bond_params = get_netplan_bond_parameters(self._get_bond_params())
         if len(bond_params) > 0:
             bond_operation['parameters'] = bond_params
         bond_operation.update(addrs)
     return bond_operation
示例#4
0
 def test_converts_parameter_names(self):
     netplan_params = get_netplan_bond_parameters({
         "bond-downdelay": 100,
         "bond-mode": 'active-backup',
         "bond-updelay": 200,
     })
     self.expectThat(
         netplan_params,
         Equals({
             "down-delay": 100,
             "mode": 'active-backup',
             "up-delay": 200,
         }))
示例#5
0
 def test_skips_and_logs_unknown_parameters(self):
     with TwistedLoggerFixture() as logger:
         netplan_params = get_netplan_bond_parameters({
             "xbond-downdelay": 100,
             "bond-mode": "active-backup",
             "xbond-updelay": 200,
         })
     self.assertThat(
         logger.output,
         DocTestMatches(
             dedent("""\
             ...unknown bond option...""")),
     )
     self.expectThat(netplan_params, Equals({"mode": "active-backup"}))
示例#6
0
 def test_skips_and_logs_parameters_with_no_netplan_equivalent(self):
     with TwistedLoggerFixture() as logger:
         netplan_params = get_netplan_bond_parameters({
             "bond-queue-id":
             100,
             "bond-mode":
             "active-backup"
         })
     self.assertThat(
         logger.output,
         DocTestMatches(
             dedent("""\
             ...no netplan equivalent for bond option...""")),
     )
     self.expectThat(netplan_params, Equals({"mode": "active-backup"}))
示例#7
0
 def test_converts_arp_ip_target_to_list(self):
     netplan_params = get_netplan_bond_parameters(
         {"bond-arp-ip-target": "192.168.0.1"})
     self.expectThat(netplan_params,
                     Equals({"arp-ip-targets": ["192.168.0.1"]}))