From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B5527A0524 for ; Tue, 25 Feb 2020 11:35:19 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AC3F7B62; Tue, 25 Feb 2020 11:35:19 +0100 (CET) Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by dpdk.org (Postfix) with ESMTP id A54701BFAC for ; Tue, 25 Feb 2020 11:35:18 +0100 (CET) Received: by mail-pg1-f169.google.com with SMTP id 70so6669542pgf.8 for ; Tue, 25 Feb 2020 02:35:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=BMZNK1uPpEXG1eV7Q1+gz6dVk4ux5cdX+SfIvNBeYkU=; b=JqdoSUk9ycTlOD41KKubmJe8cN5lZeSvHROoXMpqHzPGpVLHwC4efP4Qyvz7CQD/cW Go3I0dexiLLOxRGHHkAgppOckiRb4cqk7sWIVw2ntwuhtwGPjeL/z1p1oZAUmVa17P97 Xi3scO9QQYZrwTjh4OvShHV7fEzTVFN1VL98m1rsstouU2JczfX91wo+2+TjPfsND4WK q7YTbiEHwE0UtvRXhNBLKl+I7xJcsN7wx05/Q5tP8/CdKGrFrTTw6xhDTezMAMMPlROD dRaRt7imbZKuJriWSnl2himXMQeyhJp7lQaadslgDWF1xQ+HhK/h/d5F/F/6R8QC5AHI j9fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=BMZNK1uPpEXG1eV7Q1+gz6dVk4ux5cdX+SfIvNBeYkU=; b=naa90fKP3hjdwFEB0dYUblgPPDoLjjJRwEFIJ/FG9i1hQ4YSsP1RMaG/66iDsvz1Ya HBthRTWwcx1otPnCMKhu57vHDklon9ZhbOhZy2VsmLeUJKn1uMGSBEaLIL+I5ZkXzaRk ha+5y0q6BzipJOaDJdM4DJwoxSdvgNxAS8QlwHTeK576753T7A/d4+iyuwZD63TBr4FF lfeClN6GUdCbrgk7WjLUCfKMGAXqGIo5TciY8L82X9f5hggg5QJDdLrSs6acFOu66mXj fGIdsjFWIkheg++UN1JQlSVEdEn/z084x5vT5351uIzR72nfiAUsQ1YDVc/8dH/aqWmE DVyQ== X-Gm-Message-State: APjAAAWDqp/rqsn9oIIQGbLg48AnmRTdeLdYP9esf2edg69ZnMKfn94J gfZ56RClcjNI4pnQr8MMfHt9HIC6 X-Google-Smtp-Source: APXvYqzI40yeBk+8SBaC4Ulmz2n1CEgv9QGyFdibiWzwyW8MrlJR6vacArAilqMffpmIz6sKqnVztA== X-Received: by 2002:a62:5183:: with SMTP id f125mr53847502pfb.201.1582626917551; Tue, 25 Feb 2020 02:35:17 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c8c2:de00:35bc:b9a3:f404:3cf2]) by smtp.gmail.com with ESMTPSA id a10sm15819987pgk.71.2020.02.25.02.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2020 02:35:17 -0800 (PST) From: Yasufumi Ogawa To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Tue, 25 Feb 2020 19:34:32 +0900 Message-Id: <20200225103446.8243-16-yasufum.o@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200225103446.8243-1-yasufum.o@gmail.com> References: <20200225103446.8243-1-yasufum.o@gmail.com> Subject: [spp] [PATCH 15/29] tools/sppc: setup with docker opts in SPP pri X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spp-bounces@dpdk.org Sender: "spp" spp_primary launcher only does not use setup_docker_opts() because some options are different from others, but almost similar actually. This update is to merge primary's setup process into the method. As a refactoring, name of container image is excluded from the result of the method because it is not a option, but a mandatory param. Signed-off-by: Yasufumi Ogawa --- tools/sppc/app/spp-primary.py | 37 ++++++++++++----------------------- tools/sppc/lib/app_helper.py | 33 +++++++++++++++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/tools/sppc/app/spp-primary.py b/tools/sppc/app/spp-primary.py index 3e5b2ba..25f94ef 100755 --- a/tools/sppc/app/spp-primary.py +++ b/tools/sppc/app/spp-primary.py @@ -18,17 +18,9 @@ def parse_args(): description="Launcher for spp-primary application container") parser = app_helper.add_eal_args(parser) - parser = app_helper.add_sppc_args(parser) + parser = app_helper.add_appc_args(parser) # Application specific arguments - parser.add_argument( - '-d', '--dev-uids', - type=str, - help='Virtual devices of SPP in resource UID format') - parser.add_argument( - '-v', '--volume', - nargs='*', type=str, - help='Bind mount a volume (for docker)') parser.add_argument( '-n', '--nof-ring', type=int, @@ -48,6 +40,7 @@ def parse_args(): default=5555, help="Port for primary of spp-ctl") + parser = app_helper.add_sppc_args(parser) return parser.parse_args() @@ -58,7 +51,6 @@ def main(): # Setup docker command. docker_cmd = ['sudo', 'docker', 'run', '\\'] - docker_opts = [] # Container image name such as 'sppc/spp-ubuntu:18.04' if args.container_image is not None: @@ -68,18 +60,6 @@ def main(): common.IMG_BASE_NAMES['spp'], args.dist_name, args.dist_ver) - # This container is running in backgroud in defualt. - if args.foreground is not True: - docker_opts += ['-d', '\\'] - else: - docker_opts += ['-it', '\\'] - - docker_opts += [ - '--privileged', '\\', # must be privileged - '-v', '/dev/hugepages:/dev/hugepages', '\\', - '-v', '/var/run/:/var/run/', '\\', - '-v', '/tmp:/tmp', '\\'] - # Setup devices with given device UIDs. dev_uids_list = None sock_files = [] @@ -91,8 +71,13 @@ def main(): dev_uids_list = args.dev_uids.split(',') sock_files = app_helper.sock_files(dev_uids_list, is_spp_pri=True) - docker_opts += [ - container_image, '\\'] + app_opts = [ + '-v', '/var/run/:/var/run/', '\\', + '-v', '/tmp:/tmp', '\\', + '--net', 'host', '\\'] + + docker_opts = app_helper.setup_docker_opts( + args, None, app_opts) # Setup spp primary command. spp_cmd = [app_name, '\\'] @@ -118,7 +103,9 @@ def main(): else: spp_opts += ['-s', '{}:{}'.format(ctl_ip, args.ctl_port), '\\'] - cmds = docker_cmd + docker_opts + spp_cmd + eal_opts + spp_opts + cmds = docker_cmd + docker_opts + [container_image] + spp_cmd + \ + eal_opts + spp_opts + if cmds[-1] == '\\': cmds.pop() common.print_pretty_commands(cmds) diff --git a/tools/sppc/lib/app_helper.py b/tools/sppc/lib/app_helper.py index 411b3f5..f5c65f8 100644 --- a/tools/sppc/lib/app_helper.py +++ b/tools/sppc/lib/app_helper.py @@ -231,7 +231,18 @@ def setup_eal_opts(args, file_prefix, proc_type='auto', is_spp_pri=False, return eal_opts -def setup_docker_opts(args, container_image, socks, workdir=None): +def setup_docker_opts(args, socks=None, app_opts=None, workdir=None): + """Return docker options as a list. + + socks must be None if process behaves as master role, such as + spp_primary, or failed to initialize the process. + + :param args: Parsed args with argparse + :param socks: Socket files, it must be None in spp-primary + :param app_opts: Application specific option + :returns: A list of docker options + """ + docker_opts = [] if args.foreground is True: @@ -239,24 +250,26 @@ def setup_docker_opts(args, container_image, socks, workdir=None): else: docker_opts = ['-d', '\\'] - if workdir is not None: - docker_opts += ['--workdir', workdir, '\\'] + if args.no_privileged is not True: + docker_opts += ['--privileged', '\\'] + + docker_opts += [ + '-v', '/dev/hugepages:/dev/hugepages', '\\'] + + if app_opts is not None: + docker_opts += app_opts + + if args.workdir is not None: + docker_opts += ['--workdir', args.workdir, '\\'] if args.name is not None: docker_opts += ['--name', args.name, '\\'] - if args.no_privileged is not True: - docker_opts += ['--privileged', '\\'] - if socks is not None: for sock in socks: docker_opts += [ '-v', '%s:%s' % (sock['host'], sock['guest']), '\\'] - docker_opts += [ - '-v', '/dev/hugepages:/dev/hugepages', '\\', - container_image, '\\'] - return docker_opts -- 2.17.1