[RIFT 16087] Backend changes to decouple storage semantics from user interface. Chang...
[osm/SO.git] / rwlaunchpad / plugins / yang / rw-pkg-mgmt.yang
index 8370c1b..b863caf 100644 (file)
@@ -53,6 +53,13 @@ module rw-pkg-mgmt
     prefix "manotypes";
   }
 
+  import rw-vnfd {
+    prefix "rwvnfd";
+  }
+  import rw-nsd {
+    prefix "rwnsd";
+  }
+
   revision 2016-06-01 {
     description
       "Initial revision.";
@@ -69,6 +76,37 @@ module rw-pkg-mgmt
     }
   }
 
+  typedef package-file-type {
+    type enumeration {
+      enum ICONS;
+      enum CHARMS;
+      enum SCRIPTS;
+      enum IMAGES;
+      enum CLOUD_INIT;
+      enum README;
+    }
+  }
+
+  typedef vnfd-file-type {
+    type enumeration {
+      enum ICONS;
+      enum CHARMS;
+      enum SCRIPTS;
+      enum IMAGES;
+      enum CLOUD_INIT;
+      enum README;
+    }
+  }
+
+  typedef nsd-file-type {
+    type enumeration {
+      enum VNF_CONFIG;
+      enum NS_CONFIG;
+      enum ICONS;
+      enum SCRIPTS;
+    }
+  }
+
   typedef export-schema {
     type enumeration {
       enum RIFT;
@@ -175,6 +213,14 @@ module rw-pkg-mgmt
     }
   }
 
+  grouping copy-task-status {
+    leaf status {
+      description "The status of the copy task";
+      type task-status;
+      default QUEUED;
+    }
+  }
+
   container download-jobs {
     rwpb:msg-new DownloadJobs;
     description "Download jobs";
@@ -199,6 +245,24 @@ module rw-pkg-mgmt
     }
   }
 
+  container copy-jobs {
+    rwpb:msg-new CopyJobs;
+    description "Copy jobs";
+    config false;
+
+    list job {
+      rwpb:msg-new CopyJob;
+      key "transaction-id";
+
+      leaf transaction-id {
+        description "Unique UUID";
+        type string;
+      }
+
+      uses copy-task-status;
+    }
+  }
+
   rpc get-package-endpoint {
     description "Retrieves the endpoint for the descriptor";
 
@@ -214,6 +278,28 @@ module rw-pkg-mgmt
     }
   }
 
+  rpc package-copy {
+    description "Copies the package specified in input and returns the copied package id";
+
+    input {
+      uses package-identifer;
+
+      leaf package-name {
+        description "Name of destination package";
+        type string;
+      }
+    }
+
+    output {
+     leaf transaction-id {
+        description "Valid ID to track the status of the task";
+        type string;
+      }
+
+     uses package-identifer;
+    }
+  }
+
   rpc get-package-schema {
     description "Retrieves the schema for the package type";
 
@@ -309,6 +395,23 @@ module rw-pkg-mgmt
     input {
       uses package-file-identifer;
       uses external-url-data;
+
+      choice catalog-type {
+          mandatory true;
+          case VNFD {
+            leaf vnfd-file-type { 
+                description "Type of vnfd file being added to the package"; 
+                type vnfd-file-type; 
+            }
+          }
+          case NSD {
+            leaf nsd-file-type { 
+                description "Type of nsd file being added to the package"; 
+                type nsd-file-type; 
+            }
+          }
+      }
+      
     }
 
     output {
@@ -324,6 +427,21 @@ module rw-pkg-mgmt
 
     input {
       uses package-file-identifer;
+      choice catalog-type {
+          case VNFD {
+            leaf vnfd-file-type { 
+                description "Type of file being removed from the vnfd package"; 
+                type vnfd-file-type; 
+            }
+          }
+          case NSD {
+            leaf nsd-file-type { 
+                description "Type of file being removed from the nsd package"; 
+                type nsd-file-type; 
+            }
+          }
+      }
+      
     }
 
     output {
@@ -340,4 +458,4 @@ module rw-pkg-mgmt
     }
   }
 
-}
\ No newline at end of file
+}