ns and vf package distribution 91/15391/1
authorLuji7 <lu.ji3@zte.com.cn>
Tue, 26 Sep 2017 07:44:06 +0000 (15:44 +0800)
committerLuji7 <lu.ji3@zte.com.cn>
Tue, 26 Sep 2017 07:44:17 +0000 (15:44 +0800)
Change-Id: I0caba0dbd2719c008e5d9ffa0b89a5552ed15c4d
Issue-Id: USECASEUI-39
Signed-off-by: Luji7 <lu.ji3@zte.com.cn>
13 files changed:
server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Csar.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/DistributionResult.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Job.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/JobStatus.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/ResponseDescriptor.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/exceptions/VfcException.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java
standalone/src/main/assembly/resources/bin/initDB.sh [new file with mode: 0644]
standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createdb.sql [new file with mode: 0644]
standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createobj.sql [new file with mode: 0644]

index 05364b2..75db524 100644 (file)
@@ -17,13 +17,15 @@ package org.onap.usecaseui.server.controller.lcm;
 
 import org.onap.usecaseui.server.bean.lcm.VfNsPackageInfo;
 import org.onap.usecaseui.server.service.lcm.PackageDistributionService;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -42,4 +44,22 @@ public class PackageDistributionController {
     public VfNsPackageInfo instantiateService(){
         return packageDistributionService.retrievePackageInfo();
     }
+
+    @ResponseBody
+    @RequestMapping(value = {"/lcm/ns-packages"}, method = RequestMethod.POST , produces = "application/json")
+    public DistributionResult distributeNsPackage(@RequestBody Csar csar){
+        return packageDistributionService.postNsPackage(csar);
+    }
+
+    @ResponseBody
+    @RequestMapping(value = {"/lcm/vf-packages"}, method = RequestMethod.POST , produces = "application/json")
+    public Job distributeVfPackage(@RequestBody Csar csar){
+        return packageDistributionService.postVfPackage(csar);
+    }
+
+    @ResponseBody
+    @RequestMapping(value = {"/lcm/jobs/{jobId}"}, method = RequestMethod.POST , produces = "application/json")
+    public JobStatus getJobStatus(@PathVariable(value="jobId") String jobId){
+        return packageDistributionService.getJobStatus(jobId);
+    }
 }
index 867df4d..2778613 100644 (file)
 package org.onap.usecaseui.server.service.lcm;
 
 import org.onap.usecaseui.server.bean.lcm.VfNsPackageInfo;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
 
 public interface PackageDistributionService {
 
     VfNsPackageInfo retrievePackageInfo();
+
+    DistributionResult postNsPackage(Csar csar);
+
+    Job postVfPackage(Csar csar);
+
+    JobStatus getJobStatus(String jobId);
 }
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java
new file mode 100644 (file)
index 0000000..9c7aa2b
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc;
+
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+import retrofit2.http.Path;
+
+public interface VfcService {
+
+    @POST("/nspackages")
+    Call<DistributionResult> distributeNsPackage(@Body Csar csar);
+
+    @POST("/vnfpackages")
+    Call<Job> distributeVnfPackage(@Body Csar csar);
+
+    @GET("/jobs/{jobId}")
+    Call<JobStatus> getJobStatus(@Path("jobId") String jobId);
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Csar.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Csar.java
new file mode 100644 (file)
index 0000000..f33a0a8
--- /dev/null
@@ -0,0 +1,29 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.beans;
+
+public class Csar {
+
+    private String csarId;
+
+    public String getCsarId() {
+        return csarId;
+    }
+
+    public void setCsarId(String csarId) {
+        this.csarId = csarId;
+    }
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/DistributionResult.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/DistributionResult.java
new file mode 100644 (file)
index 0000000..8d74a57
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.beans;
+
+public class DistributionResult {
+
+    private String status;
+
+    private String statusDescription;
+
+    private String errorCode;
+
+    public DistributionResult(String status, String statusDescription, String errorCode) {
+        this.status = status;
+        this.statusDescription = statusDescription;
+        this.errorCode = errorCode;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public String getStatusDescription() {
+        return statusDescription;
+    }
+
+    public String getErrorCode() {
+        return errorCode;
+    }
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Job.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/Job.java
new file mode 100644 (file)
index 0000000..5970353
--- /dev/null
@@ -0,0 +1,29 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.beans;
+
+public class Job {
+
+    private String jobId;
+
+    public String getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(String jobId) {
+        this.jobId = jobId;
+    }
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/JobStatus.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/JobStatus.java
new file mode 100644 (file)
index 0000000..2a64b5b
--- /dev/null
@@ -0,0 +1,39 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.beans;
+
+public class JobStatus {
+
+    private String jobId;
+
+    private ResponseDescriptor responseDescriptor;
+
+    public String getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(String jobId) {
+        this.jobId = jobId;
+    }
+
+    public ResponseDescriptor getResponseDescriptor() {
+        return responseDescriptor;
+    }
+
+    public void setResponseDescriptor(ResponseDescriptor responseDescriptor) {
+        this.responseDescriptor = responseDescriptor;
+    }
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/ResponseDescriptor.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/beans/ResponseDescriptor.java
new file mode 100644 (file)
index 0000000..2dd5c3d
--- /dev/null
@@ -0,0 +1,69 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.beans;
+
+public class ResponseDescriptor {
+
+    private String status;
+
+    private String progress;
+
+    private String statusDescription;
+
+    private String errorCode;
+
+    private String responseId;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getProgress() {
+        return progress;
+    }
+
+    public void setProgress(String progress) {
+        this.progress = progress;
+    }
+
+    public String getStatusDescription() {
+        return statusDescription;
+    }
+
+    public void setStatusDescription(String statusDescription) {
+        this.statusDescription = statusDescription;
+    }
+
+    public String getErrorCode() {
+        return errorCode;
+    }
+
+    public void setErrorCode(String errorCode) {
+        this.errorCode = errorCode;
+    }
+
+    public String getResponseId() {
+        return responseId;
+    }
+
+    public void setResponseId(String responseId) {
+        this.responseId = responseId;
+    }
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/exceptions/VfcException.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/exceptions/VfcException.java
new file mode 100644 (file)
index 0000000..3b49942
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * Copyright 2016-2017 ZTE Corporation.
+ *
+ * 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 org.onap.usecaseui.server.service.lcm.domain.vfc.exceptions;
+
+public class VfcException extends RuntimeException {
+
+    public VfcException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}
index 477e457..383ee29 100644 (file)
@@ -23,7 +23,12 @@ import org.onap.usecaseui.server.service.lcm.domain.sdc.SDCCatalogService;
 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
 import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.Vnf;
 import org.onap.usecaseui.server.service.lcm.domain.sdc.exceptions.SDCCatalogException;
-import org.onap.usecaseui.server.util.RestfulServices;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.VfcService;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
+import org.onap.usecaseui.server.service.lcm.domain.vfc.exceptions.VfcException;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Service;
 
@@ -31,6 +36,7 @@ import java.io.IOException;
 import java.util.List;
 
 import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.*;
+import static org.onap.usecaseui.server.util.RestfulServices.create;
 
 @Service("PackageDistributionService")
 @org.springframework.context.annotation.Configuration
@@ -41,13 +47,16 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
 
     private AAIService aaiService;
 
+    private VfcService vfcService;
+
     public DefaultPackageDistributionService() {
-        this(RestfulServices.create(SDCCatalogService.class), RestfulServices.create(AAIService.class));
+        this(create(SDCCatalogService.class), create(AAIService.class), create(VfcService.class));
     }
 
-    public DefaultPackageDistributionService(SDCCatalogService sdcCatalogService, AAIService aaiService) {
+    public DefaultPackageDistributionService(SDCCatalogService sdcCatalogService, AAIService aaiService, VfcService vfcService) {
         this.sdcCatalogService = sdcCatalogService;
         this.aaiService = aaiService;
+        this.vfcService = vfcService;
     }
 
     @Override
@@ -61,4 +70,31 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
             throw new SDCCatalogException("SDC Service is not available!", e);
         }
     }
+
+    @Override
+    public DistributionResult postNsPackage(Csar csar) {
+        try {
+            return vfcService.distributeNsPackage(csar).execute().body();
+        } catch (IOException e) {
+            throw new VfcException("VFC service is not available!", e);
+        }
+    }
+
+    @Override
+    public Job postVfPackage(Csar csar) {
+        try {
+            return vfcService.distributeVnfPackage(csar).execute().body();
+        } catch (IOException e) {
+            throw new VfcException("VFC service is not available!", e);
+        }
+    }
+
+    @Override
+    public JobStatus getJobStatus(String jobId) {
+        try {
+            return vfcService.getJobStatus(jobId).execute().body();
+        } catch (IOException e) {
+            throw new VfcException("VFC service is not available!", e);
+        }
+    }
 }
diff --git a/standalone/src/main/assembly/resources/bin/initDB.sh b/standalone/src/main/assembly/resources/bin/initDB.sh
new file mode 100644 (file)
index 0000000..06d2bfc
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+#
+# Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+#
+# 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.
+#
+
+DIRNAME=`dirname $0`
+HOME=`cd $DIRNAME/; pwd`
+user=$1
+password=$2
+port=$3
+host=$4
+echo "start create usecase-ui db"
+sql_path=$HOME/../
+mysql -u$user -p$password -P$port -h$host <$sql_path/dbscripts/mysql/usecase-ui-createdb.sql
+sql_result=$?
+if [ $sql_result != 0 ] ; then
+    echo "failed to create usecase-ui database"
+    exit 1
+fi
+fileFlag=*createobj.sql
+location=$sql_path/dbscripts/mysql
+fileName=""
+for i in `ls $location`
+do
+    if [[ $i == ${fileFlag} ]];then
+        fileName=${i};
+        echo "start create table:${fileName}"
+        mysql -u$user -p$password -P$port -h$host <$sql_path/dbscripts/mysql/$fileName
+        sql_result=$?
+        if [ $sql_result != 0 ] ; then
+          echo "failed to init usecase-ui table:${fileName}"
+          exit 1
+        fi
+    fi
+done
+echo "init usecase-ui database success!"
+exit 0
+
diff --git a/standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createdb.sql b/standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createdb.sql
new file mode 100644 (file)
index 0000000..31ab5b5
--- /dev/null
@@ -0,0 +1,31 @@
+--
+-- Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+--
+-- 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.
+--
+
+/******************drop old database and user***************************/
+use mysql;
+drop database IF EXISTS usercaseui;
+delete from user where User='usecaseui';
+FLUSH PRIVILEGES;
+
+/******************create new database and user***************************/
+create database usercaseui CHARACTER SET utf8;
+
+GRANT ALL PRIVILEGES ON usercaseui.* TO 'usercaseui'@'%' IDENTIFIED BY 'usercaseui' WITH GRANT OPTION;
+GRANT ALL PRIVILEGES ON mysql.* TO 'usercaseui'@'%' IDENTIFIED BY 'usercaseui' WITH GRANT OPTION;
+
+GRANT ALL PRIVILEGES ON usercaseui.* TO 'usercaseui'@'localhost' IDENTIFIED BY 'usercaseui' WITH GRANT OPTION;
+GRANT ALL PRIVILEGES ON mysql.* TO 'usercaseui'@'localhost' IDENTIFIED BY 'usercaseui' WITH GRANT OPTION;
+FLUSH PRIVILEGES; 
\ No newline at end of file
diff --git a/standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createobj.sql b/standalone/src/main/assembly/resources/dbscripts/mysql/usecase-ui-createobj.sql
new file mode 100644 (file)
index 0000000..7a55c72
--- /dev/null
@@ -0,0 +1,111 @@
+--
+-- Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+--
+-- 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.
+--
+
+use usercaseui;
+
+SET FOREIGN_KEY_CHECKS=0;
+-- ----------------------------
+-- Table structure for alarms_additionalinformation
+-- ----------------------------
+DROP TABLE IF EXISTS `alarms_additionalinformation`;
+CREATE TABLE `alarms_additionalinformation` (
+  `name` varchar(50) NOT NULL,
+  `value` varchar(500) NOT NULL,
+  `eventId` varchar(30) NOT NULL,
+  `createTime` datetime NOT NULL,
+  `updateTime` datetime NOT NULL,
+  PRIMARY KEY (`name`,`eventId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for alarms_commoneventheader
+-- ----------------------------
+DROP TABLE IF EXISTS `alarms_commoneventheader`;
+CREATE TABLE `alarms_commoneventheader` (
+  `version` varchar(10) NOT NULL,
+  `eventName` varchar(50) NOT NULL,
+  `domain` varchar(30) NOT NULL,
+  `eventId` varchar(30) NOT NULL,
+  `eventType` varchar(30) NOT NULL,
+  `nfcNamingCode` varchar(30) DEFAULT NULL,
+  `nfNamingCode` varchar(30) DEFAULT NULL,
+  `sourceId` varchar(50) NOT NULL,
+  `sourceName` varchar(50) NOT NULL,
+  `reportingEntityId` varchar(30) NOT NULL,
+  `reportingEntityName` varchar(30) NOT NULL,
+  `priority` varchar(20) NOT NULL,
+  `startEpochMicrosec` varchar(20) NOT NULL,
+  `lastEpochMicroSec` varchar(20) NOT NULL,
+  `sequence` varchar(10) NOT NULL,
+  `faultFieldsVersion` varchar(10) NOT NULL,
+  `eventServrity` varchar(30) NOT NULL,
+  `eventSourceType` varchar(30) NOT NULL,
+  `eventCategory` varchar(30) NOT NULL,
+  `alarmCondition` varchar(400) NOT NULL,
+  `specificProblem` varchar(400) NOT NULL,
+  `vfStatus` varchar(10) NOT NULL,
+  `alarmInterfaceA` varchar(40) NOT NULL,
+  `status` varchar(11) NOT NULL,
+  `createTime` datetime NOT NULL,
+  `updateTime` datetime NOT NULL,
+  PRIMARY KEY (`eventId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for performance_additionalinformation
+-- ----------------------------
+DROP TABLE IF EXISTS `performance_additionalinformation`;
+CREATE TABLE `performance_additionalinformation` (
+  `name` varchar(50) NOT NULL,
+  `value` varchar(500) NOT NULL,
+  `eventId` varchar(30) NOT NULL,
+  `createTime` datetime NOT NULL,
+  `updateTime` datetime NOT NULL,
+  PRIMARY KEY (`name`,`eventId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for performance_commoneventheader
+-- ----------------------------
+DROP TABLE IF EXISTS `performance_commoneventheader`;
+CREATE TABLE `performance_commoneventheader` (
+  `version` varchar(10) NOT NULL,
+  `eventName` varchar(50) NOT NULL,
+  `domain` varchar(30) NOT NULL,
+  `eventId` varchar(30) NOT NULL,
+  `eventType` varchar(30) NOT NULL,
+  `nfcNamingCode` varchar(30) DEFAULT NULL,
+  `nfNamingCode` varchar(30) DEFAULT NULL,
+  `sourceId` varchar(50) NOT NULL,
+  `sourceName` varchar(50) NOT NULL,
+  `reportingEntityId` varchar(30) NOT NULL,
+  `reportingEntityName` varchar(30) NOT NULL,
+  `priority` varchar(20) NOT NULL,
+  `startEpochMicrosec` varchar(20) NOT NULL,
+  `lastEpochMicroSec` varchar(20) NOT NULL,
+  `sequence` varchar(10) NOT NULL,
+  `measurementsForVfScalingVersion` varchar(10) NOT NULL,
+  `measurementInterval` varchar(10) NOT NULL,
+  `createTime` datetime NOT NULL,
+  `updateTime` datetime NOT NULL,
+  PRIMARY KEY (`eventId`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Init Records 
+-- ----------------------------
+INSERT INTO `alarms_additionalinformation` VALUES ('name', 'value', 'eventId', '2017-09-19 11:12:34', '2017-09-19 11:12:34');
+INSERT INTO `alarms_commoneventheader` VALUES ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '2017-09-04 15:25:11', '2017-09-11 15:25:19');