Package for funectest 61/41161/4
authorshangxdy <shang.xiaodong@zte.com.cn>
Thu, 31 Aug 2017 02:22:48 +0000 (10:22 +0800)
committershangxdy <shang.xiaodong@zte.com.cn>
Wed, 6 Sep 2017 10:18:46 +0000 (18:18 +0800)
Modify the install script

JIRA: PARSER-125

Change-Id: Ia43687286fb8ac3b18b816aa5e4928ce9a12beec
Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
setup.py
tools/parser_install.sh [moved from tests/parser_install.sh with 99% similarity]
tosca2heat/tosca-parser/setup.py

index c53ce4f..0546aa8 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,10 +1,54 @@
+import os
 import setuptools
 
+from distutils.command.install_data import install_data
+from setuptools.command.build_py import build_py
+from setuptools.command.install import install
+
 try:
     import multiprocessing  # noqa
 except ImportError:
     pass
 
+
+class Parser_build_py(build_py):
+    """Override build_py to call customized build."""
+
+    def run(self):
+        print(" ===  Before nfv parser build === ")
+        # self.run_command('xxx')
+        super(Parser_build_py, self).run()
+        print(" ===  After nfv parser build === ")
+
+
+class Parser_install(install):
+    """Override install to call customized install."""
+
+    def run(self):
+        print(" ===  Before nfv parser install === ")
+        super(Parser_install, self).run(self)
+        # Custom stuff here
+        # distutils.command.install actually has some nice helper methods
+        # and interfaces. I strongly suggest reading the docstrings.
+        print(" === After nfv parser install === ")
+
+
+class Parser_post_install(install_data):
+    """Override install_data to call customized install_data."""
+
+    def run(self):
+        print(" === Before nfv parser post install data === ")
+        # Call parent
+        super(Parser_post_install, self).run(self)
+        # Execute commands
+        print(" === After nfv parser post install data ===")
+
+
 setuptools.setup(
     setup_requires=['pbr>=2.0.0'],
+    cmdclass={
+        "build_py": Parser_build_py,
+        "install_data": Parser_install,
+        "post_install": Parser_post_install,
+    },
     pbr=True)
similarity index 99%
rename from tests/parser_install.sh
rename to tools/parser_install.sh
index 40b61d4..d03bbb8 100755 (executable)
@@ -33,9 +33,9 @@ pip uninstall -y heat-translator
 
 # install parser
 if [ -n "${OPNFV_REPO_DIR}" ]; then
-    cd ${OPNFV_REPO_DIR}/parser/tosca2heat/tosca-parser && python setup.py install
     cd ${OPNFV_REPO_DIR}/parser/tosca2heat/heat-translator && python setup.py install
+    cd ${OPNFV_REPO_DIR}/parser/tosca2heat/tosca-parser && python setup.py install
 else
-    cd ${BASE_WORK_DIR}/../tosca2heat/tosca-parser && python setup.py install
     cd ${BASE_WORK_DIR}/../tosca2heat/heat-translator && python setup.py install
+    cd ${BASE_WORK_DIR}/../tosca2heat/tosca-parser && python setup.py install
 fi
\ No newline at end of file
index 566d844..3d70b81 100644 (file)
 # limitations under the License.
 
 # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
+import os
 import setuptools
 
+from distutils.command.install_data import install_data
+from setuptools.command.build_py import build_py
+from setuptools.command.install import install
+
 # In python < 2.7.4, a lazy loading of package `pbr` will break
 # setuptools if some other modules registered functions in `atexit`.
 # solution from: http://bugs.python.org/issue15881#msg170215
+
+
 try:
     import multiprocessing  # noqa
 except ImportError:
     pass
 
+
+class Toscaparser_build_py(build_py):
+    """Override build_py to call customized build."""
+
+    def run(self):
+        print(" ===  Before nfv toscaparser build === ")
+        # self.run_command('xxx')
+        super(Toscaparser_build_py, self).run()
+        print(" ===  After nfv toscaparser build === ")
+
+
+class Toscaparser_install(install):
+    """Override install to call customized install."""
+
+    def run(self):
+        print(" ===  Before nfv toscaparser install === ")
+        # Make sure uninstall toscaparser from openstack
+        os.system("pip uninstall -y tosca-parser")
+
+        super(Toscaparser_install, self).run(self)
+        # Custom stuff here
+        # distutils.command.install actually has some nice helper methods
+        # and interfaces. I strongly suggest reading the docstrings.
+        print(" === After nfv toscaparser install === ")
+
+
+class Toscaparser_post_install(install_data):
+    """Override install_data to call customized install_data."""
+
+    def run(self):
+        print(" === Before nfv toscaparser post install data === ")
+        # Call parent
+        super(Toscaparser_post_install, self).run(self)
+        # Execute commands
+        print(" === After nfv toscaparser post install data ===")
+
+
 setuptools.setup(
     setup_requires=['pbr>=2.0.0'],
+    cmdclass={
+        "build_py": Toscaparser_build_py,
+        "install_data": Toscaparser_install,
+        "post_install": Toscaparser_post_install,
+    },
     pbr=True)