diff --git a/Anvil/Tools/Database.pm b/Anvil/Tools/Database.pm index d0f8f3ed..6d42e405 100644 --- a/Anvil/Tools/Database.pm +++ b/Anvil/Tools/Database.pm @@ -2366,7 +2366,7 @@ This is the MTU for the bonded interface. This is set to C<< up >>, C<< down >> or C<< unknown >>. It indicates whether the bond has a working slaved interface or not. -=head2 bond_primary_slave (optional) +=head2 bond_primary_interface (optional) This is the primary interface name in the bond. @@ -2409,7 +2409,7 @@ sub insert_or_update_bonds my $bond_name = defined $parameter->{bond_name} ? $parameter->{bond_name} : ""; my $bond_mode = defined $parameter->{bond_mode} ? $parameter->{bond_mode} : ""; my $bond_mtu = defined $parameter->{bond_mtu} ? $parameter->{bond_mtu} : ""; - my $bond_primary_slave = defined $parameter->{bond_primary_slave} ? $parameter->{bond_primary_slave} : ""; + my $bond_primary_interface = defined $parameter->{bond_primary_interface} ? $parameter->{bond_primary_interface} : ""; my $bond_primary_reselect = defined $parameter->{bond_primary_reselect} ? $parameter->{bond_primary_reselect} : ""; my $bond_active_slave = defined $parameter->{bond_active_slave} ? $parameter->{bond_active_slave} : ""; my $bond_mii_polling_interval = defined $parameter->{bond_mii_polling_interval} ? $parameter->{bond_mii_polling_interval} : ""; @@ -2426,7 +2426,7 @@ sub insert_or_update_bonds bond_name => $bond_name, bond_mode => $bond_mode, bond_mtu => $bond_mtu, - bond_primary_slave => $bond_primary_slave, + bond_primary_interface => $bond_primary_interface, bond_primary_reselect => $bond_primary_reselect, bond_active_slave => $bond_active_slave, bond_mii_polling_interval => $bond_mii_polling_interval, @@ -2516,7 +2516,7 @@ INSERT INTO bond_name, bond_mode, bond_mtu, - bond_primary_slave, + bond_primary_interface, bond_primary_reselect, bond_active_slave, bond_mii_polling_interval, @@ -2531,7 +2531,7 @@ INSERT INTO ".$anvil->Database->quote($bond_name).", ".$anvil->Database->quote($bond_mode).", ".$anvil->Database->quote($bond_mtu).", - ".$anvil->Database->quote($bond_primary_slave).", + ".$anvil->Database->quote($bond_primary_interface).", ".$anvil->Database->quote($bond_primary_reselect).", ".$anvil->Database->quote($bond_active_slave).", ".$anvil->Database->quote($bond_mii_polling_interval).", @@ -2554,7 +2554,7 @@ SELECT bond_name, bond_mode, bond_mtu, - bond_primary_slave, + bond_primary_interface, bond_primary_reselect, bond_active_slave, bond_mii_polling_interval, @@ -2587,7 +2587,7 @@ WHERE my $old_bond_name = $row->[1]; my $old_bond_mode = $row->[2]; my $old_bond_mtu = $row->[3]; - my $old_bond_primary_slave = $row->[4]; + my $old_bond_primary_interface = $row->[4]; my $old_bond_primary_reselect = $row->[5]; my $old_bond_active_slave = $row->[6]; my $old_bond_mii_polling_interval = $row->[7]; @@ -2600,7 +2600,7 @@ WHERE old_bond_name => $old_bond_name, old_bond_mode => $old_bond_mode, old_bond_mtu => $old_bond_mtu, - old_bond_primary_slave => $old_bond_primary_slave, + old_bond_primary_interface => $old_bond_primary_interface, old_bond_primary_reselect => $old_bond_primary_reselect, old_bond_active_slave => $old_bond_active_slave, old_bond_mii_polling_interval => $old_bond_mii_polling_interval, @@ -2615,7 +2615,7 @@ WHERE ($old_bond_name ne $bond_name) or ($old_bond_mode ne $bond_mode) or ($old_bond_mtu ne $bond_mtu) or - ($old_bond_primary_slave ne $bond_primary_slave) or + ($old_bond_primary_interface ne $bond_primary_interface) or ($old_bond_primary_reselect ne $bond_primary_reselect) or ($old_bond_active_slave ne $bond_active_slave) or ($old_bond_mii_polling_interval ne $bond_mii_polling_interval) or @@ -2633,7 +2633,7 @@ SET bond_name = ".$anvil->Database->quote($bond_name).", bond_mode = ".$anvil->Database->quote($bond_mode).", bond_mtu = ".$anvil->Database->quote($bond_mtu).", - bond_primary_slave = ".$anvil->Database->quote($bond_primary_slave).", + bond_primary_interface = ".$anvil->Database->quote($bond_primary_interface).", bond_primary_reselect = ".$anvil->Database->quote($bond_primary_reselect).", bond_active_slave = ".$anvil->Database->quote($bond_active_slave).", bond_mii_polling_interval = ".$anvil->Database->quote($bond_mii_polling_interval).", diff --git a/Anvil/Tools/Network.pm b/Anvil/Tools/Network.pm index ca9d4599..6f26dd4c 100755 --- a/Anvil/Tools/Network.pm +++ b/Anvil/Tools/Network.pm @@ -793,7 +793,7 @@ SELECT bond_name, bond_mode, bond_mtu, - bond_primary_slave, + bond_primary_interface, bond_primary_reselect, bond_active_slave, bond_mii_polling_interval, @@ -819,7 +819,7 @@ AND my $bond_name = defined $row->[1] ? $row->[1] : ""; my $bond_mode = defined $row->[2] ? $row->[2] : ""; my $bond_mtu = defined $row->[3] ? $row->[3] : ""; - my $bond_primary_slave = defined $row->[4] ? $row->[4] : ""; + my $bond_primary_interface = defined $row->[4] ? $row->[4] : ""; my $bond_primary_reselect = defined $row->[5] ? $row->[5] : ""; my $bond_active_slave = defined $row->[6] ? $row->[6] : ""; my $bond_mii_polling_interval = defined $row->[7] ? $row->[7] : ""; @@ -832,7 +832,7 @@ AND bond_name => $bond_name, bond_mode => $bond_mode, bond_mtu => $bond_mtu, - bond_primary_slave => $bond_primary_slave, + bond_primary_interface => $bond_primary_interface, bond_primary_reselect => $bond_primary_reselect, bond_active_slave => $bond_active_slave, bond_mii_polling_interval => $bond_mii_polling_interval, @@ -852,7 +852,7 @@ AND $anvil->data->{network}{$host}{interface}{$bond_name}{uuid} = $bond_uuid; $anvil->data->{network}{$host}{interface}{$bond_name}{mode} = $bond_mode; $anvil->data->{network}{$host}{interface}{$bond_name}{mtu} = $bond_mtu; - $anvil->data->{network}{$host}{interface}{$bond_name}{primary_slave} = $bond_primary_slave; + $anvil->data->{network}{$host}{interface}{$bond_name}{primary_interface} = $bond_primary_interface; $anvil->data->{network}{$host}{interface}{$bond_name}{primary_reselect} = $bond_primary_reselect; $anvil->data->{network}{$host}{interface}{$bond_name}{active_slave} = $bond_active_slave; $anvil->data->{network}{$host}{interface}{$bond_name}{mii_polling_interval} = $bond_mii_polling_interval; @@ -866,7 +866,7 @@ AND "network::${host}::interface::${bond_name}::uuid" => $anvil->data->{network}{$host}{interface}{$bond_name}{uuid}, "network::${host}::interface::${bond_name}::mode" => $anvil->data->{network}{$host}{interface}{$bond_name}{mode}, "network::${host}::interface::${bond_name}::mtu" => $anvil->data->{network}{$host}{interface}{$bond_name}{mtu}, - "network::${host}::interface::${bond_name}::primary_slave" => $anvil->data->{network}{$host}{interface}{$bond_name}{primary_slave}, + "network::${host}::interface::${bond_name}::primary_interface" => $anvil->data->{network}{$host}{interface}{$bond_name}{primary_interface}, "network::${host}::interface::${bond_name}::primary_reselect" => $anvil->data->{network}{$host}{interface}{$bond_name}{primary_reselect}, "network::${host}::interface::${bond_name}::active_slave" => $anvil->data->{network}{$host}{interface}{$bond_name}{active_slave}, "network::${host}::interface::${bond_name}::mii_polling_interval" => $anvil->data->{network}{$host}{interface}{$bond_name}{mii_polling_interval}, diff --git a/Anvil/Tools/Striker.pm b/Anvil/Tools/Striker.pm index e9425a99..47333d4d 100644 --- a/Anvil/Tools/Striker.pm +++ b/Anvil/Tools/Striker.pm @@ -371,10 +371,10 @@ sub parse_all_status_json "json::all_status::hosts::${host_name}::configured" => $anvil->data->{json}{all_status}{hosts}{$host_name}{configured}, "json::all_status::hosts::${host_name}::ssh_fingerprint" => $anvil->data->{json}{all_status}{hosts}{$host_name}{ssh_fingerprint}, }}); - print "Host: [".$host_name." (".$anvil->data->{json}{all_status}{hosts}{$host_name}{short_host_name}.")], Type: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{type}."], Configured: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{configured}."], \n"; - print " - Host UUID: ..... [".$anvil->data->{json}{all_status}{hosts}{$host_name}{host_uuid}."]\n"; - print " - SSH Fingerprint: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{ssh_fingerprint}."]\n"; - print Dumper @{$host_hash->{network_interfaces}}; +# print "Host: [".$host_name." (".$anvil->data->{json}{all_status}{hosts}{$host_name}{short_host_name}.")], Type: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{type}."], Configured: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{configured}."], \n"; +# print " - Host UUID: ..... [".$anvil->data->{json}{all_status}{hosts}{$host_name}{host_uuid}."]\n"; +# print " - SSH Fingerprint: [".$anvil->data->{json}{all_status}{hosts}{$host_name}{ssh_fingerprint}."]\n"; +# print Dumper @{$host_hash->{network_interfaces}}; foreach my $interface_hash (@{$host_hash->{network_interfaces}}) { my $interface_name = $interface_hash->{name}; @@ -394,8 +394,12 @@ sub parse_all_status_json dns => $dns, }}); + # This lets us easily map interface names to types. + $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface_name_to_type}{$interface_name} = $interface_type; + + # Record the rest of the data. $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{uuid} = $interface_hash->{uuid}; - $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{mtu} = $interface_hash->{mtu}." ".$anvil->Words->string({key => "suffix_0014"}); + $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{mtu} = $interface_hash->{mtu}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{ip} = $interface_hash->{ip}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{subnet_mask} = $interface_hash->{subnet_mask}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{default_gateway} = $interface_hash->{default_gateway}; @@ -411,9 +415,9 @@ sub parse_all_status_json "json::all_status::hosts::${host_name}::network_interface::${interface_type}::${interface_name}::dns" => $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{dns}, }}); - if ((exists $interface_hash->{connected}) && (ref($interface_hash->{connected}) eq "ARRAY")) + if ((exists $interface_hash->{interfaces}) && (ref($interface_hash->{interfaces}) eq "ARRAY")) { - foreach my $interface_name (sort {$a cmp $b} @{$interface_hash->{connected}}) + foreach my $interface_name (sort {$a cmp $b} @{$interface_hash->{interfaces}}) { # We'll sort out the types after $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{connected}{$interface_name}{type} = ""; @@ -427,7 +431,7 @@ sub parse_all_status_json { $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{mode} = $interface_hash->{mode}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{active_interface} = $interface_hash->{active_slave}; - $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{primary_interface} = $interface_hash->{primary_slave}; + $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{primary_interface} = $interface_hash->{primary_interface}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{primary_reselect} = $interface_hash->{primary_reselect}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{up_delay} = $interface_hash->{up_delay}; $anvil->data->{json}{all_status}{hosts}{$host_name}{network_interface}{$interface_type}{$interface_name}{down_delay} = $interface_hash->{down_delay}; diff --git a/Anvil/Tools/System.pm b/Anvil/Tools/System.pm index bc572f18..85a32fa8 100644 --- a/Anvil/Tools/System.pm +++ b/Anvil/Tools/System.pm @@ -834,10 +834,7 @@ sub generate_state_json }}); $anvil->Network->load_interfces({ - host_uuid => $host_uuid, - host => $short_host_name, - }); - $anvil->Network->load_interfces({ + debug => 2, host_uuid => $host_uuid, host => $short_host_name, }); @@ -852,9 +849,10 @@ sub generate_state_json "s1:interface" => $interface, "s2:mac_address" => $mac_address, "s3:type" => $type, - "s4:configured" => $configured, - "s5:host_uuid" => $host_uuid, - "s6:host_key" => $host_key, + "s4:mtu" => $mtu, + "s5:configured" => $configured, + "s6:host_uuid" => $host_uuid, + "s7:host_key" => $host_key, }}); $iface_hash->{name} = $interface; $iface_hash->{type} = $type; @@ -863,7 +861,7 @@ sub generate_state_json if ($type eq "bond") { my $mode = $anvil->data->{network}{$host}{interface}{$interface}{mode}; - my $primary_slave = $anvil->data->{network}{$host}{interface}{$interface}{primary_slave}; + my $primary_interface = $anvil->data->{network}{$host}{interface}{$interface}{primary_interface}; my $primary_reselect = $anvil->data->{network}{$host}{interface}{$interface}{primary_reselect}; my $active_slave = $anvil->data->{network}{$host}{interface}{$interface}{active_slave}; my $mii_polling_interval = $anvil->Convert->add_commas({number => $anvil->data->{network}{$host}{interface}{$interface}{mii_polling_interval}}); @@ -932,7 +930,7 @@ sub generate_state_json say_mode => $say_mode, mode => $mode, active_interface => $active_slave, - primary_interface => $primary_slave, + primary_interface => $primary_interface, say_primary_reselect => $say_primary_reselect, primary_reselect => $primary_reselect, say_up_delay => $up_delay, @@ -952,7 +950,7 @@ sub generate_state_json $iface_hash->{say_mode} = $say_mode; $iface_hash->{mode} = $mode; $iface_hash->{active_interface} = $active_slave; - $iface_hash->{primary_interface} = $primary_slave; + $iface_hash->{primary_interface} = $primary_interface; $iface_hash->{primary_reselect} = $primary_reselect; $iface_hash->{say_up_delay} = $say_up_delay; $iface_hash->{up_delay} = $up_delay; @@ -1124,6 +1122,8 @@ sub generate_state_json }; } + + # Write out the JSON file. my $json = JSON->new->utf8->encode($anvil->data->{json}{all_systems}); $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => { json => $json }}); diff --git a/share/anvil.sql b/share/anvil.sql index dceeb04a..4a7bd5bd 100644 --- a/share/anvil.sql +++ b/share/anvil.sql @@ -896,7 +896,7 @@ CREATE TABLE bonds ( bond_name text not null, bond_mode text not null, -- This is the numerical bond type (will translate to the user's language in the Anvil!) bond_mtu bigint not null, - bond_primary_slave text not null, + bond_primary_interface text not null, bond_primary_reselect text not null, bond_active_slave text not null, bond_mii_polling_interval bigint not null, @@ -917,7 +917,7 @@ CREATE TABLE history.bonds ( bond_name text, bond_mode text, bond_mtu bigint, - bond_primary_slave text, + bond_primary_interface text, bond_primary_reselect text, bond_active_slave text, bond_mii_polling_interval bigint, @@ -941,7 +941,7 @@ BEGIN bond_name, bond_mode, bond_mtu, - bond_primary_slave, + bond_primary_interface, bond_primary_reselect, bond_active_slave, bond_mii_polling_interval, @@ -956,7 +956,7 @@ BEGIN history_bonds.bond_name, history_bonds.bond_mode, history_bonds.bond_mtu, - history_bonds.bond_primary_slave, + history_bonds.bond_primary_interface, history_bonds.bond_primary_reselect, history_bonds.bond_active_slave, history_bonds.bond_mii_polling_interval, diff --git a/tools/anvil-update-states b/tools/anvil-update-states index cad363bb..e921ea3d 100755 --- a/tools/anvil-update-states +++ b/tools/anvil-update-states @@ -110,7 +110,7 @@ sub update_network my $ip_address = ""; my $subnet_mask = ""; my $bond_mode = ""; - my $primary_slave = ""; + my $primary_interface = ""; my $primary_reselect = ""; my $active_slave = ""; my $mii_polling_interval = ""; @@ -175,7 +175,7 @@ sub update_network # Read the bond mode. $bond_mode = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/mode"}); - $primary_slave = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/primary"}); + $primary_interface = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/primary"}); $primary_reselect = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/primary_reselect"}); $active_slave = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/active_slave"}); $mii_polling_interval = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/miimon"}); @@ -183,7 +183,7 @@ sub update_network $down_delay = $anvil->Storage->read_file({file => "/sys/devices/virtual/net/".$interface."/bonding/downdelay"}); $bond_mode =~ s/\s.*//; $bond_mode =~ s/\n$//; - $primary_slave =~ s/\n$//; + $primary_interface =~ s/\n$//; $primary_reselect =~ s/\s.*//; $primary_reselect =~ s/\n$//; $active_slave =~ s/\n$//; @@ -195,7 +195,7 @@ sub update_network bond_mode => $bond_mode, mii_polling_interval => $mii_polling_interval, primary_reselect => $primary_reselect, - primary_slave => $primary_slave, + primary_interface => $primary_interface, type => $type, }}); } @@ -251,7 +251,7 @@ sub update_network mtu => $mtu, operational => $operational, primary_reselect => $primary_reselect, - primary_slave => $primary_slave, + primary_interface => $primary_interface, speed => $speed, subnet_mask => $subnet_mask, type => $type, @@ -315,7 +315,7 @@ sub update_network $anvil->data->{network}{'local'}{interface}{$interface}{mtu} = $mtu; $anvil->data->{network}{'local'}{interface}{$interface}{operational} = $operational; $anvil->data->{network}{'local'}{interface}{$interface}{primary_reselect} = $primary_reselect; - $anvil->data->{network}{'local'}{interface}{$interface}{primary_slave} = $primary_slave; + $anvil->data->{network}{'local'}{interface}{$interface}{primary_interface} = $primary_interface; $anvil->data->{network}{'local'}{interface}{$interface}{speed} = $speed; $anvil->data->{network}{'local'}{interface}{$interface}{subnet_mask} = $subnet_mask; $anvil->data->{network}{'local'}{interface}{$interface}{type} = $type; @@ -336,7 +336,7 @@ sub update_network "network::local::interface::${interface}::mtu" => $anvil->data->{network}{'local'}{interface}{$interface}{mtu}, "network::local::interface::${interface}::operational" => $anvil->data->{network}{'local'}{interface}{$interface}{operational}, "network::local::interface::${interface}::primary_reselect" => $anvil->data->{network}{'local'}{interface}{$interface}{primary_reselect}, - "network::local::interface::${interface}::primary_slave" => $anvil->data->{network}{'local'}{interface}{$interface}{primary_slave}, + "network::local::interface::${interface}::primary_interface" => $anvil->data->{network}{'local'}{interface}{$interface}{primary_interface}, "network::local::interface::${interface}::speed" => $anvil->data->{network}{'local'}{interface}{$interface}{speed}, "network::local::interface::${interface}::subnet_mask" => $anvil->data->{network}{'local'}{interface}{$interface}{subnet_mask}, "network::local::interface::${interface}::type" => $anvil->data->{network}{'local'}{interface}{$interface}{type}, @@ -378,7 +378,7 @@ sub update_network my $mtu = $anvil->data->{network}{'local'}{interface}{$interface}{mtu}; my $operational = $anvil->data->{network}{'local'}{interface}{$interface}{operational}; my $primary_reselect = $anvil->data->{network}{'local'}{interface}{$interface}{primary_reselect}; - my $primary_slave = $anvil->data->{network}{'local'}{interface}{$interface}{primary_slave}; + my $primary_interface = $anvil->data->{network}{'local'}{interface}{$interface}{primary_interface}; my $speed = $anvil->data->{network}{'local'}{interface}{$interface}{speed}; my $subnet_mask = $anvil->data->{network}{'local'}{interface}{$interface}{subnet_mask}; my $up_delay = $anvil->data->{network}{'local'}{interface}{$interface}{up_delay}; @@ -403,7 +403,7 @@ sub update_network mtu => $mtu, operational => $operational, primary_reselect => $primary_reselect, - primary_slave => $primary_slave, + primary_interface => $primary_interface, speed => $speed, subnet_mask => $subnet_mask, up_delay => $up_delay, @@ -421,7 +421,7 @@ sub update_network bond_link_state => $link_state, bond_operational => $operational, bond_mac_address => $mac_address, - bond_primary_slave => $primary_slave, + bond_primary_interface => $primary_interface, bond_primary_reselect => $primary_reselect, bond_active_slave => $active_slave, bond_mii_polling_interval => $mii_polling_interval, @@ -540,7 +540,7 @@ SELECT bond_name, bond_mode, bond_mtu, - bond_primary_slave, + bond_primary_interface, bond_primary_reselect, bond_active_slave, bond_mii_polling_interval, @@ -570,7 +570,7 @@ AND bond_name => $bond_name, bond_mode => $row->[2], bond_mtu => $row->[3], - bond_primary_slave => $row->[4], + bond_primary_interface => $row->[4], bond_primary_reselect => $row->[5], bond_active_slave => $row->[6], bond_mii_polling_interval => $row->[7], @@ -583,7 +583,7 @@ AND "bonds::${bond_uuid}::bond_name" => $anvil->data->{bonds}{$bond_uuid}{bond_name}, "bonds::${bond_uuid}::bond_mode" => $anvil->data->{bonds}{$bond_uuid}{bond_mode}, "bonds::${bond_uuid}::bond_mtu" => $anvil->data->{bonds}{$bond_uuid}{bond_mtu}, - "bonds::${bond_uuid}::bond_primary_slave" => $anvil->data->{bonds}{$bond_uuid}{bond_primary_slave}, + "bonds::${bond_uuid}::bond_primary_interface" => $anvil->data->{bonds}{$bond_uuid}{bond_primary_interface}, "bonds::${bond_uuid}::bond_primary_reselect" => $anvil->data->{bonds}{$bond_uuid}{bond_primary_reselect}, "bonds::${bond_uuid}::bond_active_slave" => $anvil->data->{bonds}{$bond_uuid}{bond_active_slave}, "bonds::${bond_uuid}::bond_mii_polling_interval" => $anvil->data->{bonds}{$bond_uuid}{bond_mii_polling_interval},