diff options
author | Cédric Ollivier <cedric.ollivier@orange.com> | 2017-08-18 16:20:33 +0200 |
---|---|---|
committer | Cédric Ollivier <cedric.ollivier@orange.com> | 2017-09-02 14:32:49 +0200 |
commit | b5ac0a412e1958cdff581d14b818bf042293267f (patch) | |
tree | 6b261838744963cceb60235bef39bf35cc8e86c0 | |
parent | 21f973902ee4428462564d27719f366b41ce04c5 (diff) |
Add domino package
It's required by Functest to ease integrating all OPNFV projects and
their requirements.
It also synchronizes requirements with stable/ocata and renames
domino-cli to domino_cli to conform with common module names.
It defines scripts and console_scripts to rely on $PATH.
run_multimode.sh is adapted to correctly call client, cli and server.
It should be noted that run.sh can raise conflicts if it's already
provided by another OPNFV package and that run_on_remote_nodes.sh is
not fully updated. Otherwise it obliges all OPNFV installers to be
updated as well.
run.sh is unchanged and it's called by releng from local directory.
It may rise runtime issues if several files are not loaded via
pkg_resources.
Change-Id: Ibd9dd56f316609180aa432c6b7ee5a375d9af674
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
-rwxr-xr-x | DominoClient.py | 7 | ||||
-rwxr-xr-x | DominoServer.py | 10 | ||||
-rwxr-xr-x | domino_cli.py (renamed from domino-cli.py) | 16 | ||||
-rw-r--r-- | requirements.txt | 15 | ||||
-rw-r--r-- | setup.cfg | 18 | ||||
-rw-r--r-- | setup.py | 22 | ||||
-rwxr-xr-x | tests/run.sh | 24 | ||||
-rwxr-xr-x | tests/run_multinode.sh | 44 | ||||
-rwxr-xr-x | tests/run_on_remotenodes.sh | 20 | ||||
-rwxr-xr-x | tests/test_partitioner.py | 7 |
10 files changed, 110 insertions, 73 deletions
diff --git a/DominoClient.py b/DominoClient.py index 32d1433..b417186 100755 --- a/DominoClient.py +++ b/DominoClient.py @@ -438,13 +438,13 @@ class DominoClient: elif RPCmessage.messageType == QUERY: logging.debug('RPC Timeout for message type: QUERY') -def main(argv): +def main(): client = DominoClient() loglevel = LOGLEVEL interactive = INTERACTIVE #process input arguments try: - opts, args = getopt.getopt(argv,"hc:p:i:l:",["conf=","port=","ipaddr=","log=","iac=","cliport=","uuid=","regmod="]) + opts, args = getopt.getopt(sys.argv[1:],"hc:p:i:l:",["conf=","port=","ipaddr=","log=","iac=","cliport=","uuid=","regmod="]) except getopt.GetoptError: print 'DominoClient.py -c/--conf <configfile> -p/--port <socketport> -i/--ipaddr <IPaddr> -l/--log <loglevel> --iac=true/false --cliport <cliport>' sys.exit(2) @@ -486,5 +486,4 @@ def main(argv): client.start_communicationService() if __name__ == "__main__": - main(sys.argv[1:]) - + sys.exit(main()) diff --git a/DominoServer.py b/DominoServer.py index 8716799..dc4a9b9 100755 --- a/DominoServer.py +++ b/DominoServer.py @@ -464,15 +464,15 @@ class DominoServer: logging.debug('RPC Timeout for message type: PUSH') # TBD: handle each RPC timeout separately -def main(argv): +def main(): server = DominoServer() loglevel = LOGLEVEL #process input arguments try: - opts, args = getopt.getopt(argv,"hc:l:",["conf=","log="]) + opts, args = getopt.getopt(sys.argv[1:],"hc:l:",["conf=","log="]) except getopt.GetoptError: - print 'DominoServer.py -c/--conf <configfile> -l/--log <loglevel>' - sys.exit(2) + print 'DominoServer.py -c/--conf <configfile> -l/--log <loglevel>' + sys.exit(2) for opt, arg in opts: if opt == '-h': print 'DominoServer.py -c/--conf <configfile> -l/--log <loglevel>' @@ -527,4 +527,4 @@ def main(argv): print 'done.' if __name__ == "__main__": - main(sys.argv[1:]) + sys.exit(main()) diff --git a/domino-cli.py b/domino_cli.py index d9245b3..5cb0b1c 100755 --- a/domino-cli.py +++ b/domino_cli.py @@ -28,9 +28,13 @@ from thrift.protocol import TBinaryProtocol #Load configuration parameters from domino_conf import * -def main(argv, cli_port): +def main(): #cli_port = DOMINO_CLI_PORT - + if len(sys.argv) >= 2: + cli_port = sys.argv[1] + else: + print 'domino-cli.py <cliport> ...' + return 2 try: # Make socket # NOTE that domino-cli.py and DominoClient.py are assumed to be run in the same machine @@ -47,7 +51,7 @@ def main(argv, cli_port): transport.open() CLImsg = CLIMessage() - CLImsg.CLI_input = argv + CLImsg.CLI_input = sys.argv[2:] CLIrespmsg = client.d_CLI(CLImsg) if CLIrespmsg.CLI_response is not None: print CLIrespmsg.CLI_response @@ -55,8 +59,4 @@ def main(argv, cli_port): print '%s' % (tx.message) if __name__ == "__main__": - if len(sys.argv) >= 2: - main(sys.argv[2:], sys.argv[1]) - else: - print 'domino-cli.py <cliport> ...' - sys.exit(2) + sys.exit(main()) diff --git a/requirements.txt b/requirements.txt index e0760f6..7989e45 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,8 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. -pbr>=1.6 # Apache-2.0 -Babel>=1.3 # BSD -cliff!=1.16.0,!=1.17.0,>=1.15.0 # Apache-2.0 -PyYAML>=3.1.0 # MIT +pbr>=1.8 # Apache-2.0 +Babel>=2.3.4 # BSD +cliff>=2.3.0 # Apache-2.0 +PyYAML>=3.10.0 # MIT python-dateutil>=2.4.2 # BSD six>=1.9.0 # MIT -tosca-parser>=0.4.0 # Apache-2.0 -heat-translator>=0.5.0 # Apache-2.0 +tosca-parser>=0.7.0 # Apache-2.0 +heat-translator>=0.4.0 # Apache-2.0 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..7526e38 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,18 @@ +[metadata] +name = domino +version = 5 +home-page = https://wiki.opnfv.org/display/domino/Domino+Home + +[files] +packages = . +scripts = + tests/run_multinode.sh + tests/run_on_remotenodes.sh + tests/run.sh + +[entry_points] +console_scripts = + DominoClient = DominoClient:main + DominoServer = DominoServer:main + domino_cli = domino_cli:main + test_partitioner = tests.test_partitioner:main diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..a1e9b3b --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +# Copyright (c) 2017 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +import setuptools + +# 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 + +setuptools.setup( + setup_requires=['pbr>=1.8'], + pbr=True) diff --git a/tests/run.sh b/tests/run.sh index 7da8f36..3971009 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -111,42 +111,42 @@ start_client2 sleep 1 echo "Test Heartbeat" -python domino-cli.py $CLIENT1_CLIPORT heartbeat +python domino_cli.py $CLIENT1_CLIPORT heartbeat sleep 1 echo "Test Subscribe API" -python domino-cli.py $CLIENT1_CLIPORT subscribe -t hot \ +python domino_cli.py $CLIENT1_CLIPORT subscribe -t hot \ -l tosca.policies.Placement:properties:region:nova-1 sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE +python domino_cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE +python domino_cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +python domino_cli.py $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-2 sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +python domino_cli.py $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-3 \ --lop OVERWRITE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +python domino_cli.py $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-3 \ --lop DELETE sleep 1 echo "Test Publish API" -python domino-cli.py $CLIENT1_CLIPORT publish -t "$toscafile_test1" +python domino_cli.py $CLIENT1_CLIPORT publish -t "$toscafile_test1" sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +python domino_cli.py $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement.Geolocation:properties:region:us-west-1 sleep 1 -python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" +python domino_cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" sleep 1 -TUID=$(python domino-cli.py $CLIENT2_CLIPORT list-tuids | cut -c3-34) +TUID=$(python domino_cli.py $CLIENT2_CLIPORT list-tuids | cut -c3-34) echo $TUID sleep 1 -python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" -k "$TUID" +python domino_cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" -k "$TUID" #echo "Stopping Domino Client 1..." #stop_client1 diff --git a/tests/run_multinode.sh b/tests/run_multinode.sh index 7da8f36..5ccdf65 100755 --- a/tests/run_multinode.sh +++ b/tests/run_multinode.sh @@ -26,31 +26,31 @@ server_log=./tests/logdata/server.log start_server() { - pgrep -f "python DominoServer.py" && return 0 - python DominoServer.py --log "$LOGLEVEL" > "$server_log" 2>&1 & + pgrep -f "DominoServer" && return 0 + DominoServer --log "$LOGLEVEL" > "$server_log" 2>&1 & } stop_server() { - pgrep -f "python DominoServer.py" || return 0 - kill $(pgrep -f "python DominoServer.py") + pgrep -f "DominoServer" || return 0 + kill $(pgrep -f "DominoServer") #cat server.log } start_client1() { - #pgrep -f "python DominoClient.py -p $CLIENT1_PORT" && return 0 - python DominoClient.py -p $CLIENT1_PORT --cliport $CLIENT1_CLIPORT \ + #pgrep -f "DominoClient -p $CLIENT1_PORT" && return 0 + DominoClient -p $CLIENT1_PORT --cliport $CLIENT1_CLIPORT \ --log "$LOGLEVEL" > "$client1_log" 2>&1 & } start_client2() { - #pgrep -f "python DominoClient.py -p $CLIENT2_PORT" && return 0 - python DominoClient.py -p $CLIENT2_PORT --cliport $CLIENT2_CLIPORT \ + #pgrep -f "DominoClient -p $CLIENT2_PORT" && return 0 + DominoClient -p $CLIENT2_PORT --cliport $CLIENT2_CLIPORT \ --log "$LOGLEVEL" > "$client2_log" 2>&1 & } stop_clients() { - pgrep -f "python DominoClient.py" || return 0 - kill $(pgrep -f "python DominoClient.py") + pgrep -f "DominoClient" || return 0 + kill $(pgrep -f "DominoClient") #cat client1.log } @@ -111,42 +111,42 @@ start_client2 sleep 1 echo "Test Heartbeat" -python domino-cli.py $CLIENT1_CLIPORT heartbeat +domino_cli $CLIENT1_CLIPORT heartbeat sleep 1 echo "Test Subscribe API" -python domino-cli.py $CLIENT1_CLIPORT subscribe -t hot \ +domino_cli $CLIENT1_CLIPORT subscribe -t hot \ -l tosca.policies.Placement:properties:region:nova-1 sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE +domino_cli $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE +domino_cli $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +domino_cli $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-2 sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +domino_cli $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-3 \ --lop OVERWRITE sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +domino_cli $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement:properties:region:nova-3 \ --lop DELETE sleep 1 echo "Test Publish API" -python domino-cli.py $CLIENT1_CLIPORT publish -t "$toscafile_test1" +domino_cli $CLIENT1_CLIPORT publish -t "$toscafile_test1" sleep 1 -python domino-cli.py $CLIENT1_CLIPORT subscribe \ +domino_cli $CLIENT1_CLIPORT subscribe \ -l tosca.policies.Placement.Geolocation:properties:region:us-west-1 sleep 1 -python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" +domino_cli $CLIENT2_CLIPORT publish -t "$toscafile_test1" sleep 1 -TUID=$(python domino-cli.py $CLIENT2_CLIPORT list-tuids | cut -c3-34) +TUID=$(domino_cli $CLIENT2_CLIPORT list-tuids | cut -c3-34) echo $TUID sleep 1 -python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1" -k "$TUID" +domino_cli $CLIENT2_CLIPORT publish -t "$toscafile_test1" -k "$TUID" #echo "Stopping Domino Client 1..." #stop_client1 diff --git a/tests/run_on_remotenodes.sh b/tests/run_on_remotenodes.sh index f60f469..a371427 100755 --- a/tests/run_on_remotenodes.sh +++ b/tests/run_on_remotenodes.sh @@ -132,30 +132,30 @@ if [ "$IS_IPandKEY_CONFIGURED" = "true" ]; then echo "Test Heartbeat" - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT heartbeat'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT heartbeat'" sleep 1 echo "Test Subscribe API" - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -t hot -l tosca.policies.Placement:properties:region:nova-1'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -t hot -l tosca.policies.Placement:properties:region:nova-1'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top OVERWRITE'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -t dummy1,dummy2 --top DELETE'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-2'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-2'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-3 --lop OVERWRITE'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-3 --lop OVERWRITE'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-3 --lop DELETE'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement:properties:region:nova-3 --lop DELETE'" sleep 1 echo "Test Publish API" - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_3" "sh -c 'cd domino; python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1"'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_3" "sh -c 'cd domino; python domino_cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1"'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino-cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement.Geolocation:properties:region:us-west-1'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_2" "sh -c 'cd domino; python domino_cli.py $CLIENT1_CLIPORT subscribe -l tosca.policies.Placement.Geolocation:properties:region:us-west-1'" sleep 1 - ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_3" "sh -c 'cd domino; python domino-cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1"'" + ssh $ssh_opts -i "$SSH_KEY_PATH" "$USERNAME"@"$CONTROLLER_NODE_3" "sh -c 'cd domino; python domino_cli.py $CLIENT2_CLIPORT publish -t "$toscafile_test1"'" echo "done" diff --git a/tests/test_partitioner.py b/tests/test_partitioner.py index 5634c01..439f84c 100755 --- a/tests/test_partitioner.py +++ b/tests/test_partitioner.py @@ -20,7 +20,8 @@ sys.path.insert(0, glob.glob('./lib')[0]) from mapper import * from partitioner import * -def main(argv): +def main(): + argv = sys.argv[1:] try: #tosca = ToscaTemplate(argv[0]) tpl = yaml.load(file(argv[0],'r')) @@ -52,6 +53,6 @@ def main(argv): except: print('Unexpected error: %s', sys.exc_info()[0]) raise -if __name__ == "__main__": - main(sys.argv[1:]) +if __name__ == "__main__": + sys.exit(main()) |