add pnf_resource_to_workflow to catalogdb 50/99550/2
authorUbuntu <sunshine.wang@huawei.com>
Fri, 13 Dec 2019 04:05:20 +0000 (12:05 +0800)
committerUbuntu <sunshine.wang@huawei.com>
Fri, 13 Dec 2019 04:09:18 +0000 (12:09 +0800)
bind the pnf model uuid to pnf workflow

Issue-ID: SO-2558

Signed-off-by: Yaoguang Wang <sunshine.wang@huawei.com>
Change-Id: I779ba8bef8ca3bb67ab6e9245eafec8b84571c85

adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V5.7.1__WorkFlowDesignerTables.sql
mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/PnfResourceWorkflow.java [new file with mode: 0644]
mso-catalog-db/src/test/resources/data.sql
mso-catalog-db/src/test/resources/schema.sql

index e44a6b9..8641e51 100644 (file)
@@ -40,6 +40,27 @@ CREATE TABLE IF NOT EXISTS `catalogdb`.`vnf_resource_to_workflow` (
 ENGINE = InnoDB
 DEFAULT CHARACTER SET = latin1;
 
+CREATE TABLE IF NOT EXISTS `catalogdb`.`pnf_resource_to_workflow` (
+  `ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `PNF_RESOURCE_MODEL_UUID` VARCHAR(200) NOT NULL,
+  `WORKFLOW_ID` INT(11) NOT NULL,
+  PRIMARY KEY (`ID`),
+  UNIQUE INDEX `UK_pnf_resource_to_workflow` (`PNF_RESOURCE_MODEL_UUID` ASC, `WORKFLOW_ID` ASC),
+  INDEX `fk_pnf_resource_to_workflow__workflow1_idx` (`WORKFLOW_ID` ASC),
+  INDEX `fk_pnf_resource_to_workflow__pnf_res_mod_uuid_idx` (`PNF_RESOURCE_MODEL_UUID` ASC),
+  CONSTRAINT `fk_pnf_resource_to_workflow__pnf_resource1`
+    FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`)
+    REFERENCES `catalogdb`.`pnf_resource` (`MODEL_UUID`)
+    ON DELETE CASCADE
+    ON UPDATE CASCADE,
+  CONSTRAINT `fk_pnf_resource_to_workflow__workflow1`
+    FOREIGN KEY (`WORKFLOW_ID`)
+    REFERENCES `catalogdb`.`workflow` (`ID`)
+    ON DELETE CASCADE
+    ON UPDATE CASCADE)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = latin1;
+
 CREATE TABLE IF NOT EXISTS `catalogdb`.`activity_spec` (
   `ID` INT(11) NOT NULL AUTO_INCREMENT,
   `NAME` VARCHAR(200) NOT NULL,
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/PnfResourceWorkflow.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/PnfResourceWorkflow.java
new file mode 100644 (file)
index 0000000..6e48938
--- /dev/null
@@ -0,0 +1,91 @@
+package org.onap.so.db.catalog.beans;
+
+import java.io.Serializable;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import com.openpojo.business.annotation.BusinessKey;
+import uk.co.blackpepper.bowman.annotation.LinkedResource;
+
+@Entity
+@Table(name = "pnf_resource_to_workflow")
+public class PnfResourceWorkflow implements Serializable {
+
+    private static final long serialVersionUID = 4897166645148426088L;
+
+    @Id
+    @Column(name = "ID", nullable = false, updatable = false)
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer ID;
+
+    @BusinessKey
+    @Column(name = "PNF_RESOURCE_MODEL_UUID")
+    private String pnfResourceModelUUID;
+
+    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+    @JoinColumn(name = "PNF_RESOURCE_MODEL_UUID", updatable = false, insertable = false)
+    private PnfResource pnfResource;
+
+    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+    @JoinColumn(name = "WORKFLOW_ID")
+    private Workflow workflow;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this).append("pnfResourceModelUUID", pnfResourceModelUUID).toString();
+    }
+
+    @Override
+    public boolean equals(final Object other) {
+        if (!(other instanceof PnfResourceWorkflow)) {
+            return false;
+        }
+        PnfResourceWorkflow castOther = (PnfResourceWorkflow) other;
+        return new EqualsBuilder().append(pnfResourceModelUUID, castOther.pnfResourceModelUUID).isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder().append(pnfResourceModelUUID).toHashCode();
+    }
+
+    public Integer getID() {
+        return ID;
+    }
+
+    public String getPnfResourceModelUUID() {
+        return pnfResourceModelUUID;
+    }
+
+    public void setPnfResourceModelUUID(String pnfResourceModelUUID) {
+        this.pnfResourceModelUUID = pnfResourceModelUUID;
+    }
+
+    @LinkedResource
+    public PnfResource getPnfResource() {
+        return pnfResource;
+    }
+
+    public void setPnfResource(PnfResource pnfResource) {
+        this.pnfResource = pnfResource;
+    }
+
+    @LinkedResource
+    public Workflow getWorkflow() {
+        return workflow;
+    }
+
+    public void setWorkflow(Workflow workflow) {
+        this.workflow = workflow;
+    }
+}
index eaad15c..e5963c1 100644 (file)
@@ -768,10 +768,15 @@ insert into pnf_resource_customization_to_service(service_model_uuid, resource_m
 
 insert into workflow(artifact_uuid, artifact_name, name, operation_name, version, description, body, resource_target, source) values
 ('5b0c4322-643d-4c9f-b184-4516049e99b1', 'testingWorkflow.bpmn', 'testingWorkflow', 'create', 1, 'Test Workflow', null, 'vnf', 'sdc');
+insert into workflow(artifact_uuid, artifact_name, name, operation_name, version, description, body, resource_target, source) values
+('b2fd5627-55e4-4f4f-8064-9e6f443e9152','DummyPnfWorkflow','Dummy Pnf Workflow','DummyPnfWorkflow',1.0,'Dummy Pnf Workflow to test custom Pnf workflow',null,'pnf','native');
 
 insert into vnf_resource_to_workflow(vnf_resource_model_uuid, workflow_id) values
 ('ff2ae348-214a-11e7-93ae-92361f002671', '1');
 
+Insert into pnf_resource_to_workflow (`PNF_RESOURCE_MODEL_UUID`,`WORKFLOW_ID`) values
+("ff2ae348-214a-11e7-93ae-92361f002680", 2);
+
 insert into activity_spec(name, description, version) values
 ('testActivity1', 'Test Activity 1', 1);
 
index 6758413..5668ae5 100644 (file)
@@ -1241,6 +1241,18 @@ CREATE TABLE IF NOT EXISTS `vnf_resource_to_workflow` (
   CONSTRAINT `fk_vnf_resource_to_workflow__workflow1` FOREIGN KEY (`WORKFLOW_ID`) REFERENCES `workflow` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
+CREATE TABLE IF NOT EXISTS `pnf_resource_to_workflow` (
+  `ID` int(11) NOT NULL AUTO_INCREMENT,
+  `PNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+  `WORKFLOW_ID` int(11) NOT NULL,
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `UK_pnf_resource_to_workflow` (`PNF_RESOURCE_MODEL_UUID`,`WORKFLOW_ID`),
+  KEY `fk_pnf_resource_to_workflow__workflow1_idx` (`WORKFLOW_ID`),
+  KEY `fk_pnf_resource_to_workflow__pnf_res_mod_uuid_idx` (`PNF_RESOURCE_MODEL_UUID`),
+  CONSTRAINT `fk_pnf_resource_to_workflow__pnf_resource1` FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`) REFERENCES `pnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `fk_pnf_resource_to_workflow__workflow1` FOREIGN KEY (`WORKFLOW_ID`) REFERENCES `workflow` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
 CREATE TABLE IF NOT EXISTS `activity_spec` (
   `ID` INT(11) NOT NULL AUTO_INCREMENT,
   `NAME` VARCHAR(200) NOT NULL,