Skip to content

Commit d225215

Browse files
committed
firewall api add
1 parent a263c31 commit d225215

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

src/ProxmoxNodeVm.php

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ public function firewallRules(string $node)
712712
* @param array $data
713713
* @throws Exception
714714
*/
715-
public function createFirewallRule($node, $data = array())
715+
public function createFirewallRule($node, array $data)
716716
{
717717
$response = $this->makeRequest( "POST","nodes/$node/firewall/rules", $data);
718718

@@ -831,6 +831,52 @@ public function setFirewallRuleOptions(string $node, array $data)
831831
return ResponseHelper::generate(true,'Set firewall options', $response['data']);
832832
}
833833

834+
/**
835+
* Create new rule
836+
* from the Proxmox node's public interface to a VM/Container IP:Port.
837+
* @throws Exception
838+
*/
839+
public function createQemuFirewallRule(string $node, int $vmid, array $data)
840+
{
841+
$response = $this->makeRequest('POST', "nodes/$node/qemu/$vmid/firewall/rules", $data);
842+
843+
if (!isset($response['data'])){
844+
return ResponseHelper::generate(true,'Created Firewall', $response['data']);
845+
}
846+
return ResponseHelper::generate(false,'Create Firewall fail!');
847+
}
848+
849+
/**
850+
* List of rule.
851+
* from the Proxmox node's public interface to a VM/Container IP:Port.
852+
* @throws Exception
853+
*/
854+
public function listQemuFirewallRule(string $node, int $vmid)
855+
{
856+
$response = $this->makeRequest('GET', "nodes/$node/qemu/$vmid/firewall/rules");
857+
858+
if (!isset($response['data'])){
859+
return ResponseHelper::generate(false,'List Firewall fail!');
860+
}
861+
862+
return ResponseHelper::generate(true,'List Firewall', $response['data']);
863+
}
864+
865+
/**
866+
* Removing of rule.
867+
* from the Proxmox node's public interface to a VM/Container IP:Port.
868+
* @throws Exception
869+
*/
870+
public function removeQemuFirewallRule(string $node, int $vmid, $pos)
871+
{
872+
$response = $this->makeRequest('DELETE', "nodes/$node/qemu/$vmid/firewall/rules/$pos");
873+
874+
if (!isset($response['data'])){
875+
return ResponseHelper::generate(true,'Removed Firewall', $response['data']);
876+
}
877+
return ResponseHelper::generate(false,'Remove Firewall fail!');
878+
}
879+
834880
/**
835881
* LXC container index (per node).
836882
* GET /api2/json/nodes/{node}/lxc

0 commit comments

Comments
 (0)