summaryrefslogtreecommitdiff
path: root/PVE/Network/SDN/Plugin.pm
diff options
context:
space:
mode:
Diffstat (limited to 'PVE/Network/SDN/Plugin.pm')
-rw-r--r--PVE/Network/SDN/Plugin.pm22
1 files changed, 22 insertions, 0 deletions
diff --git a/PVE/Network/SDN/Plugin.pm b/PVE/Network/SDN/Plugin.pm
index a76442b..36efbe1 100644
--- a/PVE/Network/SDN/Plugin.pm
+++ b/PVE/Network/SDN/Plugin.pm
@@ -121,4 +121,26 @@ sub parse_tag_number_or_range {
return (scalar(@elements) > 1);
}
+#to be move to Network.pm helper
+sub get_first_local_ipv4_from_interface {
+ my ($interface) = @_;
+
+ my $cmd = ['/sbin/ip', 'address', 'show', 'dev', $interface];
+
+ my $IP = "";
+
+ my $code = sub {
+ my $line = shift;
+
+ if ($line =~ m!^\s*inet\s+($PVE::Tools::IPRE)(?:/\d+|\s+peer\s+)!) {
+ $IP = $1;
+ return;
+ }
+ };
+
+ PVE::Tools::run_command($cmd, outfunc => $code);
+
+ return $IP;
+}
+
1;