summaryrefslogtreecommitdiffstats
path: root/src/ncm/api
diff options
context:
space:
mode:
authorEric Multanen <eric.w.multanen@intel.com>2020-05-28 17:25:30 -0700
committerEric Multanen <eric.w.multanen@intel.com>2020-06-02 14:00:07 -0700
commita6e2a3a65a6e4f3f1d964578ae4e60c6f9dd1184 (patch)
treeab7fa1157f9b98840b0482592c886da61e62cc6d /src/ncm/api
parentad7782cbf83c11f152a6457f3808a4da99a1ae56 (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/api')
-rw-r--r--src/ncm/api/api.go48
-rw-r--r--src/ncm/api/clusterhandler.go48
-rw-r--r--src/ncm/api/clusterhandler_test.go263
-rw-r--r--src/ncm/api/networkhandler.go15
-rw-r--r--src/ncm/api/providernethandler.go23
-rw-r--r--src/ncm/api/schedulerhandler.go63
6 files changed, 251 insertions, 209 deletions
diff --git a/src/ncm/api/api.go b/src/ncm/api/api.go
index 2b9c1b17..a304516c 100644
--- a/src/ncm/api/api.go
+++ b/src/ncm/api/api.go
@@ -20,33 +20,43 @@ import (
"reflect"
"github.com/gorilla/mux"
- moduleLib "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/cluster"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/networkintents"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/scheduler"
)
-var moduleClient *moduleLib.Client
+var moduleClient *module.Client
// For the given client and testClient, if the testClient is not null and
// implements the client manager interface corresponding to client, then
// return the testClient, otherwise return the client.
func setClient(client, testClient interface{}) interface{} {
switch cl := client.(type) {
- case *moduleLib.ClusterClient:
- if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.ClusterManager)(nil)).Elem()) {
- c, ok := testClient.(moduleLib.ClusterManager)
+ case *cluster.ClusterClient:
+ if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*cluster.ClusterManager)(nil)).Elem()) {
+ c, ok := testClient.(cluster.ClusterManager)
if ok {
return c
}
}
- case *moduleLib.NetworkClient:
- if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.NetworkManager)(nil)).Elem()) {
- c, ok := testClient.(moduleLib.NetworkManager)
+ case *networkintents.NetworkClient:
+ if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*networkintents.NetworkManager)(nil)).Elem()) {
+ c, ok := testClient.(networkintents.NetworkManager)
if ok {
return c
}
}
- case *moduleLib.ProviderNetClient:
- if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.ProviderNetManager)(nil)).Elem()) {
- c, ok := testClient.(moduleLib.ProviderNetManager)
+ case *networkintents.ProviderNetClient:
+ if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*networkintents.ProviderNetManager)(nil)).Elem()) {
+ c, ok := testClient.(networkintents.ProviderNetManager)
+ if ok {
+ return c
+ }
+ }
+ case *scheduler.SchedulerClient:
+ if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*scheduler.SchedulerManager)(nil)).Elem()) {
+ c, ok := testClient.(scheduler.SchedulerManager)
if ok {
return c
}
@@ -61,12 +71,12 @@ func setClient(client, testClient interface{}) interface{} {
// testClient parameter allows unit testing for a given client
func NewRouter(testClient interface{}) *mux.Router {
- moduleClient = moduleLib.NewClient()
+ moduleClient = module.NewClient()
router := mux.NewRouter().PathPrefix("/v2").Subrouter()
clusterHandler := clusterHandler{
- client: setClient(moduleClient.Cluster, testClient).(moduleLib.ClusterManager),
+ client: setClient(moduleClient.Cluster, testClient).(cluster.ClusterManager),
}
router.HandleFunc("/cluster-providers", clusterHandler.createClusterProviderHandler).Methods("POST")
router.HandleFunc("/cluster-providers", clusterHandler.getClusterProviderHandler).Methods("GET")
@@ -77,8 +87,6 @@ func NewRouter(testClient interface{}) *mux.Router {
router.HandleFunc("/cluster-providers/{provider-name}/clusters", clusterHandler.getClusterHandler).Queries("label", "{label}")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{name}", clusterHandler.getClusterHandler).Methods("GET")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{name}", clusterHandler.deleteClusterHandler).Methods("DELETE")
- router.HandleFunc("/cluster-providers/{provider-name}/clusters/{name}/apply", clusterHandler.applyClusterHandler).Methods("POST")
- router.HandleFunc("/cluster-providers/{provider-name}/clusters/{name}/terminate", clusterHandler.terminateClusterHandler).Methods("POST")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/labels", clusterHandler.createClusterLabelHandler).Methods("POST")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/labels", clusterHandler.getClusterLabelHandler).Methods("GET")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/{label}", clusterHandler.getClusterLabelHandler).Methods("GET")
@@ -89,7 +97,7 @@ func NewRouter(testClient interface{}) *mux.Router {
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/{kvpair}", clusterHandler.deleteClusterKvPairsHandler).Methods("DELETE")
networkHandler := networkHandler{
- client: setClient(moduleClient.Network, testClient).(moduleLib.NetworkManager),
+ client: setClient(moduleClient.Network, testClient).(networkintents.NetworkManager),
}
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/networks", networkHandler.createNetworkHandler).Methods("POST")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/networks", networkHandler.getNetworkHandler).Methods("GET")
@@ -98,7 +106,7 @@ func NewRouter(testClient interface{}) *mux.Router {
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/networks/{name}", networkHandler.deleteNetworkHandler).Methods("DELETE")
providernetHandler := providernetHandler{
- client: setClient(moduleClient.ProviderNet, testClient).(moduleLib.ProviderNetManager),
+ client: setClient(moduleClient.ProviderNet, testClient).(networkintents.ProviderNetManager),
}
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks", providernetHandler.createProviderNetHandler).Methods("POST")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks", providernetHandler.getProviderNetHandler).Methods("GET")
@@ -106,5 +114,11 @@ func NewRouter(testClient interface{}) *mux.Router {
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks/{name}", providernetHandler.getProviderNetHandler).Methods("GET")
router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks/{name}", providernetHandler.deleteProviderNetHandler).Methods("DELETE")
+ schedulerHandler := schedulerHandler{
+ client: setClient(moduleClient.Scheduler, testClient).(scheduler.SchedulerManager),
+ }
+ router.HandleFunc("/cluster-providers/{cluster-provider}/clusters/{cluster}/apply", schedulerHandler.applySchedulerHandler).Methods("POST")
+ router.HandleFunc("/cluster-providers/{cluster-provider}/clusters/{cluster}/terminate", schedulerHandler.terminateSchedulerHandler).Methods("POST")
+
return router
}
diff --git a/src/ncm/api/clusterhandler.go b/src/ncm/api/clusterhandler.go
index 78453aa8..08040408 100644
--- a/src/ncm/api/clusterhandler.go
+++ b/src/ncm/api/clusterhandler.go
@@ -27,7 +27,7 @@ import (
"net/http"
"net/textproto"
- moduleLib "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ clusterPkg "github.com/onap/multicloud-k8s/src/ncm/pkg/cluster"
"github.com/gorilla/mux"
)
@@ -37,12 +37,12 @@ import (
type clusterHandler struct {
// Interface that implements Cluster operations
// We will set this variable with a mock interface for testing
- client moduleLib.ClusterManager
+ client clusterPkg.ClusterManager
}
// Create handles creation of the ClusterProvider entry in the database
func (h clusterHandler) createClusterProviderHandler(w http.ResponseWriter, r *http.Request) {
- var p moduleLib.ClusterProvider
+ var p clusterPkg.ClusterProvider
err := json.NewDecoder(r.Body).Decode(&p)
@@ -125,8 +125,8 @@ func (h clusterHandler) deleteClusterProviderHandler(w http.ResponseWriter, r *h
func (h clusterHandler) createClusterHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
provider := vars["provider-name"]
- var p moduleLib.Cluster
- var q moduleLib.ClusterContent
+ var p clusterPkg.Cluster
+ var q clusterPkg.ClusterContent
// Implemenation using multipart form
// Review and enable/remove at a later date
@@ -213,7 +213,7 @@ func (h clusterHandler) getClusterHandler(w http.ResponseWriter, r *http.Request
// handle the get all clusters case - return a list of only the json parts
if len(name) == 0 {
- var retList []moduleLib.Cluster
+ var retList []clusterPkg.Cluster
ret, err := h.client.GetClusters(provider)
if err != nil {
@@ -222,7 +222,7 @@ func (h clusterHandler) getClusterHandler(w http.ResponseWriter, r *http.Request
}
for _, cl := range ret {
- retList = append(retList, moduleLib.Cluster{Metadata: cl.Metadata})
+ retList = append(retList, clusterPkg.Cluster{Metadata: cl.Metadata})
}
w.Header().Set("Content-Type", "application/json")
@@ -324,42 +324,12 @@ func (h clusterHandler) deleteClusterHandler(w http.ResponseWriter, r *http.Requ
w.WriteHeader(http.StatusNoContent)
}
-// apply network intents associated with the cluster
-func (h clusterHandler) applyClusterHandler(w http.ResponseWriter, r *http.Request) {
- vars := mux.Vars(r)
- provider := vars["provider-name"]
- name := vars["name"]
-
- err := h.client.ApplyNetworkIntents(provider, name)
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
-
- w.WriteHeader(http.StatusNoContent)
-}
-
-// terminate network intents associated with the cluster
-func (h clusterHandler) terminateClusterHandler(w http.ResponseWriter, r *http.Request) {
- vars := mux.Vars(r)
- provider := vars["provider-name"]
- name := vars["name"]
-
- err := h.client.TerminateNetworkIntents(provider, name)
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
-
- w.WriteHeader(http.StatusNoContent)
-}
-
// Create handles creation of the ClusterLabel entry in the database
func (h clusterHandler) createClusterLabelHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
provider := vars["provider-name"]
cluster := vars["cluster-name"]
- var p moduleLib.ClusterLabel
+ var p clusterPkg.ClusterLabel
err := json.NewDecoder(r.Body).Decode(&p)
@@ -439,7 +409,7 @@ func (h clusterHandler) createClusterKvPairsHandler(w http.ResponseWriter, r *ht
vars := mux.Vars(r)
provider := vars["provider-name"]
cluster := vars["cluster-name"]
- var p moduleLib.ClusterKvPairs
+ var p clusterPkg.ClusterKvPairs
err := json.NewDecoder(r.Body).Decode(&p)
diff --git a/src/ncm/api/clusterhandler_test.go b/src/ncm/api/clusterhandler_test.go
index b32df527..a9290ad9 100644
--- a/src/ncm/api/clusterhandler_test.go
+++ b/src/ncm/api/clusterhandler_test.go
@@ -27,8 +27,9 @@ import (
"reflect"
"testing"
- moduleLib "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/cluster"
"github.com/onap/multicloud-k8s/src/orchestrator/pkg/appcontext"
+ types "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module/types"
pkgerrors "github.com/pkg/errors"
)
@@ -39,35 +40,35 @@ import (
type mockClusterManager struct {
// Items and err will be used to customize each test
// via a localized instantiation of mockClusterManager
- ClusterProviderItems []moduleLib.ClusterProvider
- ClusterItems []moduleLib.Cluster
- ClusterContentItems []moduleLib.ClusterContent
+ ClusterProviderItems []cluster.ClusterProvider
+ ClusterItems []cluster.Cluster
+ ClusterContentItems []cluster.ClusterContent
ClusterContextItems []appcontext.AppContext
- ClusterLabelItems []moduleLib.ClusterLabel
- ClusterKvPairsItems []moduleLib.ClusterKvPairs
+ ClusterLabelItems []cluster.ClusterLabel
+ ClusterKvPairsItems []cluster.ClusterKvPairs
ClusterList []string
Err error
}
-func (m *mockClusterManager) CreateClusterProvider(inp moduleLib.ClusterProvider) (moduleLib.ClusterProvider, error) {
+func (m *mockClusterManager) CreateClusterProvider(inp cluster.ClusterProvider) (cluster.ClusterProvider, error) {
if m.Err != nil {
- return moduleLib.ClusterProvider{}, m.Err
+ return cluster.ClusterProvider{}, m.Err
}
return m.ClusterProviderItems[0], nil
}
-func (m *mockClusterManager) GetClusterProvider(name string) (moduleLib.ClusterProvider, error) {
+func (m *mockClusterManager) GetClusterProvider(name string) (cluster.ClusterProvider, error) {
if m.Err != nil {
- return moduleLib.ClusterProvider{}, m.Err
+ return cluster.ClusterProvider{}, m.Err
}
return m.ClusterProviderItems[0], nil
}
-func (m *mockClusterManager) GetClusterProviders() ([]moduleLib.ClusterProvider, error) {
+func (m *mockClusterManager) GetClusterProviders() ([]cluster.ClusterProvider, error) {
if m.Err != nil {
- return []moduleLib.ClusterProvider{}, m.Err
+ return []cluster.ClusterProvider{}, m.Err
}
return m.ClusterProviderItems, nil
@@ -77,25 +78,25 @@ func (m *mockClusterManager) DeleteClusterProvider(name string) error {
return m.Err
}
-func (m *mockClusterManager) CreateCluster(provider string, inp moduleLib.Cluster, inq moduleLib.ClusterContent) (moduleLib.Cluster, error) {
+func (m *mockClusterManager) CreateCluster(provider string, inp cluster.Cluster, inq cluster.ClusterContent) (cluster.Cluster, error) {
if m.Err != nil {
- return moduleLib.Cluster{}, m.Err
+ return cluster.Cluster{}, m.Err
}
return m.ClusterItems[0], nil
}
-func (m *mockClusterManager) GetCluster(provider, name string) (moduleLib.Cluster, error) {
+func (m *mockClusterManager) GetCluster(provider, name string) (cluster.Cluster, error) {
if m.Err != nil {
- return moduleLib.Cluster{}, m.Err
+ return cluster.Cluster{}, m.Err
}
return m.ClusterItems[0], nil
}
-func (m *mockClusterManager) GetClusterContent(provider, name string) (moduleLib.ClusterContent, error) {
+func (m *mockClusterManager) GetClusterContent(provider, name string) (cluster.ClusterContent, error) {
if m.Err != nil {
- return moduleLib.ClusterContent{}, m.Err
+ return cluster.ClusterContent{}, m.Err
}
return m.ClusterContentItems[0], nil
@@ -109,9 +110,9 @@ func (m *mockClusterManager) GetClusterContext(provider, name string) (appcontex
return m.ClusterContextItems[0], nil
}
-func (m *mockClusterManager) GetClusters(provider string) ([]moduleLib.Cluster, error) {
+func (m *mockClusterManager) GetClusters(provider string) ([]cluster.Cluster, error) {
if m.Err != nil {
- return []moduleLib.Cluster{}, m.Err
+ return []cluster.Cluster{}, m.Err
}
return m.ClusterItems, nil
@@ -129,67 +130,59 @@ func (m *mockClusterManager) DeleteCluster(provider, name string) error {
return m.Err
}
-func (m *mockClusterManager) ApplyNetworkIntents(provider, name string) error {
- return m.Err
-}
-
-func (m *mockClusterManager) TerminateNetworkIntents(provider, name string) error {
- return m.Err
-}
-
-func (m *mockClusterManager) CreateClusterLabel(provider, cluster string, inp moduleLib.ClusterLabel) (moduleLib.ClusterLabel, error) {
+func (m *mockClusterManager) CreateClusterLabel(provider, clusterName string, inp cluster.ClusterLabel) (cluster.ClusterLabel, error) {
if m.Err != nil {
- return moduleLib.ClusterLabel{}, m.Err
+ return cluster.ClusterLabel{}, m.Err
}
return m.ClusterLabelItems[0], nil
}
-func (m *mockClusterManager) GetClusterLabel(provider, cluster, label string) (moduleLib.ClusterLabel, error) {
+func (m *mockClusterManager) GetClusterLabel(provider, clusterName, label string) (cluster.ClusterLabel, error) {
if m.Err != nil {
- return moduleLib.ClusterLabel{}, m.Err
+ return cluster.ClusterLabel{}, m.Err
}
return m.ClusterLabelItems[0], nil
}
-func (m *mockClusterManager) GetClusterLabels(provider, cluster string) ([]moduleLib.ClusterLabel, error) {
+func (m *mockClusterManager) GetClusterLabels(provider, clusterName string) ([]cluster.ClusterLabel, error) {
if m.Err != nil {
- return []moduleLib.ClusterLabel{}, m.Err
+ return []cluster.ClusterLabel{}, m.Err
}
return m.ClusterLabelItems, nil
}
-func (m *mockClusterManager) DeleteClusterLabel(provider, cluster, label string) error {
+func (m *mockClusterManager) DeleteClusterLabel(provider, clusterName, label string) error {
return m.Err
}
-func (m *mockClusterManager) CreateClusterKvPairs(provider, cluster string, inp moduleLib.ClusterKvPairs) (moduleLib.ClusterKvPairs, error) {
+func (m *mockClusterManager) CreateClusterKvPairs(provider, clusterName string, inp cluster.ClusterKvPairs) (cluster.ClusterKvPairs, error) {
if m.Err != nil {
- return moduleLib.ClusterKvPairs{}, m.Err
+ return cluster.ClusterKvPairs{}, m.Err
}
return m.ClusterKvPairsItems[0], nil
}
-func (m *mockClusterManager) GetClusterKvPairs(provider, cluster, kvpair string) (moduleLib.ClusterKvPairs, error) {
+func (m *mockClusterManager) GetClusterKvPairs(provider, clusterName, kvpair string) (cluster.ClusterKvPairs, error) {
if m.Err != nil {
- return moduleLib.ClusterKvPairs{}, m.Err
+ return cluster.ClusterKvPairs{}, m.Err
}
return m.ClusterKvPairsItems[0], nil
}
-func (m *mockClusterManager) GetAllClusterKvPairs(provider, cluster string) ([]moduleLib.ClusterKvPairs, error) {
+func (m *mockClusterManager) GetAllClusterKvPairs(provider, clusterName string) ([]cluster.ClusterKvPairs, error) {
if m.Err != nil {
- return []moduleLib.ClusterKvPairs{}, m.Err
+ return []cluster.ClusterKvPairs{}, m.Err
}
return m.ClusterKvPairsItems, nil
}
-func (m *mockClusterManager) DeleteClusterKvPairs(provider, cluster, kvpair string) error {
+func (m *mockClusterManager) DeleteClusterKvPairs(provider, clusterName, kvpair string) error {
return m.Err
}
@@ -197,7 +190,7 @@ func TestClusterProviderCreateHandler(t *testing.T) {
testCases := []struct {
label string
reader io.Reader
- expected moduleLib.ClusterProvider
+ expected cluster.ClusterProvider
expectedCode int
clusterClient *mockClusterManager
}{
@@ -217,8 +210,8 @@ func TestClusterProviderCreateHandler(t *testing.T) {
"userData2": "some user data 2"
}
}`)),
- expected: moduleLib.ClusterProvider{
- Metadata: moduleLib.Metadata{
+ expected: cluster.ClusterProvider{
+ Metadata: types.Metadata{
Name: "clusterProviderTest",
Description: "testClusterProvider",
UserData1: "some user data 1",
@@ -227,9 +220,9 @@ func TestClusterProviderCreateHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterProviderItems: []moduleLib.ClusterProvider{
+ ClusterProviderItems: []cluster.ClusterProvider{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "clusterProviderTest",
Description: "testClusterProvider",
UserData1: "some user data 1",
@@ -265,7 +258,7 @@ func TestClusterProviderCreateHandler(t *testing.T) {
//Check returned body only if statusCreated
if resp.StatusCode == http.StatusCreated {
- got := moduleLib.ClusterProvider{}
+ got := cluster.ClusterProvider{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -281,7 +274,7 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
testCases := []struct {
label string
- expected []moduleLib.ClusterProvider
+ expected []cluster.ClusterProvider
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -289,9 +282,9 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
{
label: "Get Cluster Provider",
expectedCode: http.StatusOK,
- expected: []moduleLib.ClusterProvider{
+ expected: []cluster.ClusterProvider{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testClusterProvider1",
Description: "testClusterProvider 1 description",
UserData1: "some user data 1",
@@ -299,7 +292,7 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testClusterProvider2",
Description: "testClusterProvider 2 description",
UserData1: "some user data A",
@@ -309,9 +302,9 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterProviderItems: []moduleLib.ClusterProvider{
+ ClusterProviderItems: []cluster.ClusterProvider{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testClusterProvider1",
Description: "testClusterProvider 1 description",
UserData1: "some user data 1",
@@ -319,7 +312,7 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testClusterProvider2",
Description: "testClusterProvider 2 description",
UserData1: "some user data A",
@@ -343,7 +336,7 @@ func TestClusterProviderGetAllHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := []moduleLib.ClusterProvider{}
+ got := []cluster.ClusterProvider{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -359,7 +352,7 @@ func TestClusterProviderGetHandler(t *testing.T) {
testCases := []struct {
label string
- expected moduleLib.ClusterProvider
+ expected cluster.ClusterProvider
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -367,8 +360,8 @@ func TestClusterProviderGetHandler(t *testing.T) {
{
label: "Get Cluster Provider",
expectedCode: http.StatusOK,
- expected: moduleLib.ClusterProvider{
- Metadata: moduleLib.Metadata{
+ expected: cluster.ClusterProvider{
+ Metadata: types.Metadata{
Name: "testClusterProvider",
Description: "testClusterProvider description",
UserData1: "some user data 1",
@@ -378,9 +371,9 @@ func TestClusterProviderGetHandler(t *testing.T) {
name: "testClusterProvider",
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterProviderItems: []moduleLib.ClusterProvider{
+ ClusterProviderItems: []cluster.ClusterProvider{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testClusterProvider",
Description: "testClusterProvider description",
UserData1: "some user data 1",
@@ -395,7 +388,7 @@ func TestClusterProviderGetHandler(t *testing.T) {
expectedCode: http.StatusInternalServerError,
name: "nonexistingclusterprovider",
clusterClient: &mockClusterManager{
- ClusterProviderItems: []moduleLib.ClusterProvider{},
+ ClusterProviderItems: []cluster.ClusterProvider{},
Err: pkgerrors.New("Internal Error"),
},
},
@@ -413,7 +406,7 @@ func TestClusterProviderGetHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := moduleLib.ClusterProvider{}
+ got := cluster.ClusterProvider{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -468,7 +461,7 @@ func TestClusterCreateHandler(t *testing.T) {
label string
metadata string
kubeconfig string
- expected moduleLib.Cluster
+ expected cluster.Cluster
expectedCode int
clusterClient *mockClusterManager
}{
@@ -494,8 +487,8 @@ of a file attached
to the creation
of clusterTest
`,
- expected: moduleLib.Cluster{
- Metadata: moduleLib.Metadata{
+ expected: cluster.Cluster{
+ Metadata: types.Metadata{
Name: "clusterTest",
Description: "testCluster",
UserData1: "some user data 1",
@@ -504,9 +497,9 @@ of clusterTest
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterProviderItems: []moduleLib.ClusterProvider{
+ ClusterProviderItems: []cluster.ClusterProvider{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "clusterProvider1",
Description: "ClusterProvider 1 description",
UserData1: "some user data 1",
@@ -514,9 +507,9 @@ of clusterTest
},
},
},
- ClusterItems: []moduleLib.Cluster{
+ ClusterItems: []cluster.Cluster{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "clusterTest",
Description: "testCluster",
UserData1: "some user data 1",
@@ -524,7 +517,7 @@ of clusterTest
},
},
},
- ClusterContentItems: []moduleLib.ClusterContent{
+ ClusterContentItems: []cluster.ClusterContent{
{
Kubeconfig: "dGVzdCBjb250ZW50cwpvZiBhIGZpbGUgYXR0YWNoZWQKdG8gdGhlIGNyZWF0aW9uCm9mIGNsdXN0ZXJUZXN0Cg==",
},
@@ -574,7 +567,7 @@ of clusterTest
//Check returned body only if statusCreated
if resp.StatusCode == http.StatusCreated {
- got := moduleLib.Cluster{}
+ got := cluster.Cluster{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -590,7 +583,7 @@ func TestClusterGetAllHandler(t *testing.T) {
testCases := []struct {
label string
- expected []moduleLib.Cluster
+ expected []cluster.Cluster
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -598,9 +591,9 @@ func TestClusterGetAllHandler(t *testing.T) {
{
label: "Get Clusters",
expectedCode: http.StatusOK,
- expected: []moduleLib.Cluster{
+ expected: []cluster.Cluster{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster1",
Description: "testCluster 1 description",
UserData1: "some user data 1",
@@ -608,7 +601,7 @@ func TestClusterGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster2",
Description: "testCluster 2 description",
UserData1: "some user data A",
@@ -618,9 +611,9 @@ func TestClusterGetAllHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterItems: []moduleLib.Cluster{
+ ClusterItems: []cluster.Cluster{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster1",
Description: "testCluster 1 description",
UserData1: "some user data 1",
@@ -628,7 +621,7 @@ func TestClusterGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster2",
Description: "testCluster 2 description",
UserData1: "some user data A",
@@ -636,7 +629,7 @@ func TestClusterGetAllHandler(t *testing.T) {
},
},
},
- ClusterContentItems: []moduleLib.ClusterContent{
+ ClusterContentItems: []cluster.ClusterContent{
// content here doesn't matter - just needs to be present
{
Kubeconfig: "dGVzdCBjb250ZW50cwpvZiBhIGZpbGUgYXR0YWNoZWQKdG8gdGhlIGNyZWF0aW9uCm9mIGNsdXN0ZXJUZXN0Cg==",
@@ -661,7 +654,7 @@ func TestClusterGetAllHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := []moduleLib.Cluster{}
+ got := []cluster.Cluster{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -677,7 +670,7 @@ func TestClusterGetHandler(t *testing.T) {
testCases := []struct {
label string
- expected moduleLib.Cluster
+ expected cluster.Cluster
name, version string
accept string
expectedCode int
@@ -687,8 +680,8 @@ func TestClusterGetHandler(t *testing.T) {
label: "Get Cluster with Accept: application/json",
accept: "application/json",
expectedCode: http.StatusOK,
- expected: moduleLib.Cluster{
- Metadata: moduleLib.Metadata{
+ expected: cluster.Cluster{
+ Metadata: types.Metadata{
Name: "testCluster",
Description: "testCluster description",
UserData1: "some user data 1",
@@ -698,9 +691,9 @@ func TestClusterGetHandler(t *testing.T) {
name: "testCluster",
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterItems: []moduleLib.Cluster{
+ ClusterItems: []cluster.Cluster{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster",
Description: "testCluster description",
UserData1: "some user data 1",
@@ -708,7 +701,7 @@ func TestClusterGetHandler(t *testing.T) {
},
},
},
- ClusterContentItems: []moduleLib.ClusterContent{
+ ClusterContentItems: []cluster.ClusterContent{
{
Kubeconfig: "dGVzdCBjb250ZW50cwpvZiBhIGZpbGUgYXR0YWNoZWQKdG8gdGhlIGNyZWF0aW9uCm9mIGNsdXN0ZXJUZXN0Cg==",
},
@@ -721,7 +714,7 @@ func TestClusterGetHandler(t *testing.T) {
expectedCode: http.StatusInternalServerError,
name: "nonexistingcluster",
clusterClient: &mockClusterManager{
- ClusterItems: []moduleLib.Cluster{},
+ ClusterItems: []cluster.Cluster{},
Err: pkgerrors.New("Internal Error"),
},
},
@@ -742,7 +735,7 @@ func TestClusterGetHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := moduleLib.Cluster{}
+ got := cluster.Cluster{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -776,9 +769,9 @@ of clusterTest
name: "testCluster",
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterItems: []moduleLib.Cluster{
+ ClusterItems: []cluster.Cluster{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "testCluster",
Description: "testCluster description",
UserData1: "some user data 1",
@@ -786,7 +779,7 @@ of clusterTest
},
},
},
- ClusterContentItems: []moduleLib.ClusterContent{
+ ClusterContentItems: []cluster.ClusterContent{
{
Kubeconfig: "dGVzdCBjb250ZW50cwpvZiBhIGZpbGUgYXR0YWNoZWQKdG8gdGhlIGNyZWF0aW9uCm9mIGNsdXN0ZXJUZXN0Cg==",
},
@@ -799,7 +792,7 @@ of clusterTest
expectedCode: http.StatusInternalServerError,
name: "nonexistingcluster",
clusterClient: &mockClusterManager{
- ClusterItems: []moduleLib.Cluster{},
+ ClusterItems: []cluster.Cluster{},
Err: pkgerrors.New("Internal Error"),
},
},
@@ -875,7 +868,7 @@ func TestClusterLabelCreateHandler(t *testing.T) {
testCases := []struct {
label string
reader io.Reader
- expected moduleLib.ClusterLabel
+ expected cluster.ClusterLabel
expectedCode int
clusterClient *mockClusterManager
}{
@@ -890,12 +883,12 @@ func TestClusterLabelCreateHandler(t *testing.T) {
reader: bytes.NewBuffer([]byte(`{
"label-name": "test-label"
}`)),
- expected: moduleLib.ClusterLabel{
+ expected: cluster.ClusterLabel{
LabelName: "test-label",
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterLabelItems: []moduleLib.ClusterLabel{
+ ClusterLabelItems: []cluster.ClusterLabel{
{
LabelName: "test-label",
},
@@ -916,7 +909,7 @@ func TestClusterLabelCreateHandler(t *testing.T) {
//Check returned body only if statusCreated
if resp.StatusCode == http.StatusCreated {
- got := moduleLib.ClusterLabel{}
+ got := cluster.ClusterLabel{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -932,7 +925,7 @@ func TestClusterLabelsGetHandler(t *testing.T) {
testCases := []struct {
label string
- expected []moduleLib.ClusterLabel
+ expected []cluster.ClusterLabel
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -940,7 +933,7 @@ func TestClusterLabelsGetHandler(t *testing.T) {
{
label: "Get Cluster Labels",
expectedCode: http.StatusOK,
- expected: []moduleLib.ClusterLabel{
+ expected: []cluster.ClusterLabel{
{
LabelName: "test-label1",
},
@@ -953,7 +946,7 @@ func TestClusterLabelsGetHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterLabelItems: []moduleLib.ClusterLabel{
+ ClusterLabelItems: []cluster.ClusterLabel{
{
LabelName: "test-label1",
},
@@ -980,7 +973,7 @@ func TestClusterLabelsGetHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := []moduleLib.ClusterLabel{}
+ got := []cluster.ClusterLabel{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -996,7 +989,7 @@ func TestClusterLabelGetHandler(t *testing.T) {
testCases := []struct {
label string
- expected moduleLib.ClusterLabel
+ expected cluster.ClusterLabel
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -1004,13 +997,13 @@ func TestClusterLabelGetHandler(t *testing.T) {
{
label: "Get Cluster Label",
expectedCode: http.StatusOK,
- expected: moduleLib.ClusterLabel{
+ expected: cluster.ClusterLabel{
LabelName: "testlabel",
},
name: "testlabel",
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterLabelItems: []moduleLib.ClusterLabel{
+ ClusterLabelItems: []cluster.ClusterLabel{
{
LabelName: "testlabel",
},
@@ -1022,7 +1015,7 @@ func TestClusterLabelGetHandler(t *testing.T) {
expectedCode: http.StatusInternalServerError,
name: "nonexistingclusterlabel",
clusterClient: &mockClusterManager{
- ClusterLabelItems: []moduleLib.ClusterLabel{},
+ ClusterLabelItems: []cluster.ClusterLabel{},
Err: pkgerrors.New("Internal Error"),
},
},
@@ -1040,7 +1033,7 @@ func TestClusterLabelGetHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := moduleLib.ClusterLabel{}
+ got := cluster.ClusterLabel{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -1094,7 +1087,7 @@ func TestClusterKvPairsCreateHandler(t *testing.T) {
testCases := []struct {
label string
reader io.Reader
- expected moduleLib.ClusterKvPairs
+ expected cluster.ClusterKvPairs
expectedCode int
clusterClient *mockClusterManager
}{
@@ -1124,14 +1117,14 @@ func TestClusterKvPairsCreateHandler(t *testing.T) {
]
}
}`)),
- expected: moduleLib.ClusterKvPairs{
- Metadata: moduleLib.Metadata{
+ expected: cluster.ClusterKvPairs{
+ Metadata: types.Metadata{
Name: "ClusterKvPair1",
Description: "test cluster kv pairs",
UserData1: "some user data 1",
UserData2: "some user data 2",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"key1": "value1",
@@ -1144,15 +1137,15 @@ func TestClusterKvPairsCreateHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterKvPairsItems: []moduleLib.ClusterKvPairs{
+ ClusterKvPairsItems: []cluster.ClusterKvPairs{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair1",
Description: "test cluster kv pairs",
UserData1: "some user data 1",
UserData2: "some user data 2",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"key1": "value1",
@@ -1180,7 +1173,7 @@ func TestClusterKvPairsCreateHandler(t *testing.T) {
//Check returned body only if statusCreated
if resp.StatusCode == http.StatusCreated {
- got := moduleLib.ClusterKvPairs{}
+ got := cluster.ClusterKvPairs{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -1196,7 +1189,7 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
testCases := []struct {
label string
- expected []moduleLib.ClusterKvPairs
+ expected []cluster.ClusterKvPairs
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -1204,15 +1197,15 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
{
label: "Get Cluster KvPairs",
expectedCode: http.StatusOK,
- expected: []moduleLib.ClusterKvPairs{
+ expected: []cluster.ClusterKvPairs{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair1",
Description: "test cluster kv pairs",
UserData1: "some user data 1",
UserData2: "some user data 2",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"key1": "value1",
@@ -1224,13 +1217,13 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair2",
Description: "test cluster kv pairs",
UserData1: "some user data A",
UserData2: "some user data B",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"keyA": "valueA",
@@ -1244,15 +1237,15 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
},
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterKvPairsItems: []moduleLib.ClusterKvPairs{
+ ClusterKvPairsItems: []cluster.ClusterKvPairs{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair1",
Description: "test cluster kv pairs",
UserData1: "some user data 1",
UserData2: "some user data 2",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"key1": "value1",
@@ -1264,13 +1257,13 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
},
},
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair2",
Description: "test cluster kv pairs",
UserData1: "some user data A",
UserData2: "some user data B",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"keyA": "valueA",
@@ -1298,7 +1291,7 @@ func TestClusterKvPairsGetAllHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := []moduleLib.ClusterKvPairs{}
+ got := []cluster.ClusterKvPairs{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
@@ -1314,7 +1307,7 @@ func TestClusterKvPairsGetHandler(t *testing.T) {
testCases := []struct {
label string
- expected moduleLib.ClusterKvPairs
+ expected cluster.ClusterKvPairs
name, version string
expectedCode int
clusterClient *mockClusterManager
@@ -1322,14 +1315,14 @@ func TestClusterKvPairsGetHandler(t *testing.T) {
{
label: "Get Cluster KV Pairs",
expectedCode: http.StatusOK,
- expected: moduleLib.ClusterKvPairs{
- Metadata: moduleLib.Metadata{
+ expected: cluster.ClusterKvPairs{
+ Metadata: types.Metadata{
Name: "ClusterKvPair2",
Description: "test cluster kv pairs",
UserData1: "some user data A",
UserData2: "some user data B",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"keyA": "valueA",
@@ -1343,15 +1336,15 @@ func TestClusterKvPairsGetHandler(t *testing.T) {
name: "ClusterKvPair2",
clusterClient: &mockClusterManager{
//Items that will be returned by the mocked Client
- ClusterKvPairsItems: []moduleLib.ClusterKvPairs{
+ ClusterKvPairsItems: []cluster.ClusterKvPairs{
{
- Metadata: moduleLib.Metadata{
+ Metadata: types.Metadata{
Name: "ClusterKvPair2",
Description: "test cluster kv pairs",
UserData1: "some user data A",
UserData2: "some user data B",
},
- Spec: moduleLib.ClusterKvSpec{
+ Spec: cluster.ClusterKvSpec{
Kv: []map[string]interface{}{
{
"keyA": "valueA",
@@ -1370,7 +1363,7 @@ func TestClusterKvPairsGetHandler(t *testing.T) {
expectedCode: http.StatusInternalServerError,
name: "nonexistingclusterkvpairs",
clusterClient: &mockClusterManager{
- ClusterKvPairsItems: []moduleLib.ClusterKvPairs{},
+ ClusterKvPairsItems: []cluster.ClusterKvPairs{},
Err: pkgerrors.New("Internal Error"),
},
},
@@ -1388,7 +1381,7 @@ func TestClusterKvPairsGetHandler(t *testing.T) {
//Check returned body only if statusOK
if resp.StatusCode == http.StatusOK {
- got := moduleLib.ClusterKvPairs{}
+ got := cluster.ClusterKvPairs{}
json.NewDecoder(resp.Body).Decode(&got)
if reflect.DeepEqual(testCase.expected, got) == false {
diff --git a/src/ncm/api/networkhandler.go b/src/ncm/api/networkhandler.go
index 01d077a7..ed266697 100644
--- a/src/ncm/api/networkhandler.go
+++ b/src/ncm/api/networkhandler.go
@@ -22,7 +22,8 @@ import (
"io"
"net/http"
- moduleLib "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ netintents "github.com/onap/multicloud-k8s/src/ncm/pkg/networkintents"
+ nettypes "github.com/onap/multicloud-k8s/src/ncm/pkg/networkintents/types"
"github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/validation"
pkgerrors "github.com/pkg/errors"
@@ -34,11 +35,11 @@ import (
type networkHandler struct {
// Interface that implements Cluster operations
// We will set this variable with a mock interface for testing
- client moduleLib.NetworkManager
+ client netintents.NetworkManager
}
// Check for valid format of input parameters
-func validateNetworkInputs(p moduleLib.Network) error {
+func validateNetworkInputs(p netintents.Network) error {
// validate name
errs := validation.IsValidName(p.Metadata.Name)
if len(errs) > 0 {
@@ -47,7 +48,7 @@ func validateNetworkInputs(p moduleLib.Network) error {
// validate cni type
found := false
- for _, val := range moduleLib.CNI_TYPES {
+ for _, val := range nettypes.CNI_TYPES {
if p.Spec.CniType == val {
found = true
break
@@ -59,7 +60,7 @@ func validateNetworkInputs(p moduleLib.Network) error {
subnets := p.Spec.Ipv4Subnets
for _, subnet := range subnets {
- err := moduleLib.ValidateSubnet(subnet)
+ err := nettypes.ValidateSubnet(subnet)
if err != nil {
return pkgerrors.Wrap(err, "invalid subnet")
}
@@ -69,7 +70,7 @@ func validateNetworkInputs(p moduleLib.Network) error {
// Create handles creation of the Network entry in the database
func (h networkHandler) createNetworkHandler(w http.ResponseWriter, r *http.Request) {
- var p moduleLib.Network
+ var p netintents.Network
vars := mux.Vars(r)
clusterProvider := vars["provider-name"]
cluster := vars["cluster-name"]
@@ -114,7 +115,7 @@ func (h networkHandler) createNetworkHandler(w http.ResponseWriter, r *http.Requ
// Put handles creation/update of the Network entry in the database
func (h networkHandler) putNetworkHandler(w http.ResponseWriter, r *http.Request) {
- var p moduleLib.Network
+ var p netintents.Network
vars := mux.Vars(r)
clusterProvider := vars["provider-name"]
cluster := vars["cluster-name"]
diff --git a/src/ncm/api/providernethandler.go b/src/ncm/api/providernethandler.go
index 23310c31..66a41a4d 100644
--- a/src/ncm/api/providernethandler.go
+++ b/src/ncm/api/providernethandler.go
@@ -23,7 +23,8 @@ import (
"net/http"
"strings"
- moduleLib "github.com/onap/multicloud-k8s/src/ncm/pkg/module"
+ netintents "github.com/onap/multicloud-k8s/src/ncm/pkg/networkintents"
+ nettypes "github.com/onap/multicloud-k8s/src/ncm/pkg/networkintents/types"
"github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/validation"
pkgerrors "github.com/pkg/errors"
@@ -35,11 +36,11 @@ import (
type providernetHandler struct {
// Interface that implements Cluster operations
// We will set this variable with a mock interface for testing
- client moduleLib.ProviderNetManager
+ client netintents.ProviderNetManager
}
// Check for valid format of input parameters
-func validateProviderNetInputs(p moduleLib.ProviderNet) error {
+func validateProviderNetInputs(p netintents.ProviderNet) error {
// validate name
errs := validation.IsValidName(p.Metadata.Name)
if len(errs) > 0 {
@@ -48,7 +49,7 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// validate cni type
found := false
- for _, val := range moduleLib.CNI_TYPES {
+ for _, val := range nettypes.CNI_TYPES {
if p.Spec.CniType == val {
found = true
break
@@ -60,7 +61,7 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// validate the provider network type
found = false
- for _, val := range moduleLib.PROVIDER_NET_TYPES {
+ for _, val := range nettypes.PROVIDER_NET_TYPES {
if strings.ToUpper(p.Spec.ProviderNetType) == val {
found = true
break
@@ -73,7 +74,7 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// validate the subnets
subnets := p.Spec.Ipv4Subnets
for _, subnet := range subnets {
- err := moduleLib.ValidateSubnet(subnet)
+ err := nettypes.ValidateSubnet(subnet)
if err != nil {
return pkgerrors.Wrap(err, "invalid subnet")
}
@@ -88,10 +89,10 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// validate the VLAN Node Selector value
expectLabels := false
found = false
- for _, val := range moduleLib.VLAN_NODE_SELECTORS {
+ for _, val := range nettypes.VLAN_NODE_SELECTORS {
if strings.ToLower(p.Spec.Vlan.VlanNodeSelector) == val {
found = true
- if val == moduleLib.VLAN_NODE_SPECIFIC {
+ if val == nettypes.VLAN_NODE_SPECIFIC {
expectLabels = true
}
break
@@ -114,7 +115,7 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// Need at least one label if node selector value was "specific"
// (if selector is "any" - don't care if labels were supplied or not
if expectLabels && !gotLabels {
- return pkgerrors.Errorf("Node Labels required for VlAN node selector \"%v\"", moduleLib.VLAN_NODE_SPECIFIC)
+ return pkgerrors.Errorf("Node Labels required for VlAN node selector \"%v\"", nettypes.VLAN_NODE_SPECIFIC)
}
return nil
@@ -122,7 +123,7 @@ func validateProviderNetInputs(p moduleLib.ProviderNet) error {
// Create handles creation of the ProviderNet entry in the database
func (h providernetHandler) createProviderNetHandler(w http.ResponseWriter, r *http.Request) {
- var p moduleLib.ProviderNet
+ var p netintents.ProviderNet
vars := mux.Vars(r)
clusterProvider := vars["provider-name"]
cluster := vars["cluster-name"]
@@ -167,7 +168,7 @@ func (h providernetHandler) createProviderNetHandler(w http.ResponseWriter, r *h
// Put handles creation/update of the ProviderNet entry in the database
func (h providernetHandler) putProviderNetHandler(w http.ResponseWriter, r *http.Request) {
- var p moduleLib.ProviderNet
+ var p netintents.ProviderNet
vars := mux.Vars(r)
clusterProvider := vars["provider-name"]
cluster := vars["cluster-name"]
diff --git a/src/ncm/api/schedulerhandler.go b/src/ncm/api/schedulerhandler.go
new file mode 100644
index 00000000..d07d132d
--- /dev/null
+++ b/src/ncm/api/schedulerhandler.go
@@ -0,0 +1,63 @@
+/*
+ * 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 api
+
+import (
+ "net/http"
+
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/scheduler"
+
+ "github.com/gorilla/mux"
+)
+
+// Used to store backend implementations objects
+// Also simplifies mocking for unit testing purposes
+type schedulerHandler struct {
+ // Interface that implements Cluster operations
+ // We will set this variable with a mock interface for testing
+ client scheduler.SchedulerManager
+}
+
+// applyClusterHandler handles requests to apply network intents for a cluster
+func (h schedulerHandler) applySchedulerHandler(w http.ResponseWriter, r *http.Request) {
+ vars := mux.Vars(r)
+ provider := vars["cluster-provider"]
+ cluster := vars["cluster"]
+
+ err := h.client.ApplyNetworkIntents(provider, cluster)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ w.WriteHeader(http.StatusNoContent)
+}
+
+// terminateSchedulerHandler handles requests to apply network intents for a cluster
+func (h schedulerHandler) terminateSchedulerHandler(w http.ResponseWriter, r *http.Request) {
+ vars := mux.Vars(r)
+ provider := vars["cluster-provider"]
+ cluster := vars["cluster"]
+
+ err := h.client.TerminateNetworkIntents(provider, cluster)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ w.WriteHeader(http.StatusNoContent)
+}