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 65467A0524 for ; Tue, 25 Feb 2020 11:35:11 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5EDD6B62; Tue, 25 Feb 2020 11:35:11 +0100 (CET) Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by dpdk.org (Postfix) with ESMTP id 38C631BFB2 for ; Tue, 25 Feb 2020 11:35:10 +0100 (CET) Received: by mail-pj1-f52.google.com with SMTP id q39so1102472pjc.0 for ; Tue, 25 Feb 2020 02:35:10 -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=YYk0twvbrRomNacrl0j091DjbWoBJKch4bU0xJ9VliA=; b=mZRZTc1xN5dnNiwop1KnzM1mOtZnNHe22KYsnG15GRqAWPh6MfrkZW1vsK+p9gu9vM lxZ+VK6D3NsjNKkKa5ewopfXTPxdu0oUyS2cg3sT3dRCytuZFmwiZ38bdFjH9zERDm2L /3fD5mnEcksphAqYxPcFpRHzU2xSqHy/C4uPtCmrrTI70CBKttSwt4MQyrD969HcwNiN KEv4/hA3/6xemCWm0yUaGRMOXxRuCCCGSRPIGFYe0qeIcrpHOVlUNjQ5nA5w2Ulo21JN Wr+UOLGgRH0NeIkGB3LvlPWbZLAv9V5A23Y6vGg0LCs5ja4MzUUHUluYsl7h6h8CUZ3g kaoA== 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=YYk0twvbrRomNacrl0j091DjbWoBJKch4bU0xJ9VliA=; b=dngmaVzrkug0fL2j/7x4RFh/kB3DQPfva1hQzlr3NajmzO8dLkFFQBllmPB+Yc6nk8 ptFM4QJ0LRBiszqNX/uGwAks5ePtaCMqQiwZ6kxy1CHsv/sQ9Iq3uaDgimE2/P79joSz Aof7EhzEnpcBa4+PUchJ+a33HlqMXAz18fD3lNYz0yLV9PhnU0g/ofW+o2kCK/82yAL3 yXJDKzrnY+J1zS9A/AH9oYF9/zzYGq7mg9wR6O6XxqFgWOwlTIt1xW1jhlIgEsKtirI9 AgOjHN8K/+6Lu/HwpDuNXXcmdvt9vGksBAEaHYLSSiu04Rg5u7iEL5Rk7EX+Vt461Ci9 HfyQ== X-Gm-Message-State: APjAAAV3HkOobwUVjLCMBmG+p2UdzuMSsm7PPU92/p2K0IuEJ32M7uvH TGgXt07Canp/OOztCSRZJ4y4S66n X-Google-Smtp-Source: APXvYqyMr/D4x+LTF8tKVlh37/XOhQqsbOjGvBHdnwKZkztAdRKHETVeFQvaaNWCYjN+wpVlF1Ub/Q== X-Received: by 2002:a17:902:a58a:: with SMTP id az10mr53911323plb.20.1582626909257; Tue, 25 Feb 2020 02:35:09 -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.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2020 02:35:08 -0800 (PST) From: Yasufumi Ogawa To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Tue, 25 Feb 2020 19:34:27 +0900 Message-Id: <20200225103446.8243-11-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 10/29] tools/sppc: version checker for container DPDK ver 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" You need to check version of DPDK on a container because some of application might be deprecated or removed from some specific version. For instance, load balancer example app was removed after v19.08-rc. This update is to add methods for getting DPDK version from container, and comparing it with expected version. Signed-off-by: Yasufumi Ogawa --- tools/sppc/lib/app_helper.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tools/sppc/lib/app_helper.py b/tools/sppc/lib/app_helper.py index cc042e5..b918aeb 100644 --- a/tools/sppc/lib/app_helper.py +++ b/tools/sppc/lib/app_helper.py @@ -4,6 +4,7 @@ from . import common import os import secrets +import subprocess import sys @@ -337,6 +338,34 @@ def gen_sppc_file_prefix(app_name): return 'sppc-{}-{}'.format(app_name, secrets.token_hex(8)) +def get_dpdk_ver_in_container(rte_sdk, c_image): + """Get DPDK version on a container. + + The version is retrieved by reading `${RTE_SDK/VERION` file. + """ + + cmd = ['cat', '{:s}/VERSION'.format(rte_sdk)] + cmd = ['docker', 'run', '-it', c_image] + cmd + # Decode the result of byte type to utf-8. + return subprocess.check_output(cmd).decode('utf-8').strip() + + +def compare_version(expected, target): + """Compare given versions. + + If two versions are equal, return 0. On the other hand, return -1 if + expected ver is less than target, or return 1. + """ + + from distutils.version import LooseVersion + if LooseVersion(expected) == LooseVersion(target): + return 0 + elif LooseVersion(expected) < LooseVersion(target): + return 1 + else: + return -1 + + def _uniq(dup_list): """Remove duplicated elements in a list and return a unique list. -- 2.17.1