diff options
author | Eric Multanen <eric.w.multanen@intel.com> | 2020-05-28 17:25:30 -0700 |
---|---|---|
committer | Eric Multanen <eric.w.multanen@intel.com> | 2020-06-02 14:00:07 -0700 |
commit | a6e2a3a65a6e4f3f1d964578ae4e60c6f9dd1184 (patch) | |
tree | ab7fa1157f9b98840b0482592c886da61e62cc6d /src/ncm/pkg/module/network.go | |
parent | ad7782cbf83c11f152a6457f3808a4da99a1ae56 (diff) |
Reorganize ncm packages to align with architecture
Reorginize the ncm packges to delineate
- cluster provider and cluster management
- virtual and provider netowrk intent management
- intent scheduler
- internal ovn4k8s network controller
Overall, no code changes, just moving things around.
Issue-ID: MULTICLOUD-1029
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: I3d43c7e4eb6f285b51c0385ba18626d3511a14f5
Diffstat (limited to 'src/ncm/pkg/module/network.go')
-rw-r--r-- | src/ncm/pkg/module/network.go | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/ncm/pkg/module/network.go b/src/ncm/pkg/module/network.go deleted file mode 100644 index e753905e..00000000 --- a/src/ncm/pkg/module/network.go +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2020 Intel Corporation, Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package module - -import ( - "github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/db" - - pkgerrors "github.com/pkg/errors" -) - -// Network contains the parameters needed for dynamic networks -type Network struct { - Metadata Metadata `json:"metadata" yaml:"metadata"` - Spec NetworkSpec `json:"spec" yaml:"spec"` -} - -type NetworkSpec struct { - CniType string `json:"cniType" yaml:"cniType"` - Ipv4Subnets []Ipv4Subnet `json:"ipv4Subnets" yaml:"ipv4Subnets"` -} - -// NetworkKey is the key structure that is used in the database -type NetworkKey struct { - ClusterProviderName string `json:"provider"` - ClusterName string `json:"cluster"` - NetworkName string `json:"network"` -} - -// structure for the Network Custom Resource -type CrNetwork struct { - ApiVersion string `yaml:"apiVersion"` - Kind string `yaml:"kind"` - Network Network `yaml:",inline"` -} - -const NETWORK_APIVERSION = "k8s.plugin.opnfv.org/v1alpha1" -const NETWORK_KIND = "Network" - -// Manager is an interface exposing the Network functionality -type NetworkManager interface { - CreateNetwork(pr Network, clusterProvider, cluster string, exists bool) (Network, error) - GetNetwork(name, clusterProvider, cluster string) (Network, error) - GetNetworks(clusterProvider, cluster string) ([]Network, error) - DeleteNetwork(name, clusterProvider, cluster string) error -} - -// NetworkClient implements the Manager -// It will also be used to maintain some localized state -type NetworkClient struct { - db ClientDbInfo -} - -// NewNetworkClient returns an instance of the NetworkClient -// which implements the Manager -func NewNetworkClient() *NetworkClient { - return &NetworkClient{ - db: ClientDbInfo{ - storeName: "cluster", - tagMeta: "networkmetadata", - }, - } -} - -// CreateNetwork - create a new Network -func (v *NetworkClient) CreateNetwork(p Network, clusterProvider, cluster string, exists bool) (Network, error) { - - //Construct key and tag to select the entry - key := NetworkKey{ - ClusterProviderName: clusterProvider, - ClusterName: cluster, - NetworkName: p.Metadata.Name, - } - - //Check if cluster exists - _, err := NewClusterClient().GetCluster(clusterProvider, cluster) - if err != nil { - return Network{}, pkgerrors.New("Unable to find the cluster") - } - - //Check if this Network already exists - _, err = v.GetNetwork(p.Metadata.Name, clusterProvider, cluster) - if err == nil && !exists { - return Network{}, pkgerrors.New("Network already exists") - } - - err = db.DBconn.Insert(v.db.storeName, key, nil, v.db.tagMeta, p) - if err != nil { - return Network{}, pkgerrors.Wrap(err, "Creating DB Entry") - } - - return p, nil -} - -// GetNetwork returns the Network for corresponding name -func (v *NetworkClient) GetNetwork(name, clusterProvider, cluster string) (Network, error) { - - //Construct key and tag to select the entry - key := NetworkKey{ - ClusterProviderName: clusterProvider, - ClusterName: cluster, - NetworkName: name, - } - - value, err := db.DBconn.Find(v.db.storeName, key, v.db.tagMeta) - if err != nil { - return Network{}, pkgerrors.Wrap(err, "Get Network") - } - - //value is a byte array - if value != nil { - cp := Network{} - err = db.DBconn.Unmarshal(value[0], &cp) - if err != nil { - return Network{}, pkgerrors.Wrap(err, "Unmarshalling Value") - } - return cp, nil - } - - return Network{}, pkgerrors.New("Error getting Network") -} - -// GetNetworkList returns all of the Network for corresponding name -func (v *NetworkClient) GetNetworks(clusterProvider, cluster string) ([]Network, error) { - - //Construct key and tag to select the entry - key := NetworkKey{ - ClusterProviderName: clusterProvider, - ClusterName: cluster, - NetworkName: "", - } - - var resp []Network - values, err := db.DBconn.Find(v.db.storeName, key, v.db.tagMeta) - if err != nil { - return []Network{}, pkgerrors.Wrap(err, "Get Networks") - } - - for _, value := range values { - cp := Network{} - err = db.DBconn.Unmarshal(value, &cp) - if err != nil { - return []Network{}, pkgerrors.Wrap(err, "Unmarshalling Value") - } - resp = append(resp, cp) - } - - return resp, nil -} - -// Delete the Network from database -func (v *NetworkClient) DeleteNetwork(name, clusterProvider, cluster string) error { - - //Construct key and tag to select the entry - key := NetworkKey{ - ClusterProviderName: clusterProvider, - ClusterName: cluster, - NetworkName: name, - } - - err := db.DBconn.Remove(v.db.storeName, key) - if err != nil { - return pkgerrors.Wrap(err, "Delete Network Entry;") - } - - return nil -} |