[VID-6] Initial rebase push

Change-Id: I9077be9663754d9b22f77c6a7b3109b361b39346
Signed-off-by: jimmydot <jf2512@att.com>
diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/login.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/login.jsp
new file mode 100755
index 0000000..1fa75ed
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/login.jsp
@@ -0,0 +1,95 @@
+<%@ page import="java.net.URLEncoder"%>

+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>

+<!DOCTYPE html>

+<%

+	// Name is defined by app; do not throw if missing

+	final String appDisplayName = SystemProperties.containsProperty(SystemProperties.APP_DISPLAY_NAME)

+			? SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME)

+			: SystemProperties.APP_DISPLAY_NAME;

+%>

+

+<html>

+	<head>

+		<meta charset="utf-8">

+		<meta http-equiv="X-UA-Compatible" content="IE=edge">

+		<meta name="viewport" content="width=device-width, initial-scale=1">

+		<title>Login</title>

+		<style>

+		html {

+			font-family: Verdana, Arial, Helvetica, sans-serif;

+		}

+		body {

+			padding-top: 15px;

+		}

+		.logo {

+			position: fixed;

+			left: 15px;

+			top: 15px;

+			z-index: -1;

+		}

+		.loginError {

+			font-size: 18px;

+			color: red;

+			text-align: center;

+		}

+		.login {

+			font-size: 16px;

+			display: block;

+			margin-left: auto;

+			margin-right: auto;

+			text-align: center;

+			width: 100%;

+		}

+		.login input[type=submit] {

+			font-size: 16px;

+		}

+		.terms {

+			font-size: 10px;

+			text-align: center;

+			margin-left: auto;

+			margin-right: auto;

+		}

+		.terms a {

+			font-size: 10px;

+			text-align: center;

+			margin-left: auto;

+			margin-right: auto;

+		}

+		</style>

+	</head>

+	<body>

+		<div class="login">

+			<img src="static/fusion/images/ecomp_trans.png" />

+			<h2>

+				<%=appDisplayName%>

+			</h2>

+			<br />

+			<form action="login_external" method="POST"> 

+				<label for="loginId">Login ID:</label>

+				<input id="loginId" name="loginId" type="text" style="width: 140px;height:25px;border-radius:7px;font-size:18px;padding-left:5px;" maxlength="30">

+				<br/>

+				<br/>

+				<label for="password">Password:</label>

+				<input id="password" name="password" type="password" style="width: 140px;height:25px;border-radius:7px;font-size:18px;padding-left:5px;"

+							maxlength="30" >

+				<br />

+				<br />

+				<input id="loginBtn" type="submit" alt="Login" value="Login">

+			</form>

+		</div>

+		<br />

+		<br />

+		<div class="loginError">${model.error}</div>

+		<br />

+		<br />

+		<br />

+		<br />

+		<br />

+		<br />

+		<div id="footer">

+			<div class="terms">

+				Copyright 2017 Open ECOMP and Linux Foundation.

+			</div>

+		</div>

+	</body>

+</html>

diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp
new file mode 100755
index 0000000..1dbb3c0
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/serviceModels.jsp
@@ -0,0 +1,81 @@
+<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiGetSubs.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiSubDetails.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/aaiSubViewEdit.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/angular-ui-tree.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/instantiate.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/vidTree.css" />

+<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />

+

+	

+	<script>

+	

+	var appDS2 = app;

+</script>

+	<script src="app/vid/scripts/controller/VidApp.js"></script>

+	

+<!-- Latest compiled and minified JavaScript -->

+

+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

+

+

+<script src="app/vid/scripts/angular-ui-tree.js"></script>

+

+<script src="app/vid/scripts/constants/componentConstants.js"></script>

+<script src="app/vid/scripts/constants/fieldConstants.js"></script>

+<script src="app/vid/scripts/constants/vidConfiguration.js"></script>

+<script src="app/vid/scripts/constants/parameterConstants.js"></script>

+<script src="app/vid/scripts/controller/aaiSubscriberController.js"></script>

+<script src="app/vid/scripts/controller/creationDialogController.js"></script>

+<script src="app/vid/scripts/controller/deletionDialogController.js"></script>

+<script src="app/vid/scripts/controller/detailsDialogController.js"></script>

+<script src="app/vid/scripts/controller/statusDialogController.js"></script>

+<script src="app/vid/scripts/controller/InstantiationController.js"></script>

+<script src="app/vid/scripts/controller/msoCommitController.js"></script>

+<script src="app/vid/scripts/controller/ServiceModelController.js"></script>

+

+<script src="app/vid/scripts/directives/extensionsDirective.js"></script>

+<script src="app/vid/scripts/directives/parameterBlockDirective.js"></script>

+<script src="app/vid/scripts/directives/popupWindowDirective.js"></script>

+<script src="app/vid/scripts/directives/progressBarDirective.js"></script>

+<script src="app/vid/scripts/services/aaiService.js"></script>

+<script src="app/vid/scripts/services/asdcService.js"></script>

+<script src="app/vid/scripts/services/componentService.js"></script>

+<script src="app/vid/scripts/services/creationService.js"></script>

+<script src="app/vid/scripts/services/dataService.js"></script>

+<script src="app/vid/scripts/services/deletionService.js"></script>

+<script src="app/vid/scripts/services/detailsService.js"></script>

+<script src="app/vid/scripts/services/statusService.js"></script>

+<script src="app/vid/scripts/services/msoService.js"></script>

+<script src="app/vid/scripts/services/propertyService.js"></script>

+<script src="app/vid/scripts/services/utilityService.js"></script>

+<script src="app/vid/scripts/services/vnfService.js"></script>

+

+<%@ page import="org.openecomp.vid.mso.*"%>

+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>

+<%

+	String properties = "{msoMaxPolls:" + SystemProperties.getProperty(MsoProperties.MSO_MAX_POLLS)

+			+ ",msoMaxPollingIntervalMsec:"

+			+ SystemProperties.getProperty(MsoProperties.MSO_POLLING_INTERVAL_MSECS) + "}";

+%>

+

+<div ng-controller="ServiceModelController"

+	ng-init="init(<%=properties%>);" ng-cloak>

+	<div ng-view></div>

+</div>

+<!--  Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testMso.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testMso.jsp
new file mode 100755
index 0000000..8678dce
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testMso.jsp
@@ -0,0 +1,174 @@
+<link rel="stylesheet" type="text/css" href="app/vid/test/testMso.css" />

+<script src="app/vid/test/testMso.js"></script>

+

+<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />

+

+<script src="app/vid/scripts/controller/msoCommitController.js"></script>

+<script src="app/vid/scripts/controller/detailsDialogController.js"></script>

+<script src="app/vid/scripts/controller/statusDialogController.js"></script>

+

+<script src="app/vid/scripts/services/dataService.js"></script>

+<script src="app/vid/scripts/services/detailsService.js"></script>

+<script src="app/vid/scripts/services/statusService.js"></script>

+<script src="app/vid/scripts/services/componentService.js"></script>

+<script src="app/vid/scripts/services/propertyService.js"></script>

+<script src="app/vid/scripts/services/msoService.js"></script>

+<script src="app/vid/scripts/services/utilityService.js"></script>

+

+<script src="app/vid/scripts/directives/extensionsDirective.js"></script>

+<script src="app/vid/scripts/directives/parameterBlockDirective.js"></script>

+<script src="app/vid/scripts/directives/popupWindowDirective.js"></script>

+<script src="app/vid/scripts/directives/progressBarDirective.js"></script>

+

+<script src="app/vid/scripts/constants/componentConstants.js"></script>

+<script src="app/vid/scripts/constants/fieldConstants.js"></script>

+<script src="app/vid/scripts/constants/parameterConstants.js"></script>

+

+<!--

+	Read configuration properties from server-side properties settings and

+	pass to the test controller via the ng-include onload event.

+

+	Consider / investigate replacing this approach with an alternative

+	REST / Angular mechanism.

+-->

+<%@ page import="org.openecomp.vid.mso.*"%>

+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>

+<%

+	String properties = "{msoMaxPolls:" + SystemProperties.getProperty(MsoProperties.MSO_MAX_POLLS)

+			+ ",msoMaxPollingIntervalMsec:"

+			+ SystemProperties.getProperty(MsoProperties.MSO_POLLING_INTERVAL_MSECS) + "}";

+%>

+

+<div ng-controller="testController" ng-init="init(<%=properties%>);"

+	ng-cloak>

+	<div popup-window class="popupContents" ngx-show="{{popup.isVisible}}"

+		ng-cloak>

+		<div ng-include="'app/vid/scripts/view-models/msoCommit.htm'"

+			onload="autoStartCommitTest();"></div>

+		<div ng-include="'app/vid/scripts/view-models/detailsDialog.htm'"

+			onload="autoStartQueryTest();"></div>

+	</div>

+

+	<h1 class="heading2">

+		<center>Various MSO Tests</center>

+	</h1>

+	<div>

+		<input type="checkbox" ng-change="testMsoModeChanged();"

+			ng-model="isTestMsoMode"></input> <span>Use test MSO

+			controller</span>

+	</div>

+	<div>

+		<h3>These actions are expected to return successfully.</h3>

+		<button type="button" ng-click="queryServiceInstance();" att-button

+			btn-type="primary" size="small">Query Service Instance</button>

+		<button type="button" ng-click="createServiceInstance();" att-button

+			btn-type="primary" size="small">Create Service Instance</button>

+		<button type="button" ng-click="deleteServiceInstance();" att-button

+			btn-type="primary" size="small">Delete Service Instance</button>

+		<button type="button" ng-click="createNetworkInstance();" att-button

+			btn-type="primary" size="small">Create Network Instance</button>

+		<button type="button" ng-click="deleteNetworkInstance();" att-button

+			btn-type="primary" size="small">Delete Network Instance</button>

+		<button type="button" ng-click="createVNFInstance();" att-button

+			btn-type="primary" size="small">Create VNF Instance</button>

+		<button type="button" ng-click="deleteVNFInstance();" att-button

+			btn-type="primary" size="small">Delete VNF Instance</button>

+		<button type="button" ng-click="createVolumeGroupInstance();"

+			att-button btn-type="primary" size="small">Create Volume

+			Group</button>

+		<button type="button" ng-click="deleteVolumeGroupInstance();"

+			att-button btn-type="primary" size="small">Delete Volume

+			Group</button>

+		<button type="button" ng-click="createVFModuleInstance();" att-button

+			btn-type="primary" size="small">Create VF Module</button>

+		<button type="button" ng-click="deleteVFModuleInstance();" att-button

+			btn-type="primary" size="small">Delete VF Module</button>

+	</div>

+	<hr />

+	<h3>These actions are expected to generate errors. These tests assume the above

+		"Use test MSO controller" checkbox is checked. All tests are base on the Create Service

+		Instance transaction.</h3>

+	<ol>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_POLICY_EXCEPTION');" att-button

+				btn-type="primary" size="small">Policy Exception</button> <span>Initial

+				response contains policy exception</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_SERVICE_EXCEPTION');" att-button

+				btn-type="primary" size="small">Service Exception</button> <span>Initial

+				response contains service exception</span>

+		</li>

+		<li>

+			<button type="button" ng-click="generateError('ERROR_POLL_FAILURE');"

+				att-button btn-type="primary" size="small">Poll Failure</button> <span>Subsequent

+				getOrchestrationRequest poll response contains MSO failure condition</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_INVALID_FIELD_INITIAL');" att-button

+				btn-type="primary" size="small">Initial Invalid</button> <span>Initial

+				response contains invalid data field</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_INVALID_FIELD_POLL');" att-button

+				btn-type="primary" size="small">Poll Invalid</button> <span>Subsequent

+				getOrchestrationRequest poll response contains invalid data field</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_GENERAL_SERVER_EXCEPTION');"

+				att-button btn-type="primary" size="small">Server Exception</button>

+			<span>VID controller code generates general exception</span>

+		</li>

+		<li>

+			<button type="button" ng-click="generateError('ERROR_MAX_POLLS');"

+				att-button btn-type="primary" size="small">Maximum Polls</button> <span>Maximum

+				poll attempts exceeded</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_SERVER_TIMEOUT_INITIAL');" att-button

+				btn-type="primary" size="small">Initial Timeout</button> <span>Timeout

+				on initial response</span>

+		</li>

+		<li>

+			<button type="button"

+				ng-click="generateError('ERROR_SERVER_TIMEOUT_POLL');" att-button

+				btn-type="primary" size="small">Poll Timeout</button> <span>Timeout

+				on subsequent getOrchestrationRequest poll response</span>

+		</li>

+		<li>

+			<button type="button" ng-click="generateInvalidUrl404();" att-button

+				btn-type="primary" size="small">Invalid URL (404)</button> <span>GUI

+				front-end specifies invalid URL - HTTP 404 response expected</span>

+		</li>

+		<li>

+			<button type="button" ng-click="generateInvalidUrl405();" att-button

+				btn-type="primary" size="small">Invalid URL (405)</button> <span>GUI

+				front-end specifies invalid URL - HTTP 405 response expected</span>

+		</li>

+	</ol>

+

+</div>

+<!--  Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->

+

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+

diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp
new file mode 100755
index 0000000..59c8a31
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/testViewEdit.jsp
@@ -0,0 +1,172 @@
+<link rel="stylesheet" type="text/css"

+	href="app/vid/test/testViewEdit.css" />

+

+<script src="app/vid/test/testAaiData.js"></script>

+<script src="app/vid/test/testViewEdit.js"></script>

+

+<link rel="stylesheet" type="text/css" href="app/vid/styles/dialogs.css" />

+

+<script src="app/vid/scripts/controller/creationDialogController.js"></script>

+<script src="app/vid/scripts/controller/deletionDialogController.js"></script>

+<script src="app/vid/scripts/controller/detailsDialogController.js"></script>

+<script src="app/vid/scripts/controller/statusDialogController.js"></script>

+<script src="app/vid/scripts/controller/msoCommitController.js"></script>

+

+<script src="app/vid/scripts/services/aaiService.js"></script>

+<script src="app/vid/scripts/services/asdcService.js"></script>

+<script src="app/vid/scripts/services/creationService.js"></script>

+<script src="app/vid/scripts/services/dataService.js"></script>

+<script src="app/vid/scripts/services/deletionService.js"></script>

+<script src="app/vid/scripts/services/detailsService.js"></script>

+<script src="app/vid/scripts/services/statusService.js"></script>

+<script src="app/vid/scripts/services/componentService.js"></script>

+<script src="app/vid/scripts/services/msoService.js"></script>

+<script src="app/vid/scripts/services/propertyService.js"></script>

+<script src="app/vid/scripts/services/utilityService.js"></script>

+

+<script src="app/vid/scripts/directives/extensionsDirective.js"></script>

+<script src="app/vid/scripts/directives/parameterBlockDirective.js"></script>

+<script src="app/vid/scripts/directives/popupWindowDirective.js"></script>

+<script src="app/vid/scripts/directives/progressBarDirective.js"></script>

+

+<script src="app/vid/scripts/constants/componentConstants.js"></script>

+<script src="app/vid/scripts/constants/fieldConstants.js"></script>

+<script src="app/vid/scripts/constants/parameterConstants.js"></script>

+

+<!--

+	Read configuration properties from server-side properties settings and

+	pass to the test controller via the ng-include onload event.

+

+	Consider / investigate replacing this approach with an alternative

+	REST / Angular mechanism.

+-->

+<%@ page import="org.openecomp.vid.mso.*"%>

+<%@ page import="org.openecomp.portalsdk.core.util.SystemProperties"%>

+<%

+	String properties = "{msoMaxPolls:" + SystemProperties.getProperty(MsoProperties.MSO_MAX_POLLS)

+			+ ",msoMaxPollingIntervalMsec:"

+			+ SystemProperties.getProperty(MsoProperties.MSO_POLLING_INTERVAL_MSECS) + "}";

+%>

+

+<div ng-controller="testViewEditController"

+	ng-init="init(<%=properties%>);" ng-cloak>

+

+	<div popup-window class="popupContents" ngx-show="{{popup.isVisible}}"

+		ng-cloak>

+		<div ng-include="'app/vid/scripts/view-models/creationDialog.htm'"></div>

+		<div ng-include="'app/vid/scripts/view-models/deletionDialog.htm'"></div>

+		<div ng-include="'app/vid/scripts/view-models/detailsDialog.htm'"

+			onload="autoStartTest();"></div>

+	</div>

+

+	<h1 class="heading2">

+		<center>Test View Edit Page</center>

+	</h1>

+	<hr />

+	These buttons simulate the add, delete and "show details" (called

+	"script" in User Stories) icons (or buttons) that are expected on the

+	view / edit page.

+	<hr />

+	<div>

+		<input type="checkbox" ng-change="testMsoModeChanged();"

+			ng-model="isTestMsoMode"></input> <span>Use test MSO

+			controller</span>

+	</div>

+	<h3 ng-style="callbackStyle">CALLBACK: {{callbackResults}}</h3>

+	<table>

+		<tr>

+			<td>Service</td>

+			<td>

+				<button type="button" ng-click="createService();" att-button

+					btn-type="primary" size="small">Add</button>

+			</td>

+			<td>

+				<button type="button" ng-click="deleteService();" att-button

+					btn-type="primary" size="small">Delete</button>

+			</td>

+			<td>

+				<button type="button" ng-click="showServiceDetails();" att-button

+					btn-type="primary" size="small">Show Details</button>

+			</td>

+		</tr>

+		<tr>

+			<td>VNF</td>

+			<td>

+				<button type="button" ng-click="createVnf();" att-button

+					btn-type="primary" size="small">Add</button>

+			</td>

+			<td>

+				<button type="button" ng-click="deleteVnf();" att-button

+					btn-type="primary" size="small">Delete</button>

+			</td>

+			<td>

+				<button type="button" ng-click="showVnfDetails();" att-button

+					btn-type="primary" size="small">Show Details</button>

+			</td>

+		</tr>

+		<tr>

+			<td>VF Module</td>

+			<td>

+				<button type="button" ng-click="createVfModule();" att-button

+					btn-type="primary" size="small">Add</button>

+			</td>

+			<td>

+				<button type="button" ng-click="deleteVfModule();" att-button

+					btn-type="primary" size="small">Delete</button>

+			</td>

+			<td>

+				<button type="button" ng-click="showVfModuleDetails();" att-button

+					btn-type="primary" size="small">Show Details</button>

+			</td>

+		</tr>

+		<tr>

+			<td>Volume Group</td>

+			<td>

+				<button type="button" ng-click="createVolumeGroup();" att-button

+					btn-type="primary" size="small">Add</button>

+			</td>

+			<td>

+				<button type="button" ng-click="deleteVolumeGroup();" att-button

+					btn-type="primary" size="small">Delete</button>

+			</td>

+			<td>

+				<button type="button" ng-click="showVolumeGroupDetails();"

+					att-button btn-type="primary" size="small">Show Details</button>

+			</td>

+		</tr>

+		<tr>

+			<td>Network</td>

+			<td>

+				<button type="button" ng-click="createNetwork();" att-button

+					btn-type="primary" size="small">Add</button>

+			</td>

+			<td>

+				<button type="button" ng-click="deleteNetwork();" att-button

+					btn-type="primary" size="small">Delete</button>

+			</td>

+			<td>

+				<button type="button" ng-click="showNetworkDetails();" att-button

+					btn-type="primary" size="small">Show Details</button>

+			</td>

+		</tr>

+	</table>

+</div>

+

+<!--  Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->

+

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+

diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/viewlog.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/viewlog.jsp
new file mode 100755
index 0000000..c1bf19c
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/viewlog.jsp
@@ -0,0 +1,33 @@
+

+

+<div ng-controller="viewLogController">

+     

+     <h1 class="heading1"><center>View Log - Page under Construction...</center></h1>

+     <br>

+    

+

+</div>

+<!--  Temporary solution for footer overlapping the men after talking to EComp SDK developer on 06/16/2016 -->

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+

+

diff --git a/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp
new file mode 100755
index 0000000..9cb6f85
--- /dev/null
+++ b/epsdk-app-onap/src/main/webapp/WEB-INF/jsp/welcome.jsp
@@ -0,0 +1,45 @@
+

+<div>

+     <h1 class="heading1">ONAP</h1>

+     <br>

+     <h1 class="heading1"><u>Welcome to VID</u></h1>

+     <br>

+   The Virtual Infrastructure Deployment (VID) application allows infrastructure service deployment operators 

+   to instantiate service instances and their constituent parts for Distributed service models required by the 

+   ONAP service operations that manage them, such as Mobility Network Services, etc. 

+   The models are defined by ONAP component SDC. The service 

+   deployment operator selects the service operations owner and model that they wish to instantiate. After 

+   entry of appropriate data, the operator instructs VID to direct another ONAP component, MSO, to instantiate 

+   the selected service model. Once the service instance has been instantiated, the service operator can instruct 

+   VID to direct MSO to instantiate the service instance's component VNFs, VF Modules, Networks and Volume Groups. 

+   The VID user can also search for, and display, existing service instances and direct the instantiation of 

+   subsequent instance components.

+     <br><br>

+  

+    <h1 class="heading1"><a href="mailto:portal@lists.onap.org" target="_top">Contact Us</a></h1>

+    <a href="mailto:portal@lists.onap.org" target="_top">Please click here to contact us.</a>

+

+	

+

+<BR>

+

+

+

+</div>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+<br>

+

+