Test-ServiceOnboarding:
    New test module for validating Service Onboarding.
    Added exampleservice to start with, going forward test scenarios
    will validate any new service onboarding on the CORD.

Change-Id: I92e13a7e257e092d738d2e397c3f78530cb18b38
diff --git a/src/test/onboarding/__init__.py b/src/test/onboarding/__init__.py
new file mode 100644
index 0000000..8da76c4
--- /dev/null
+++ b/src/test/onboarding/__init__.py
@@ -0,0 +1,32 @@
+#
+# Copyright 2016-present Ciena 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.
+#
+import os,sys
+import logging
+logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
+##add the python path to lookup the utils
+working_dir = os.path.dirname(os.path.realpath(sys.argv[-1]))
+utils_dir = os.path.join(working_dir, '../utils')
+fsm_dir = os.path.join(working_dir, '../fsm')
+subscriber_dir = os.path.join(working_dir, '../subscriber')
+__path__.append(utils_dir)
+__path__.append(fsm_dir)
+__path__.append(subscriber_dir)
+cli_dir = os.path.join(working_dir, '../cli')
+__path__.append(cli_dir)
+
+#from nose import main as nosetest_main
+#from CordTestConfig import CordTestConfigRestore
+#nosetest_main(addplugins = [ CordTestConfigRestore() ])
diff --git a/src/test/onboarding/onboardingTest.py b/src/test/onboarding/onboardingTest.py
new file mode 100644
index 0000000..d5f1fcb
--- /dev/null
+++ b/src/test/onboarding/onboardingTest.py
@@ -0,0 +1,92 @@
+#
+# Copyright 2016-present Ciena 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.
+#
+import unittest
+import os,sys
+import keystoneclient.v2_0.client as ksclient
+import keystoneclient.apiclient.exceptions
+import neutronclient.v2_0.client as nclient
+import neutronclient.common.exceptions
+from novaclient import client as nova_client
+from neutronclient.v2_0 import client as neutron_client
+import neutronclient.v2_0.client as neutronclient
+from nose.tools import assert_equal
+from CordTestUtils import get_mac, log_test
+from OnosCtrl import OnosCtrl
+from OnosFlowCtrl import OnosFlowCtrl
+from credentials import *
+from OnboardingServiceUtils import OnboardingServiceUtils
+from SSHTestAgent import SSHTestAgent
+import requests
+import time
+import json
+
+class onboarding_exchange():
+
+    @classmethod
+    def setUpClass(cls):
+        OnboardingServiceUtils.setUp()
+
+    @classmethod
+    def tearDownClass(cls):
+        OnboardingServiceUtils.tearDown()
+
+    def cliEnter(self, controller = None):
+        retries = 0
+        while retries < 30:
+            self.cli = OnosCliDriver(controller = controller, connect = True)
+            if self.cli.handle:
+                break
+            else:
+                retries += 1
+                time.sleep(2)
+
+    def cliExit(self):
+        self.cli.disconnect()
+
+    def onos_shutdown(self, controller = None):
+        status = True
+        self.cliEnter(controller = controller)
+        try:
+            self.cli.shutdown(timeout = 10)
+        except:
+            log.info('Graceful shutdown of ONOS failed for controller: %s' %controller)
+            status = False
+
+        self.cliExit()
+        return status
+
+    def test_exampleservice_health(self):
+        """
+        Algo:
+        1. Login to compute node VM
+        2. Get all exampleservice
+        3. Ping to all exampleservice
+        4. Verifying Ping success
+        """
+        status = OnboardingServiceUtils.health_check()
+        assert_equal(status, True)
+
+    def test_exampleservice_onboarding(self):
+        pass
+
+    def test_exampleservice_connectivity(self):
+        pass
+
+    def test_exampleservice_for_apache_service(self):
+        pass
+
+    def test_exampleservice_using__curl(self):
+        pass