aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimoney, Dan (dt5972) <dt5972@att.com>2018-03-06 09:16:06 -0500
committerTimoney, Dan (dt5972) <dt5972@att.com>2018-03-22 16:53:13 -0400
commit95c2f883fbc5d5a1a2dc41e7c83d241aa81c3a71 (patch)
tree3df6ae8204818284bf3f347221a26cbcd5b71866
parent392955307bdf767eac30447c49617efb8d6dc19a (diff)
SDNC-252
SDNC-252 PreTest Validation Changes Chnage-ID:Iccddef8bfa3c394fc938654c2652e9a6b2b90f55 Issue-ID: SDNC-252 Change-Id: I650378f1cb456a0e69a23fe88c42f71aa8acb5e6 Signed-off-by: Vandana_Chaurse <vc00494508@techmahindra.com> Signed-off-by: Timoney, Dan (dt5972) <dt5972@att.com>
-rw-r--r--SDNC-GUI-252/resources/application.properties59
-rw-r--r--SDNC-GUI-252/resources/static/form-validationTest.html141
-rw-r--r--SDNC-GUI-252/webapp/WEB-INF/views/index.jsp69
-rw-r--r--SDNC-GUI-252/webapp/js/sdnc-controller/sdnc-validationTest-controller.js243
-rw-r--r--SDNC-GUI-252/webapp/js/sdnc-services/sdnc-validationTest-service.js80
-rw-r--r--SDNC-GUI-252/webapp/package.json32
-rw-r--r--pom.xml20
7 files changed, 625 insertions, 19 deletions
diff --git a/SDNC-GUI-252/resources/application.properties b/SDNC-GUI-252/resources/application.properties
new file mode 100644
index 0000000..a96b37d
--- /dev/null
+++ b/SDNC-GUI-252/resources/application.properties
@@ -0,0 +1,59 @@
+server.port = 9001
+
+spring.jackson.serialization.fail-on-empty-beans=false
+
+server.tomcat.uri-encoding=utf-8
+
+server.error.whitelabel.enabled=false
+spring.mvc.view.prefix = /WEB-INF/views/
+spring.mvc.view.suffix = .jsp
+
+#spring.datasource.url=jdbc:mysql://localhost:3306/mysql?useSSL=false
+#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+#spring.datasource.name=mysql
+#spring.jpa.database=mysql
+#spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
+#
+#spring.datasource.username=root
+#spring.datasource.password=root
+#spring.jpa.generate-ddl=true
+
+spring.datasource.tomcat.max-wait=20000
+spring.datasource.tomcat.max-active=50
+spring.datasource.tomcat.max-idle=20
+spring.datasource.tomcat.min-idle=15
+
+spring.jpa.show-sql=true
+#spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardIm
+
+
+#spring.jpa.hibernate.ddl-auto=create
+#spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
+#spring.jpa.properties.hibernate.id.new_generator_mappings = false
+#spring.jpa.properties.hibernate.format_sql = true
+
+#logging.level.org.hibernate.SQL=DEBUG
+#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
+
+# ===============================
+# Set here configurations for the database connection
+spring.datasource.url=jdbc:mariadb://localhost:3306/testreports
+spring.datasource.username=root
+spring.datasource.password=12345
+spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
+# Keep the connection alive if idle for a long time (needed in production)
+spring.datasource.testWhileIdle=true
+spring.datasource.validationQuery=SELECT 1
+# ===============================
+# = JPA / HIBERNATE
+# ===============================
+# Show or not log for each sql query
+spring.jpa.show-sql=true
+# Hibernate ddl auto (create, create-drop, update): with "create-drop" the database
+# schema will be automatically created afresh for every start of application
+spring.jpa.hibernate.ddl-auto=create
+# Naming strategy
+spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
+spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
+# Allows Hibernate to generate SQL optimized for a particular DBMS
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect \ No newline at end of file
diff --git a/SDNC-GUI-252/resources/static/form-validationTest.html b/SDNC-GUI-252/resources/static/form-validationTest.html
new file mode 100644
index 0000000..88f0e96
--- /dev/null
+++ b/SDNC-GUI-252/resources/static/form-validationTest.html
@@ -0,0 +1,141 @@
+<!-- /*
+* ============LICENSE_START=======================================================
+* ONAP : SDNC-FEATURES
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.
+* ============LICENSE_END=========================================================
+*/
+ -->
+<div class="testMain">
+ <div class="heading"><img src="images/validation.png" width=30 height="30" style="margin-left:5px;">&nbsp;&nbsp;Pre-test/Certification</div>
+ <form name="reportForm">
+ <div class="row>
+ <div role="alert" style="margin-left:20px;margin-bottom:5px;">
+ <button class="btn btn-danger testNotification" ng-show="showError"><img src="images/error.png" width=40 height="30" class="testImgIcon">{{errorMessage}}</button>
+ <button class="btn btn-success testNotification" ng-show="showSuccess"><img src="images/success.png" width=40 height="30" class="testImgIcon">{{successMessage}}</button>
+ <button class="btn btn-warning testNotification" ng-show="showWarninf"><img src="images/waning.png" width=35 height="25" class="testImgIcon">{{warningMessage}}</button>
+ <button class="btn btn-info testNotification" ng-show="showInfo">{{infoMessage}}</button>
+ </div>
+
+<div class="row">
+ <div class="column testCol">
+ <label class="labeltext">Specify IP Address</label>
+ </div>
+ <div class="column" style="background-color:#f2f2f2;width:50%;margin-left:0px;">
+ <input type="text" ng-model="IPAddress" name="IPAddress" style="margin-left:5px;width:170px;" ng-ip-address placeholder='255.255.255.255' required></input>
+ <div role="alert">
+ <span class="error" ng-show="reportForm.IPAddress.$error.required">Required!</span>
+ </div>
+ <div role="alert">
+ <span class="error" ng-if="reportForm.IPAddress.$invalid">Not a valid IPAddress!</span>
+ </div>
+ <div role="alert">
+ <span class="error" ng-if="reportForm.IPAddress.pattern">Not a valid IPAddress!</span>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="column testCol">
+ <label class="labeltext">Specify Host Name</label>
+ </div>
+ <div class="column" style="background-color:#f2f2f2;width:50%;margin-left:0px;">
+ <input type="text" ng-model="HostName" name="HostName" style="margin-left:5px;width:170px;" required ng-pattern="hostNamePattern"></input>
+ <div role="alert">
+ <span class="error" ng-show="reportForm.HostName.$error.required">Required!</span>
+ </div>
+ <div role="alert">
+ <span class="error" ng-show="reportForm.HostName.$invalid">Not a valid HostName!</span>
+ </div>
+ </div>
+</div>
+<div class="row">
+ <div class="column" style="width:25%;background-color:#f2f2f2;height:45px;margin-left:35px;">
+ <label class="labeltext">Select Certification</label>
+ </div>
+ <div class="column" style="background-color:#f2f2f2;width:50%;height:45px;margin-left:0px;">
+ <label ng-repeat="val in validationTestList" class="labeltext" style="margin-right:35px;">
+ <input type="checkbox" ng-model="val.Selected" class="check" ng-change="updateSelection($index,validationTestList,val.validationType);">{{val.validationType}}</input>
+ </label>
+ </div>
+</div>
+<!--<hr style="border-color:darkGrey;">-->
+<div class="row" ng-show="allowTestSelection">
+<div class="column btnRunTest">
+<input type="submit" ng-click="runTest()" value="Run PreTest" id="btnSubmit" ng-disabled="showError" style="margin-left:0px;"/>
+</div>
+</div>
+</form>
+<table class="tableDisplay" ng-show="ShowResult" id="tableToExport" style="margin-left:10px;width:1000px;">
+ <tr class="first_row">
+ <th>SNo.
+ </th>
+ <th colspan="2" style="text-align:center;">TestName
+ </th>
+ <th>Device IP
+ </th>
+ <th>Status
+ </th>
+ <th style="width:20%;">Statistics (%Loss)</th>
+ <th style="width:20%;">Average Time (ms)</th>
+ <th>Result
+ </th>
+ </tr>
+ <tr ng-repeat="test in objPreTest">
+ <td>{{$index+1}}
+ </td>
+ <td><img src="{{(test.testtype=='Network Layer') ? 'images/images.png': 'images/protocol.png'}}" width=40 height=30 ></img></td>
+ <td>{{test.testtype}}
+ </td>
+ <td>{{test.ipaddress}}
+ </td>
+ <td>{{test.status | uppercase}}
+ </td>
+ <td>
+ <div ng-show="test.testtype =='Network Layer'" class="w3-light-grey">
+ <div ng-show=test.statistics!=null class="w3-container w3-red w3-center" style="width:{{test.statisticPer}}%">{{test.statistics}}% Loss
+ </div>
+ <div ng-show=test.statistics==null class="w3-orange w3-center" style="width:{{test.statisticPer}}%">No Statistics Recorded
+ </div>
+ </div>
+ <div ng-show="test.testtype =='Protocol Layer'">
+ <img src='/images/router.png' width=30 height=30 style="margin-bottom:10px;"></img>
+ <span class="{{(test.status == 'unreachable') ? 'arrowRed':'arrowGreen'}}">&#8594;</span><span class="{{(test.status == 'unreachable') ? 'arrowRed':'arrowGreen'}}">&#8594;</span><span class="{{(test.status == 'unreachable') ? 'arrowRed':'arrowGreen'}}">&#8594;
+ <img src='/images/router.png' width=30 height=30 ></img>
+ </div>
+ </td>
+ <td>
+ <div ng-show="test.testtype =='Network Layer'" class="w3-light-grey">
+ <div ng-show=test.avgTime!=null class="w3-container w3-green w3-center" style="width:{{test.avgTimePer}}%">{{test.avgTime}} ms</div>
+ <div ng-show=test.statistics==null class="w3-blue w3-center" style="width:{{test.statisticPer}}%">No AvgTime Recorded
+ </div>
+ </div>
+ </td>
+ <td><img src="{{(test.status=='reachable') ? 'images/success.png': 'images/FailImage.png'}}" width=30 height=25></img>
+ </td>
+ </tr>
+</table>
+<div class="row">
+<div class="column" style="margin-top:10px;width:800px;" ng-show="ShowResult">
+ <span class='arrowRed'>&#8594;</span>
+ <label class="labeltext">UnReachable</label>&nbsp;&nbsp;
+ <span class='arrowGreen'>&#8594;</span>
+ <label class="labeltext">Reachable</label>&nbsp;&nbsp;
+ <span><img src='images/success.png' width=30 height=25></span>
+ <label class="labeltext">Pass</label>&nbsp;&nbsp;
+ <span><img src='images/FailImage.png' width=30 height=25></span>
+ <label class="labeltext">Fail</label>
+ </div>
+</div>
+</div> \ No newline at end of file
diff --git a/SDNC-GUI-252/webapp/WEB-INF/views/index.jsp b/SDNC-GUI-252/webapp/WEB-INF/views/index.jsp
new file mode 100644
index 0000000..34a3c91
--- /dev/null
+++ b/SDNC-GUI-252/webapp/WEB-INF/views/index.jsp
@@ -0,0 +1,69 @@
+<!-- /*
+* ============LICENSE_START=======================================================
+* ONAP : SDNC-FEATURES
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.
+* ============LICENSE_END=========================================================
+*/
+ -->
+<!-- index.html -->
+<!DOCTYPE html>
+<html ng-app="myApp">
+ <head>
+ <meta charset="utf-8">
+ <!-- CSS -->
+ <script src="./scripts/jquery.min.js"></script>
+ <script src="./scripts/tether.min.js" ></script>
+ <link rel="stylesheet" href="./node_modules/bootstrap-3.3.7/dist/css/bootstrap.min.css">
+ <script src="./node_modules/bootstrap-3.3.7/dist/js/bootstrap.min.js"></script>
+ <link rel="stylesheet" href="/style/sdnc-style.css">
+ <!-- JS -->
+ <!-- load angular,date-time picker,pagination,growl and ui-router -->
+ <script src = "./scripts/angular.min.js"></script>
+ <script src = "./scripts/angular-route.min.js"></script>
+ <script src="./node_modules/angular-utils-pagination/dirPagination.js"></script>
+ <script src="./node_modules/ng-csv/build/ng-csv.min.js"></script>
+ <script src="./scripts/angular-sanitize.min.js"></script>
+ <link rel="stylesheet" href="./node_modules/angularjs-datetime-picker/angularjs-datetime-picker.css" />
+ <script src="./node_modules/angularjs-datetime-picker/angularjs-datetime-picker.js"></script>
+ <script data-require="jquery@*" data-semver="2.1.4" src="https://code.jquery.com/jquery-2.1.4.js"></script>
+ <script src="./node_modules/angular-utils-pagination/dirPagination.js"></script>
+ <script src="./js/app.js"></script>
+ <script src="./js/sdnc-controller/sdnc-viewreport-controller.js"></script>
+ <script src="./js/sdnc-controller/sdnc-validationTest-controller.js"></script>
+ <script src="./js/sdnc-services/sdnc-viewReport-service.js"></script>
+ <script src="./js/sdnc-services/sdnc-validationTest-service.js"></script>
+ <script src="./scripts/angular-growl.min.js" ></script>
+ <script src="./node_modules/ng-ip-address/ngIpAddress.min.js" ></script>
+
+ <link rel="stylesheet" type="text/css" href="./scripts/angular-growl.min.css">
+ <link rel="stylesheet" href="/style/w3.css">
+ </head>
+ <!-- apply our angular app -->
+ <body>
+ <div class="container">
+ <nav role="navigation" class="navbar navbar-default" style="min-width: 1200px;">
+ <div class="navbar-header" style="background-color:#DCDCDC;font-size: 15px;font-weight: bold;">
+ <ul class="nav navbar-nav">
+ <li ng-class='active'><a href="#testValidation">CERTIFICATION TEST</a></li>
+ <li><a href="#testReports">VIEW ALL REPORTS</a></li>
+ <ul>
+ </div>
+ <nav>
+ <!-- views will be injected here -->
+ <div ng-view></div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/SDNC-GUI-252/webapp/js/sdnc-controller/sdnc-validationTest-controller.js b/SDNC-GUI-252/webapp/js/sdnc-controller/sdnc-validationTest-controller.js
new file mode 100644
index 0000000..a60c840
--- /dev/null
+++ b/SDNC-GUI-252/webapp/js/sdnc-controller/sdnc-validationTest-controller.js
@@ -0,0 +1,243 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : SDNC-FEATURES
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.
+* ============LICENSE_END=========================================================
+*/
+
+myApp.controller('TestController', ['$scope', '$http', 'growl', 'viewReportService', 'validationTestService', function($scope, $http, growl, viewReportService, validationTestService) {
+
+ $scope.showTestReport = false;
+
+ //Input data for validation test dropdwon
+ var validationTestList = [{
+ "typeId": 1,
+ "validationType": "Network Layer",
+ "Selected": false
+ },
+ {
+ "typeId": 2,
+ "validationType": "Protocol Layer",
+ "Selected": false
+ }
+ ];
+
+ $scope.validationTestList = validationTestList;
+
+
+ $scope.getselectval = function() {
+ $scope.selectedvalues = 'Name: ' + $scope.selitem.validationType + ' Id: ' + $scope.selitem.typeId;
+ }
+
+ $scope.showError = false;
+ $scope.errorMessage = "";
+ $scope.showSuccess = false;
+ $scope.successMessage = "";
+ $scope.showWarning = false;
+ $scope.warningMessage = "";
+ $scope.showInfo = false;
+ $scope.infoMessage = "";
+ $scope.ShowResult = false;
+ $scope.allowTestSelection = false;
+ $scope.hostNamePattern = /([a-z0-9](.[a-z0-9-]*[a-z0-9]))/;
+
+
+ //service call to fetch the all the test name
+ $scope.getAllVNF = function() {
+
+ validationTestService.getAllVNF().then(function(data) {
+ if (data != null) {
+ console.log(data);
+ $scope.objvnfList = data.vnfList;
+ console.log("--TestController:getAllVNF called--" + $scope.objvnfList);
+ $scope.allowTestSelection = true;
+ } else {
+ $scope.showWarninf = true;
+ $scope.warningMessage = "No VNF is eligible for confirgruation!!!";
+ growl.error($scope.warningMessage, {
+ title: 'Warning!'
+ });
+ }
+ });
+ };
+ $scope.getAllVNF();
+
+ //Called when user selects a test type
+ $scope.updateSelection = function(position, items, valType) {
+ angular.forEach(items, function(val, index) {
+ if (position != index)
+ val.checked = false;
+ $scope.selectedTest = valType;
+ console.log("--TestController::updateSelection--", $scope.selectedTest);
+ });
+
+ if ($scope.IPAddress != null && $scope.HostName != null && valType != null) {
+ $scope.showError = false;
+ }
+ }
+
+
+ //Called when user clicks on runtest
+ $scope.runTest = function() {
+
+ $scope.showError = false;
+ $scope.vnfSelected = [];
+ $scope.testSelected = [];
+
+ var message = "";
+ for (var i = 0; i < $scope.validationTestList.length; i++) {
+ if ($scope.validationTestList[i].Selected) {
+ var typeId = $scope.validationTestList[i].typeId;
+ var validationType = $scope.validationTestList[i].validationType;
+ message += "typeId: " + typeId + " validationType: " + validationType + "\n";
+ console.log("--TestController::Runtest--", message);
+ var testDetails = {};
+ testDetails.typeId = typeId;
+ testDetails.validationType = validationType;
+ $scope.testSelected.push(testDetails);
+ }
+ }
+ console.log("--TestController::Runtest--", JSON.stringify($scope.testSelected));
+
+ var vnfDetails = {};
+ if ($scope.IPAddress != null && $scope.HostName != null && $scope.testSelected.length >= 1) {
+ vnfDetails.ipAddress = $scope.IPAddress;
+ vnfDetails.hostName = $scope.HostName;
+ $scope.vnfSelected.push(vnfDetails);
+ console.log("--TestController::Runtest--", JSON.stringify($scope.vnfSelected));
+
+ //Call the validation test service with json file and testType as the parameter
+
+ validationTestService.runPretest($scope.vnfSelected, $scope.testSelected).then(function(response) {
+ console.log("--TestController::runTest--", JSON.stringify(response));
+ //in case of success, build the model object to store the service output here
+ if (response.status === 200) {
+ if (response.preTestResponse != null && response.preTestResponse.length >= 1) {
+ $scope.ShowResult = true;
+ $scope.createTestModel(response.preTestResponse);
+ $scope.showMessage(response.preTestResponse);
+
+ } else {
+ console.log(response);
+ $scope.showError = true;
+ $scope.errorMessage = "Something went wrong!!!";
+ growl.error($scope.errorMessage, {
+ title: 'Error!'
+ });
+ }
+ } else {
+ console.log(response);
+ $scope.showError = true;
+ $scope.errorMessage = "Pre test validation failed!!! Check the report for more details";
+ growl.error($scope.errorMessage, {
+ title: 'Error!'
+ });
+ }
+ },
+ function(response) {
+ console.log("--TestController--", response);
+ });
+ } else {
+ $scope.showError = true;
+ $scope.errorMessage = "Please provide the inputs for VNF and test to be performed!!";
+ growl.error($scope.errorMessage, {
+ title: 'Error!'
+ });
+ }
+
+ };
+
+ $scope.showMessage=function(data){
+
+ if(angular.isDefined(data) && data.length>=1){
+
+ angular.forEach(data, function(value, key){
+ if(value.status == "unreachable"){
+ console.log("--TestController::showMessage--",value.status);
+ $scope.showError = true;
+ $scope.errorMessage = "PreTest validation Failed, Please check logs for further details!!!";
+ growl.error($scope.errorMessage, {
+ title: 'Error!'
+ });
+ }
+ else
+ {
+ $scope.showSuccess = true;
+ $scope.successMessage = "Pre test validation completed!!";
+ growl.success($scope.successMessage, {
+ title: 'Success!'
+ });
+ }
+
+ });
+
+ }
+ }
+
+ //Function to build the UI model to be shown
+ $scope.createTestModel = function(result) {
+
+ $scope.showError = false;
+ $scope.showWarning = false;
+ $scope.objPreTestModel = result;
+ $scope.objPreTest = [];
+
+
+ if ($scope.objPreTestModel.length > 1) {
+ for (var i = 0; i < $scope.objPreTestModel.length; i++) {
+ var objTestReport = {};
+ objTestReport.ipaddress = $scope.objPreTestModel[i].ipaddress;
+ objTestReport.status = $scope.objPreTestModel[i].status;
+ objTestReport.testtype = $scope.objPreTestModel[i].testtype;
+ objTestReport.statistics = $scope.objPreTestModel[i].statistics;
+ objTestReport.avgTime = $scope.objPreTestModel[i].avgTime;
+
+
+ if ($scope.objPreTestModel[i].testtype === "Network Layer") {
+ if (objTestReport.statistics != null) {
+ //fetching the statistics to show in progress bar
+ var statistics = objTestReport.statistics;
+ statistics = statistics.split("%");
+ objTestReport.statistics = statistics[0];
+ if (objTestReport.statistics == 0) {
+ objTestReport.statisticPer = parseInt(objTestReport.statistics) + 50;
+ } else
+ objTestReport.statisticPer = objTestReport.statistics;
+ }
+
+ //fetching the avg time to show in progress bar
+ if (objTestReport.avgTime != null) {
+ var avgTime = objTestReport.avgTime;
+ avgTime = avgTime.split("=");
+ var Testtime = avgTime[1];
+ objTestReport.avgTime = Testtime.slice(0, -2).trim();
+ console.log("--TestController::createTestModel--", objTestReport.avgTime);
+ if (objTestReport.avgTime < 50) {
+ objTestReport.avgTimePer = parseInt(objTestReport.avgTime) + 10;
+ } else
+ objTestReport.avgTimePer = objTestReport.avgTime;
+
+ }
+ }
+ $scope.objPreTest.push(objTestReport);
+ console.log("--TestController::createTestModel--", JSON.stringify($scope.objPreTest));
+ }
+ }
+ console.log("--TestController::createTestModel::final PreTestModel--" + JSON.stringify($scope.objPreTest));
+
+ }
+
+}]); \ No newline at end of file
diff --git a/SDNC-GUI-252/webapp/js/sdnc-services/sdnc-validationTest-service.js b/SDNC-GUI-252/webapp/js/sdnc-services/sdnc-validationTest-service.js
new file mode 100644
index 0000000..6a7af30
--- /dev/null
+++ b/SDNC-GUI-252/webapp/js/sdnc-services/sdnc-validationTest-service.js
@@ -0,0 +1,80 @@
+/*
+* ============LICENSE_START=======================================================
+* ONAP : SDNC-FEATURES
+* ================================================================================
+* Copyright 2018 TechMahindra
+*=================================================================================
+* 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.
+* ============LICENSE_END=========================================================
+*/
+myApp.service('validationTestService', ['$http', function($http) {
+
+
+ this.getAllVNF = function() {
+ var testlist = {};
+ return $http.get('./sdnc-stubs/getAllVNF.json')
+ .then(function(response) {
+ console.log("---validationTestService::getAllVNF::TestResponse---" + JSON.stringify(response));
+ vnflist = response.data;
+ return vnflist;
+ },
+ function(response) {
+ console.log("validationTestService::getAllVNF::Status Code", response.status);
+ return response;
+ });
+
+ };
+
+ this.runPretest = function(vnfList, validationTestType) {
+
+
+ var data = {};
+ data.vnfList = vnfList;
+ data.validationTestType = validationTestType;
+
+ var config = {
+ params: data,
+ headers: {
+ 'Accept': 'application/json'
+ }
+ };
+
+ console.log("validationTestService::runPretest::config", JSON.stringify(config));
+
+ // Call the pre validation service
+ var request = {
+ method: 'POST',
+ url: '/runtest',
+ // method: 'GET',
+ //url:'./sdnc-stubs/getTestResult.json',
+ data: data,
+ headers: {
+ 'Content-Type': undefined
+ }
+ };
+
+ // // SEND VNF FOR VALIDATION
+ return $http(request)
+ .then(function(response) {
+ console.log("---validationTestService::uploadFile::Response---" + JSON.stringify(response));
+ return response.data;
+ },
+ function(response) {
+ console.log("--validationTestService::Status Code--", response.status);
+ return response;
+ });
+
+
+ }
+
+}]); \ No newline at end of file
diff --git a/SDNC-GUI-252/webapp/package.json b/SDNC-GUI-252/webapp/package.json
new file mode 100644
index 0000000..ffb9715
--- /dev/null
+++ b/SDNC-GUI-252/webapp/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "myapp",
+ "version": "1.0.0",
+ "description": "list of node modules for myapp",
+ "main": "app.js",
+ "scripts": {
+ "test": "standard"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/NMSVishal/SDNCReports.git"
+ },
+ "author": "",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/NMSVishal/SDNCReports/issues"
+ },
+ "homepage": "https://github.com/NMSVishal/SDNCReports#readme",
+ "dependencies": {
+ "angular": "^1.6.9",
+ "angular-growl": "^0.1.0",
+ "angular-mocks": "^1.6.9",
+ "angular-route": "^1.6.9",
+ "angular-sanitize": "^1.6.9",
+ "angular-utils-pagination": "^0.11.1",
+ "angularjs-datetime-picker": "^0.1.16",
+ "bootstrap": "^4.0.0",
+ "jquery": "^3.3.1",
+ "ng-csv": "^0.3.6",
+ "ng-ip-address": "^1.1.12"
+ }
+}
diff --git a/pom.xml b/pom.xml
index 738714d..97ea1a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,30 +8,12 @@
<version>1.0.1-SNAPSHOT</version>
<relativePath />
</parent>
-
+
<groupId>org.onap.sdnc.features</groupId>
<artifactId>sdnc-features</artifactId>
<version>1.3.1-SNAPSHOT</version>
<packaging>pom</packaging>
-<!-- <modules>
- <module>sdnc_reports_dao</module>
- <module>sdnc_reports_api</module>
- </modules>
-
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-dependencies</artifactId>
- <version>1.3.5.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
-</dependencyManagement> -->
-
<name>sdnc-features</name>
<description>The SDN-C features repository contains code for karaf features that are used by the SDN controller</description>
<url>https://wiki.onap.org</url>