--- /dev/null
+recursive-include src/onaptests/templates *
 
+xtesting
 openstacksdk
 -e git+https://gitlab.com/Orange-OpenSource/lfn/onap/python-onapsdk.git@develop#egg=onapsdk
 
 version = 0.0.1
 description = Test SDK to use ONAP Programatically
 long_description = file: README.md
-url = https://gitlab.com/Orange-OpenSource/lfn/onap/pythonsdk-tests
+url = https://git.onap.org/testsuite/pythonsdk-tests
 author = Orange OpenSource
 license = Apache 2.0
 classifiers =
   --cov=src  --maxfail=1
 
 testpaths = tests
+
+[entry_points]
+xtesting.testcase =
+  basic_vm = onaptests.scenario.basic_vm:BasicVm
+  clearwater_ims = onaptests.scenario.clearwater_ims:ClearwaterIms
 
 
 from setuptools import setup
 
-setup()
+setup(
+    setup_requires=['pbr','setuptools'],
+    pbr=True
+)
 
 # Set ONLY_INSTANTIATE to true to run an instantiation without repeating
 # onboarding and related AAI configuration (Cloud config)
 ONLY_INSTANTIATE= False
-SERVICE_YAML_TEMPLATE = "templates/vnf-services/ubuntu16test-service.yaml"
+SERVICE_YAML_TEMPLATE = "src/onaptests/templates/vnf-services/ubuntu16test-service.yaml"
 CLEANUP_FLAG = True
 CLEANUP_ACTIVITY_TIMER = 10  # nb of seconds before cleanup in case cleanup option is set
 VENDOR_NAME = "basicvm_vendor"
 
 SERVICE_INSTANCE_NAME = "basicvm_ubuntu16_service_instance"
 
-VSP_FILE_PATH = "templates/heat_files/ubuntu16/ubuntu16.zip"
+VSP_FILE_PATH = "src/onaptests/templates/templates/heat_files/ubuntu16/ubuntu16.zip"
 
 
 # The cloud Part
 
--- /dev/null
+#!/usr/bin/env python
+"""Basic VM test case."""
+import logging
+import time
+
+from xtesting.core import testcase
+from onapsdk.configuration import settings
+from onaptests.steps.instantiate.vf_module_ala_carte import YamlTemplateVfModuleAlaCarteInstantiateStep
+
+class BasicVm(testcase.TestCase):
+    """Onboard then instantiate a simple VM though ONAP."""
+
+    __logger = logging.getLogger(__name__)
+
+    def __init__(self, **kwargs):
+        """Init BasicVM."""
+        # import ubuntu16_nomulticloud_settings needed
+        if "case_name" not in kwargs:
+            kwargs["case_name"] = 'basic_vm'
+        super(BasicVm, self).__init__(**kwargs)
+        self.__logger.debug("BasicVm init started")
+        self.test = YamlTemplateVfModuleAlaCarteInstantiateStep(
+                cleanup=settings.CLEANUP_FLAG)
+        self.start_time = None
+        self.stop_time = None
+        self.result = 0
+
+    def run(self):
+        """Run onap_tests with ubuntu16 VM."""
+        self.start_time = time.time()
+        self.__logger.debug("start time")
+        self.test.execute()
+        self.__logger.info("VNF basic_vm successfully created")
+        if not settings.CLEANUP_FLAG:
+            self.result = 100
+            self.stop_time = time.time()
+            return testcase.TestCase.EX_OK
+
+    def clean(self):
+        """Clean VNF."""
+        if settings.CLEANUP_FLAG:
+            time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
+        try:
+            self.test.cleanup()
+        except ValueError as error:
+            self.__logger.info("service instance deleted as expected {0}".format(error))
+            self.result = 100
+            self.stop_time = time.time()
+            return testcase.TestCase.EX_OK
 
--- /dev/null
+#!/usr/bin/env python
+"""vIMS VM test case."""
+import logging
+import time
+
+from xtesting.core import testcase
+from onapsdk.configuration import settings
+from onaptests.steps.instantiate.vf_module_ala_carte import YamlTemplateVfModuleAlaCarteInstantiateStep
+
+class ClearwaterIms(testcase.TestCase):
+    """Onboard then instantiate a simple VM though ONAP."""
+
+    __logger = logging.getLogger(__name__)
+
+    def __init__(self, **kwargs):
+        """Init Clearwater IMS."""
+        # import clearwater_ims_nomulticloud_settings needed
+        if "case_name" not in kwargs:
+            kwargs["case_name"] = 'clearwater_ims'
+        super(ClearwaterIms, self).__init__(**kwargs)
+        self.__logger.debug("vIMS init started")
+        self.test = YamlTemplateVfModuleAlaCarteInstantiateStep(
+                cleanup=settings.CLEANUP_FLAG)
+        self.start_time = None
+        self.stop_time = None
+        self.result = 0
+
+    def run(self):
+        """Run vIMS test."""
+        self.start_time = time.time()
+        self.__logger.debug("start time")
+        self.test.execute()
+        self.__logger.info("vIMS successfully created")
+        # Space for running additional tests on the deployed VNF here
+        if not settings.CLEANUP_FLAG:
+            self.result = 100
+            self.stop_time = time.time()
+            return testcase.TestCase.EX_OK
+
+    def clean(self):
+        """Clean VNF."""
+        if settings.CLEANUP_FLAG:
+            time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
+        try:
+            self.test.cleanup()
+        except ValueError as error:
+            self.__logger.info("service instance deleted as expected {0}".format(error))
+            self.result = 100
+            self.stop_time = time.time()
+            return testcase.TestCase.EX_OK
 
     subscription_type: "ubuntu16test"
     vnfs:
         - vnf_name: ubuntu16test
-          heat_files_to_upload: templates/heat_files/ubuntu16/ubuntu16.zip
+          heat_files_to_upload: src/onaptests/templates/heat_files/ubuntu16/ubuntu16.zip
           vnf_parameters: [
               {"name": "ubuntu16_image_name",
                "value": "ubuntu-16.04-daily"