-
Notifications
You must be signed in to change notification settings - Fork 7
/
firewall_proxypolicy_move.go
112 lines (84 loc) · 2.77 KB
/
firewall_proxypolicy_move.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package forticlient
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"strconv"
)
// CreateUpdateFirewallProxypolicyMove API operation for FortiOS moves the specified item.
// Returns error for service API and SDK errors.
func (c *FortiSDKClient) CreateUpdateFirewallProxypolicyMove(srcId, dstId, mv, vdomparam string) (err error) {
HTTPMethod := "PUT"
path := "/api/v2/cmdb/firewall/proxy-policy"
path += "/" + srcId
specialparams := "action=move&"
specialparams += mv
specialparams += "="
specialparams += dstId
req := c.NewRequest(HTTPMethod, path, nil, nil)
err = req.SendWithSpecialParams(specialparams, vdomparam)
if err != nil || req.HTTPResponse == nil {
err = fmt.Errorf("cannot send request %s", err)
return
}
body, err := ioutil.ReadAll(req.HTTPResponse.Body)
req.HTTPResponse.Body.Close()
if err != nil || body == nil {
err = fmt.Errorf("cannot get response body %s", err)
return
}
log.Printf("FOS-fortios response: %s", string(body))
var result map[string]interface{}
json.Unmarshal([]byte(string(body)), &result)
err = fortiAPIErrorFormat(result, string(body))
return
}
// JSONFirewallProxypolicyItem contains the necessary parameters for each item
type JSONFirewallProxypolicyItem struct {
Policyid string `json:"policyid"`
}
// GetFirewallProxypolicyList API operation for FortiOS gets the list
// Returns the requested API user value when the request executes successfully.
// Returns error for service API and SDK errors.
func (c *FortiSDKClient) GetFirewallProxypolicyList(vdomparam string) (out []JSONFirewallProxypolicyItem, err error) {
HTTPMethod := "GET"
path := "/api/v2/cmdb/firewall/proxy-policy/"
specialparams := "format=policyid"
req := c.NewRequest(HTTPMethod, path, nil, nil)
err = req.SendWithSpecialParams(specialparams, vdomparam)
if err != nil || req.HTTPResponse == nil {
err = fmt.Errorf("cannot send request %s", err)
return
}
body, err := ioutil.ReadAll(req.HTTPResponse.Body)
req.HTTPResponse.Body.Close()
if err != nil || body == nil {
err = fmt.Errorf("cannot get response body %s", err)
return
}
log.Printf("FOS-fortios response: %s", string(body))
var result map[string]interface{}
json.Unmarshal([]byte(string(body)), &result)
if fortiAPIHttpStatus404Checking(result) == true {
return
}
err = fortiAPIErrorFormat(result, string(body))
if err == nil {
mapTmp := result["results"].([]interface{}) //)[0].(map[string]interface{})
if mapTmp == nil {
err = fmt.Errorf("cannot get the results from the response")
return
}
var members []JSONFirewallProxypolicyItem
for _, v := range mapTmp {
c := v.(map[string]interface{})
members = append(members,
JSONFirewallProxypolicyItem {
Policyid: strconv.Itoa(int(c["policyid"].(float64))),
})
}
out = members
}
return
}