object_manager_netview.go raw
1 package ibclient
2
3 import (
4 "fmt"
5 "strings"
6 )
7
8 func (objMgr *ObjectManager) CreateNetworkView(name string, comment string, setEas EA) (*NetworkView, error) {
9 networkView := NewNetworkView(name, comment, setEas, "")
10
11 ref, err := objMgr.connector.CreateObject(networkView)
12 networkView.Ref = ref
13
14 return networkView, err
15 }
16
17 func (objMgr *ObjectManager) makeNetworkView(netviewName string) (netviewRef string, err error) {
18 var netviewObj *NetworkView
19 if netviewObj, err = objMgr.GetNetworkView(netviewName); err != nil {
20 return
21 }
22 if netviewObj == nil {
23 if netviewObj, err = objMgr.CreateNetworkView(netviewName, "", nil); err != nil {
24 return
25 }
26 }
27
28 netviewRef = netviewObj.Ref
29
30 return
31 }
32
33 func (objMgr *ObjectManager) CreateDefaultNetviews(globalNetview string, localNetview string) (globalNetviewRef string, localNetviewRef string, err error) {
34 if globalNetviewRef, err = objMgr.makeNetworkView(globalNetview); err != nil {
35 return
36 }
37
38 if localNetviewRef, err = objMgr.makeNetworkView(localNetview); err != nil {
39 return
40 }
41
42 return
43 }
44
45 func (objMgr *ObjectManager) GetNetworkView(name string) (*NetworkView, error) {
46 var res []NetworkView
47
48 netview := NewEmptyNetworkView()
49 sf := map[string]string{
50 "name": name,
51 }
52 queryParams := NewQueryParams(false, sf)
53 err := objMgr.connector.GetObject(netview, "", queryParams, &res)
54
55 if err != nil {
56 return nil, err
57 }
58 if res == nil || len(res) == 0 {
59 return nil, fmt.Errorf("network view '%s' not found", name)
60 }
61
62 return &res[0], nil
63 }
64
65 func (objMgr *ObjectManager) GetNetworkViewByRef(ref string) (*NetworkView, error) {
66 res := NewEmptyNetworkView()
67 queryParams := NewQueryParams(false, nil)
68 if err := objMgr.connector.GetObject(res, ref, queryParams, &res); err != nil {
69 return nil, err
70 }
71 if res == nil {
72 return nil, fmt.Errorf("network view not found")
73 }
74
75 return res, nil
76 }
77
78 func (objMgr *ObjectManager) UpdateNetworkView(ref string, name string, comment string, setEas EA) (*NetworkView, error) {
79
80 nv := NewEmptyNetworkView()
81
82 err := objMgr.connector.GetObject(
83 nv, ref, NewQueryParams(false, nil), nv)
84 if err != nil {
85 return nil, err
86 }
87 cleanName := strings.TrimSpace(name)
88 if cleanName != "" {
89 nv.Name = &cleanName
90 }
91 nv.Comment = &comment
92 nv.Ea = setEas
93
94 updatedRef, err := objMgr.connector.UpdateObject(nv, ref)
95 nv.Ref = updatedRef
96
97 return nv, err
98 }
99
100 func (objMgr *ObjectManager) DeleteNetworkView(ref string) (string, error) {
101 return objMgr.connector.DeleteObject(ref)
102 }
103