From 077cc65e863f5a10d09196c49e63011e40f9b321 Mon Sep 17 00:00:00 2001 From: Rudra Rugge Date: Thu, 10 Nov 2016 17:20:06 -0800 Subject: [PATCH] Mesos CNI support Directory structure commit for Mesos CNI plugin. Change-Id: I6a85fe72a012e964948de4bfe8e61e0bf8783c20 Partial-Bug: #1640918 --- src/container/SConscript | 1 + src/container/mesos-cni/SConscript | 59 +++++++++++++++++++ .../mesos-cni/contrail-mesos-cni.conf | 0 src/container/mesos-cni/mesos_cni/__init__.py | 3 + .../mesos-cni/mesos_cni/mesos_cni.py | 14 +++++ .../mesos-cni/mesos_cni/tests/__init__.py | 3 + src/container/mesos-cni/setup.py | 58 ++++++++++++++++++ 7 files changed, 138 insertions(+) create mode 100644 src/container/mesos-cni/SConscript create mode 100644 src/container/mesos-cni/contrail-mesos-cni.conf create mode 100644 src/container/mesos-cni/mesos_cni/__init__.py create mode 100644 src/container/mesos-cni/mesos_cni/mesos_cni.py create mode 100644 src/container/mesos-cni/mesos_cni/tests/__init__.py create mode 100644 src/container/mesos-cni/setup.py diff --git a/src/container/SConscript b/src/container/SConscript index 39cb42ad95a..682d1282f10 100644 --- a/src/container/SConscript +++ b/src/container/SConscript @@ -25,6 +25,7 @@ CfgmEnv['CFGM_DOC_FILES'] = CfgmDocFiles subdirs=[ 'kube-manager', 'kube-cni', + 'mesos-cni', ] CfgmEnv.SConscript(dirs=subdirs, exports='CfgmEnv', duplicate = 0) diff --git a/src/container/mesos-cni/SConscript b/src/container/mesos-cni/SConscript new file mode 100644 index 00000000000..bf04e41999d --- /dev/null +++ b/src/container/mesos-cni/SConscript @@ -0,0 +1,59 @@ +# -*- mode: python; -*- + +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# +import os + +Import('CfgmEnv') +env = CfgmEnv.Clone() + +setup_sources = [ + 'setup.py', +] + +setup_sources_rules = [] +for file in setup_sources: + setup_sources_rules.append( + env.Install(Dir('.'), "#controller/src/container/mesos-cni/" + file)) + +local_sources = [ + 'mesos_cni/__init__.py', + 'mesos_cni/mesos_cni.py', + 'mesos_cni/tests/__init__.py', +] + +local_sources_rules = [] +for file in local_sources: + target = "/".join(file.split('/')[:-1]) + local_sources_rules.append( + env.Install(target, "#controller/src/container/mesos-cni/" + file)) + +cd_cmd = 'cd ' + Dir('.').path + ' && ' +sdist_depends = [] +sdist_depends.extend(setup_sources_rules) +sdist_depends.extend(local_sources_rules) +sdist_gen = env.Command('dist/mesos_cni-0.1dev.tar.gz', 'setup.py', + cd_cmd + 'python setup.py sdist') + +env.Depends(sdist_gen, sdist_depends) +env.Default(sdist_gen) + +if 'install' in BUILD_TARGETS: + install_cmd = env.Command(None, 'setup.py', + cd_cmd + 'python setup.py install %s' % + env['PYTHON_INSTALL_OPT']) + env.Depends(install_cmd, sdist_depends) + env.Alias('install', install_cmd) + +env.Alias('install', env.Install(env['INSTALL_CONF'], + 'contrail-mesos-cni.conf')) + +buildspace_link = os.environ.get('CONTRAIL_REPO') +if buildspace_link: + # in CI environment shebang limit exceeds for python + # in easy_install/pip, reach to it via symlink + top_path = buildspace_link + '/' + Dir('.').path + top_dir = Dir(top_path) +else: + top_dir = Dir('.') diff --git a/src/container/mesos-cni/contrail-mesos-cni.conf b/src/container/mesos-cni/contrail-mesos-cni.conf new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/container/mesos-cni/mesos_cni/__init__.py b/src/container/mesos-cni/mesos_cni/__init__.py new file mode 100644 index 00000000000..95e0651c50a --- /dev/null +++ b/src/container/mesos-cni/mesos_cni/__init__.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/container/mesos-cni/mesos_cni/mesos_cni.py b/src/container/mesos-cni/mesos_cni/mesos_cni.py new file mode 100644 index 00000000000..a7890033fd2 --- /dev/null +++ b/src/container/mesos-cni/mesos_cni/mesos_cni.py @@ -0,0 +1,14 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +""" +Mesos CNI plugin +""" + +def main(): + pass + + +if __name__ == '__main__': + main() diff --git a/src/container/mesos-cni/mesos_cni/tests/__init__.py b/src/container/mesos-cni/mesos_cni/tests/__init__.py new file mode 100644 index 00000000000..95e0651c50a --- /dev/null +++ b/src/container/mesos-cni/mesos_cni/tests/__init__.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# diff --git a/src/container/mesos-cni/setup.py b/src/container/mesos-cni/setup.py new file mode 100644 index 00000000000..70dd48a9d6c --- /dev/null +++ b/src/container/mesos-cni/setup.py @@ -0,0 +1,58 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import setuptools, re +import os + +class RunTestsCommand(setuptools.Command): + description = "Test command to run testr in virtualenv" + user_options = [ + ('coverage', 'c', + "Generate code coverage report"), + ] + boolean_options = ['coverage'] + def initialize_options(self): + self.cwd = None + self.coverage = False + def finalize_options(self): + self.cwd = os.getcwd() + def run(self): + logfname = 'test.log' + args = '-V' + if self.coverage: + logfname = 'coveragetest.log' + args += ' -c' + rc_sig = os.system('./run_tests.sh %s' % args) + if rc_sig >> 8: + os._exit(rc_sig>>8) + with open(logfname) as f: + if not re.search('\nOK', ''.join(f.readlines())): + os._exit(1) + +setuptools.setup( + name='mesos_cni', + version='0.1dev', + packages=setuptools.find_packages(), + package_data={'': ['*.html', '*.css', '*.xml', '*.yml']}, + + # metadata + author="OpenContrail", + author_email="dev@lists.opencontrail.org", + license="Apache Software License", + url="http://www.opencontrail.org/", + + long_description="Mesos CNI Plugin", + + test_suite='mesos_cni.tests', + + entry_points = { + # Please update sandesh/common/vns.sandesh on process name change + 'console_scripts' : [ + 'contrail-mesos-cni = mesos_cni.mesos_cni:main', + ], + }, + cmdclass={ + 'run_tests': RunTestsCommand, + }, +)