[pve-devel] [PATCH v2 pve-manager] pvenode: Return MAC address used for WoL call on success

Christian Ebner c.ebner at proxmox.com
Tue Jan 22 11:49:22 CET 2019


Use the new format to verify the MAC addresses.
The wakeonlan API call now returns the MAC address of the node to wake on
successful sending of the WoL packet.
pvenode finally displays this MAC address to the user as feedback.

Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---

Version 2:
    * Changed the MAC address verification to the new mac-addr format

 PVE/API2/Nodes.pm  | 7 +++++--
 PVE/CLI/pvenode.pm | 6 +++++-
 PVE/NodeConfig.pm  | 2 +-
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index a82d52a5..04d9c61a 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -485,7 +485,10 @@ __PACKAGE__->register_method({
 	    }),
 	},
     },
-    returns => { type => "null" },
+    returns => {
+	type => 'string',
+	format => 'mac-addr',
+    },
     code => sub {
 	my ($param) = @_;
 
@@ -519,7 +522,7 @@ __PACKAGE__->register_method({
 
 	close($sock);
 
-	return undef;
+	return $config->{wakeonlan};
     }});
 
 __PACKAGE__->register_method({
diff --git a/PVE/CLI/pvenode.pm b/PVE/CLI/pvenode.pm
index b698d2a5..9b9ad6d3 100644
--- a/PVE/CLI/pvenode.pm
+++ b/PVE/CLI/pvenode.pm
@@ -207,7 +207,11 @@ our $cmddef = {
 	},
     },
 
-    wakeonlan => [ 'PVE::API2::Nodes::Nodeinfo', 'wakeonlan', [ 'node' ], { } ],
+    wakeonlan => [ 'PVE::API2::Nodes::Nodeinfo', 'wakeonlan', [ 'node' ], {}, sub {
+	    my ($mac_addr) = @_;
+
+	    print "Wake on LAN packet send for '$mac_addr'\n";
+	} ],
 
 };
 
diff --git a/PVE/NodeConfig.pm b/PVE/NodeConfig.pm
index 13c04650..b52868e2 100644
--- a/PVE/NodeConfig.pm
+++ b/PVE/NodeConfig.pm
@@ -64,7 +64,7 @@ my $confdesc = {
     wakeonlan => {
 	type => 'string',
 	description => 'MAC address for wake on LAN',
-	pattern => '^([0-9a-fA-F]{2}:){5}([0-9a-fA-F]{2})$',
+	format => 'mac-addr',
 	optional => 1,
     },
 };
-- 
2.11.0




More information about the pve-devel mailing list