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