diff --git a/server/pkg/api/rest/controller/getRefined.go b/server/pkg/api/rest/controller/getRefined.go index d53e09f..588936c 100644 --- a/server/pkg/api/rest/controller/getRefined.go +++ b/server/pkg/api/rest/controller/getRefined.go @@ -90,6 +90,20 @@ func doGetRefinedInfraInfo(connID string) (*inframodel.ServerProperty, error) { }) } + var firewallRules []inframodel.FirewallRuleProperty + + for _, firewall := range infraInfo.Network.Host.FirewallRule { + firewallRules = append(firewallRules, inframodel.FirewallRuleProperty{ + SrcCIDR: firewall.Src, + DstCIDR: firewall.Dst, + SrcPorts: firewall.SrcPorts, + DstPorts: firewall.DstPorts, + Protocol: firewall.Protocol, + Direction: firewall.Direction, + Action: firewall.Action, + }) + } + refinedInfraInfo := inframodel.ServerProperty{ Hostname: infraInfo.Compute.OS.Node.Hostname, CPU: inframodel.CpuProperty{ @@ -114,9 +128,10 @@ func doGetRefinedInfraInfo(connID string) (*inframodel.ServerProperty, error) { Available: uint64(infraInfo.Compute.ComputeResource.RootDisk.Available), // GiB Used: uint64(infraInfo.Compute.ComputeResource.RootDisk.Used), // GiB }, - DataDisks: dataDisks, - Interfaces: interfaces, - RoutingTable: routingTable, + DataDisks: dataDisks, + Interfaces: interfaces, + RoutingTable: routingTable, + FirewallRules: firewallRules, OS: inframodel.OsProperty{ PrettyName: infraInfo.Compute.OS.OS.PrettyName, Version: infraInfo.Compute.OS.OS.Version, diff --git a/server/pkg/api/rest/docs/docs.go b/server/pkg/api/rest/docs/docs.go index cecd2d2..6da42c3 100644 --- a/server/pkg/api/rest/docs/docs.go +++ b/server/pkg/api/rest/docs/docs.go @@ -2814,6 +2814,35 @@ const docTemplate = `{ } } }, + "inframodel.FirewallRuleProperty": { + "type": "object", + "properties": { + "action": { + "description": "allow, deny", + "type": "string" + }, + "direction": { + "description": "inbound, outbound", + "type": "string" + }, + "dstCIDR": { + "type": "string" + }, + "dstPorts": { + "type": "string" + }, + "protocol": { + "description": "TCP, UDP, ICMP", + "type": "string" + }, + "srcCIDR": { + "type": "string" + }, + "srcPorts": { + "type": "string" + } + } + }, "inframodel.MemoryProperty": { "type": "object", "required": [ @@ -3014,6 +3043,12 @@ const docTemplate = `{ "$ref": "#/definitions/inframodel.DiskProperty" } }, + "firewallRules": { + "type": "array", + "items": { + "$ref": "#/definitions/inframodel.FirewallRuleProperty" + } + }, "hostname": { "type": "string" }, diff --git a/server/pkg/api/rest/docs/swagger.json b/server/pkg/api/rest/docs/swagger.json index edccf7b..d2dc205 100644 --- a/server/pkg/api/rest/docs/swagger.json +++ b/server/pkg/api/rest/docs/swagger.json @@ -2807,6 +2807,35 @@ } } }, + "inframodel.FirewallRuleProperty": { + "type": "object", + "properties": { + "action": { + "description": "allow, deny", + "type": "string" + }, + "direction": { + "description": "inbound, outbound", + "type": "string" + }, + "dstCIDR": { + "type": "string" + }, + "dstPorts": { + "type": "string" + }, + "protocol": { + "description": "TCP, UDP, ICMP", + "type": "string" + }, + "srcCIDR": { + "type": "string" + }, + "srcPorts": { + "type": "string" + } + } + }, "inframodel.MemoryProperty": { "type": "object", "required": [ @@ -3007,6 +3036,12 @@ "$ref": "#/definitions/inframodel.DiskProperty" } }, + "firewallRules": { + "type": "array", + "items": { + "$ref": "#/definitions/inframodel.FirewallRuleProperty" + } + }, "hostname": { "type": "string" }, diff --git a/server/pkg/api/rest/docs/swagger.yaml b/server/pkg/api/rest/docs/swagger.yaml index 7235c78..3650e2b 100644 --- a/server/pkg/api/rest/docs/swagger.yaml +++ b/server/pkg/api/rest/docs/swagger.yaml @@ -630,6 +630,26 @@ definitions: - totalSize - type type: object + inframodel.FirewallRuleProperty: + properties: + action: + description: allow, deny + type: string + direction: + description: inbound, outbound + type: string + dstCIDR: + type: string + dstPorts: + type: string + protocol: + description: TCP, UDP, ICMP + type: string + srcCIDR: + type: string + srcPorts: + type: string + type: object inframodel.MemoryProperty: properties: available: @@ -772,6 +792,10 @@ definitions: items: $ref: '#/definitions/inframodel.DiskProperty' type: array + firewallRules: + items: + $ref: '#/definitions/inframodel.FirewallRuleProperty' + type: array hostname: type: string interfaces: