aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator/internal/project/project.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/orchestrator/internal/project/project.go')
-rw-r--r--src/orchestrator/internal/project/project.go133
1 files changed, 0 insertions, 133 deletions
diff --git a/src/orchestrator/internal/project/project.go b/src/orchestrator/internal/project/project.go
deleted file mode 100644
index f0c50065..00000000
--- a/src/orchestrator/internal/project/project.go
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2019 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 project
-
-import (
- "encoding/json"
-
- "github.com/onap/multicloud-k8s/src/orchestrator/internal/db"
-
- pkgerrors "github.com/pkg/errors"
-)
-
-// Project contains the parameters needed for Projects
-// It implements the interface for managing the Projects
-type Project struct {
- ProjectName string `json:"project-name"`
- Description string `json:"description"`
-}
-
-// ProjectKey is the key structure that is used in the database
-type ProjectKey struct {
- ProjectName string `json:"rb-name"`
-}
-
-// We will use json marshalling to convert to string to
-// preserve the underlying structure.
-func (pk ProjectKey) String() string {
- out, err := json.Marshal(pk)
- if err != nil {
- return ""
- }
-
- return string(out)
-}
-
-// ProjectManager is an interface exposes the Project functionality
-type ProjectManager interface {
- Create(pr Project) (Project, error)
- Get(name string) (Project, error)
- Delete(name string) error
-}
-
-// ProjectClient implements the ProjectManager
-// It will also be used to maintain some localized state
-type ProjectClient struct {
- storeName string
- tagMeta, tagContent string
-}
-
-// NewProjectClient returns an instance of the ProjectClient
-// which implements the ProjectManager
-func NewProjectClient() *ProjectClient {
- return &ProjectClient{
- tagMeta: "projectmetadata",
- }
-}
-
-// Create a new collection based on the project
-func (v *ProjectClient) Create(p Project) (Project, error) {
-
- //Construct the composite key to select the entry
- key := ProjectKey{
- ProjectName: p.ProjectName,
- }
-
- //Check if this Project already exists
- _, err := v.Get(p.ProjectName)
- if err == nil {
- return Project{}, pkgerrors.New("Project already exists")
- }
-
- err = db.DBconn.Create(p.ProjectName, key, v.tagMeta, p)
- if err != nil {
- return Project{}, pkgerrors.Wrap(err, "Creating DB Entry")
- }
-
- return p, nil
-}
-
-// Get returns the Project for corresponding name
-func (v *ProjectClient) Get(name string) (Project, error) {
-
- //Construct the composite key to select the entry
- key := ProjectKey{
- ProjectName: name,
- }
- value, err := db.DBconn.Read(name, key, v.tagMeta)
- if err != nil {
- return Project{}, pkgerrors.Wrap(err, "Get Project")
- }
-
- //value is a byte array
- if value != nil {
- proj := Project{}
- err = db.DBconn.Unmarshal(value, &proj)
- if err != nil {
- return Project{}, pkgerrors.Wrap(err, "Unmarshaling Value")
- }
- return proj, nil
- }
-
- return Project{}, pkgerrors.New("Error getting Project")
-}
-
-// Delete the Project from database
-func (v *ProjectClient) Delete(name string) error {
-
- //Construct the composite key to select the entry
- key := ProjectKey{
- ProjectName: name,
- }
- err := db.DBconn.Delete(name, key, v.tagMeta)
- if err != nil {
- return pkgerrors.Wrap(err, "Delete Project Entry;")
- }
-
- //TODO: Delete the collection when the project is deleted
- return nil
-}