From nobody Sun May 5 22:46:26 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.74 as permitted sender) client-ip=216.205.24.74; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-74.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1585478729; cv=none; d=zohomail.com; s=zohoarc; b=kKFY9javAugtWvmaDGwfWSxSl2Qt9kVPfAhrvPxkRRQF5HfEVYgW8pBgW3ktMP0VV/AZzhgRYqKx9Ztz0COjDZG+Ek5IV16yK9vcQ/xuGMNVpW+5UjVsgyeT0ba6U1qPLF6zh6a8yx8mMxL85miI9Jxyklh4F7iydzqJlA/pokU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585478729; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=3syoCFDio7M+dFnkT/4vaUv4UXpvG6HEX3MuCiMKg28=; b=gLJu3oA0pPc5Fba0OREM4/6WN4yLImP6DISkG2Bc3i990xq7K0Yl2xBwr+ZF3GG+Xq525Ea7oCXeuN9ns6Onmp4qG4BIg9lxBHo9sdF0H1WBHA+eyE4WruReuIKc/1l42o1yliIsLNBjR+AF9MYlErSRNSBgMkvuLISRifLinxc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.74 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-74.mimecast.com (us-smtp-delivery-74.mimecast.com [216.205.24.74]) by mx.zohomail.com with SMTPS id 158547872910324.48555685384872; Sun, 29 Mar 2020 03:45:29 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-99-vA446qHKM2ymcpMobKNUKA-1; Sun, 29 Mar 2020 06:45:25 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C6F4E107ACCA; Sun, 29 Mar 2020 10:45:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1CD015DA76; Sun, 29 Mar 2020 10:45:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 696A618089CD; Sun, 29 Mar 2020 10:45:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 02TAjBIH002648 for ; Sun, 29 Mar 2020 06:45:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id 235A42166B2D; Sun, 29 Mar 2020 10:45:11 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1F56D2166B28 for ; Sun, 29 Mar 2020 10:45:08 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C2F02800297 for ; Sun, 29 Mar 2020 10:45:08 +0000 (UTC) Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-467-eBAEyydeNF2EPAZpn94osA-1; Sun, 29 Mar 2020 06:45:06 -0400 Received: by mail-pl1-f174.google.com with SMTP id k18so694268pll.6; Sun, 29 Mar 2020 03:45:06 -0700 (PDT) Received: from localhost.localdomain ([116.73.71.129]) by smtp.gmail.com with ESMTPSA id d188sm7710076pfa.7.2020.03.29.03.45.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Mar 2020 03:45:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585478727; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3syoCFDio7M+dFnkT/4vaUv4UXpvG6HEX3MuCiMKg28=; b=OmNbQwlTwD4a1coF9CN6/gJHOsypIm7bjimDFOoaEZ/PknW29EuFNgQm4eu64udRTKe9/c JXjiI08sf+errUYXPgJPFYuQviHd0B+jj4kBtdGp50dSFB9gKo9uLfevQbS0UjlD8h6ko5 GC1L3jy5/hI0qsOEJMbOAFJ7rLYAFD8= X-MC-Unique: vA446qHKM2ymcpMobKNUKA-1 X-MC-Unique: eBAEyydeNF2EPAZpn94osA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UA6V7gQCGAozaFyG1Hazf1GP+DjTO8kGcZhc84DE7Dc=; b=U+wDhQZzp3MY5PU5eRulkB68mTHn7CRcsnFXsiFT4fcW4NHZ6LUVoPyy1/eZ5ZPDo4 jA35FPCeNvD18ediUL/ygQ3DyPN+hLxtNxdFUC9zIIJCdOlhX074iOvH7xWn9lcvssrC YQu/CKLZh0h2qNncsgZeUaIRtlQPqlSlqC3KniLTzKEmIJy0xDaxZAwyMMw1euMGiSEg QPBsAHsLWJIdpuPQ8cZHScD3Gm4jCiRLip/FFokykbo5xnRT4XdCE76RPBzE2Fu1ikkh A+HrzNiIUGd+4oIsxON5U25IeTw9CFjfFu5rY1nc+uGYURE72uBiohJSuWO6tIu874DM Xj1A== X-Gm-Message-State: AGi0PubJvWdyCyWVV+cNgVacOA9OA9lJF3b0XUBst6B5X2yENFfZsNoc MKucbq0egouI7ZhTYJaDDD039pCZ664= X-Google-Smtp-Source: APiQypKWBTyMR4dOVJyGDAmnEISsHnDR3l3Mdooo8vMFiRidbPhjIHHy0N0lv6uVH2dAb48HbYkZhw== X-Received: by 2002:a17:90a:c24a:: with SMTP id d10mr634679pjx.135.1585478704522; Sun, 29 Mar 2020 03:45:04 -0700 (PDT) From: Prathamesh Chavan To: libvir-list@redhat.com Subject: [PATCH v2] tools: variables clean-up in libvirt-guests script Date: Sun, 29 Mar 2020 16:14:43 +0530 Message-Id: <20200329104443.12251-1-pc44800@gmail.com> In-Reply-To: <20200328230252.22328-1-pc44800@gmail.com> References: <20200328230252.22328-1-pc44800@gmail.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 02TAjBIH002648 X-loop: libvir-list@redhat.com Cc: mkletzan@redhat.com, Prathamesh Chavan X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 2 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Redeclared variables in script functions marked as local. Variables `guest_running` and `guests_shutting_down` in the functions 'guest_is_on` and `check_guests_shutdown` were untouched, as the functions returned values in these variables. Signed-off-by: Prathamesh Chavan Reviewed-by: Michal Privoznik --- New changes: All the local variable declarations brought together at the beginning of the function. Travis-CI Build report: https://travis-ci.org/github/pratham-pc/libvirt/bui= lds/668315184 Previous version: https://www.redhat.com/archives/libvir-list/2020-March/ms= g01297.html tools/libvirt-guests.sh.in | 125 +++++++++++++++++++++---------------- 1 file changed, 72 insertions(+), 53 deletions(-) diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in index a881f6266e..7af24dab3b 100644 --- a/tools/libvirt-guests.sh.in +++ b/tools/libvirt-guests.sh.in @@ -65,7 +65,7 @@ retval() { # If URI is "default" virsh is called without the "-c" argument # (using libvirt's default connection) run_virsh() { - uri=3D$1 + local uri=3D$1 shift =20 if [ "x$uri" =3D xdefault ]; then @@ -86,7 +86,7 @@ run_virsh_c() { # check if URI is reachable test_connect() { - uri=3D$1 + local uri=3D$1 =20 if run_virsh "$uri" connect 2>/dev/null; then return 0; @@ -103,10 +103,10 @@ test_connect() # --transient: list only transient guests # [none]: list both persistent and transient guests list_guests() { - uri=3D$1 - persistent=3D$2 + local uri=3D$1 + local persistent=3D$2 + local list=3D$(run_virsh_c "$uri" list --uuid $persistent) =20 - list=3D$(run_virsh_c "$uri" list --uuid $persistent) if [ $? -ne 0 ]; then RETVAL=3D1 return 1 @@ -118,8 +118,8 @@ list_guests() { # guest_name URI UUID # return name of guest UUID on URI guest_name() { - uri=3D$1 - uuid=3D$2 + local uri=3D$1 + local uuid=3D$2 =20 run_virsh "$uri" domname "$uuid" 2>/dev/null } @@ -128,11 +128,11 @@ guest_name() { # check if guest UUID on URI is running # Result is returned by variable "guest_running" guest_is_on() { - uri=3D$1 - uuid=3D$2 + local uri=3D$1 + local uuid=3D$2 + local id=3D$(run_virsh "$uri" domid "$uuid") =20 guest_running=3Dfalse - id=3D$(run_virsh "$uri" domid "$uuid") if [ $? -ne 0 ]; then RETVAL=3D1 return 1 @@ -151,6 +151,12 @@ started() { # start # Start or resume the guests start() { + local isfirst=3Dtrue + local bypass=3D + local sync_time=3Dfalse + local uri=3D + local list=3D + [ -f "$LISTFILE" ] || { started; return 0; } =20 if [ "x$ON_BOOT" !=3D xstart ]; then @@ -161,13 +167,13 @@ start() { return 0 fi =20 - isfirst=3Dtrue - bypass=3D - sync_time=3Dfalse test "x$BYPASS_CACHE" =3D x0 || bypass=3D--bypass-cache test "x$SYNC_TIME" =3D x0 || sync_time=3Dtrue while read uri list; do - configured=3Dfalse + local configured=3Dfalse + local confuri=3D + local guest=3D + set -f for confuri in $URIS; do set +f @@ -186,7 +192,7 @@ start() { =20 eval_gettext "Resuming guests on \$uri URI..."; echo for guest in $list; do - name=3D$(guest_name "$uri" "$guest") + local name=3D$(guest_name "$uri" "$guest") eval_gettext "Resuming guest \$name: " if guest_is_on "$uri" "$guest"; then if "$guest_running"; then @@ -217,24 +223,24 @@ start() { # was saved. suspend_guest() { - uri=3D$1 - guest=3D$2 + local uri=3D$1 + local guest=3D$2 + local name=3D$(guest_name "$uri" "$guest") + local label=3D$(eval_gettext "Suspending \$name: ") + local bypass=3D + local slept=3D0 =20 - name=3D$(guest_name "$uri" "$guest") - label=3D$(eval_gettext "Suspending \$name: ") - bypass=3D - slept=3D0 test "x$BYPASS_CACHE" =3D x0 || bypass=3D--bypass-cache printf '%s...\n' "$label" run_virsh "$uri" managedsave $bypass "$guest" >/dev/null & - virsh_pid=3D$! + local virsh_pid=3D$! while true; do sleep 1 kill -0 "$virsh_pid" >/dev/null 2>&1 || break =20 slept=3D$(($slept + 1)) if [ $(($slept % 5)) -eq 0 ]; then - progress=3D$(run_virsh_c "$uri" domjobinfo "$guest" 2>/dev/nul= l | \ + local progress=3D$(run_virsh_c "$uri" domjobinfo "$guest" 2>/d= ev/null | \ awk '/^Data processed:/{print $3, $4}') if [ -n "$progress" ]; then printf '%s%s\n' "$label" "$progress" @@ -251,15 +257,18 @@ suspend_guest() # was successfully shutdown or the timeout defined by $SHUTDOWN_TIMEOUT ex= pired. shutdown_guest() { - uri=3D$1 - guest=3D$2 + local uri=3D$1 + local guest=3D$2 + local name=3D$(guest_name "$uri" "$guest") + local timeout=3D$SHUTDOWN_TIMEOUT + local check_timeout=3Dfalse + local format=3D + local slept=3D =20 - name=3D$(guest_name "$uri" "$guest") eval_gettext "Starting shutdown on guest: \$name" echo retval run_virsh "$uri" shutdown "$guest" >/dev/null || return - timeout=3D$SHUTDOWN_TIMEOUT - check_timeout=3Dfalse + if [ $timeout -gt 0 ]; then check_timeout=3Dtrue format=3D$(eval_gettext "Waiting for guest %s to shut down, %d sec= onds left\n") @@ -300,10 +309,10 @@ shutdown_guest() # was issued to libvirt to allow parallel shutdown. shutdown_guest_async() { - uri=3D$1 - guest=3D$2 + local uri=3D$1 + local guest=3D$2 + local name=3D$(guest_name "$uri" "$guest") =20 - name=3D$(guest_name "$uri" "$guest") eval_gettext "Starting shutdown on guest: \$name" echo retval run_virsh "$uri" shutdown "$guest" > /dev/null @@ -323,8 +332,9 @@ guest_count() # Result is returned in "guests_shutting_down" check_guests_shutdown() { - uri=3D$1 - guests_to_check=3D$2 + local uri=3D$1 + local guests_to_check=3D$2 + local guest=3D =20 guests_shutting_down=3D for guest in $guests_to_check; do @@ -344,16 +354,17 @@ check_guests_shutdown() # a shutdown complete notice for guests that have finished print_guests_shutdown() { - uri=3D$1 - before=3D$2 - after=3D$3 + local uri=3D$1 + local before=3D$2 + local after=3D$3 + local guest=3D =20 for guest in $before; do case " $after " in *" $guest "*) continue;; esac =20 - name=3D$(guest_name "$uri" "$guest") + local name=3D$(guest_name "$uri" "$guest") if [ -n "$name" ]; then eval_gettext "Shutdown of guest \$name complete." echo @@ -365,12 +376,14 @@ print_guests_shutdown() # Shutdown guests GUESTS on machine URI in parallel shutdown_guests_parallel() { - uri=3D$1 - guests=3D$2 + local uri=3D$1 + local guests=3D$2 + local on_shutdown=3D + local check_timeout=3Dfalse + local timeout=3D$SHUTDOWN_TIMEOUT + local slept=3D + local format=3D =20 - on_shutdown=3D - check_timeout=3Dfalse - timeout=3D$SHUTDOWN_TIMEOUT if [ $timeout -gt 0 ]; then check_timeout=3Dtrue format=3D$(eval_gettext "Waiting for %d guests to shut down, %d se= conds left\n") @@ -382,7 +395,7 @@ shutdown_guests_parallel() while [ -n "$guests" ] && [ $(guest_count "$on_shutdown") -lt "$PARALLEL_SHUTDOWN" ]; = do set -- $guests - guest=3D$1 + local guest=3D$1 shift guests=3D$* if [ -z "$(echo $on_shutdown | grep $guest)" ] && @@ -394,9 +407,9 @@ shutdown_guests_parallel() sleep 1 =20 set -- $guests - guestcount=3D$# + local guestcount=3D$# set -- $on_shutdown - shutdowncount=3D$# + local shutdowncount=3D$# =20 if $check_timeout; then if [ $(($timeout % 5)) -eq 0 ]; then @@ -415,7 +428,7 @@ shutdown_guests_parallel() fi fi =20 - on_shutdown_prev=3D$on_shutdown + local on_shutdown_prev=3D$on_shutdown check_guests_shutdown "$uri" "$on_shutdown" on_shutdown=3D"$guests_shutting_down" print_guests_shutdown "$uri" "$on_shutdown_prev" "$on_shutdown" @@ -425,11 +438,13 @@ shutdown_guests_parallel() # stop # Shutdown or save guests on the configured uris stop() { + local suspending=3Dtrue + local uri=3D + # last stop was not followed by start [ -f "$LISTFILE" ] && return 0 =20 - suspending=3Dtrue - if [ "x$ON_SHUTDOWN" =3D xshutdown ]; then + if [ "/x$ON_SHUTDOWN" =3D xshutdown ]; then suspending=3Dfalse if [ $SHUTDOWN_TIMEOUT -lt 0 ]; then gettext "SHUTDOWN_TIMEOUT must be equal or greater than 0" @@ -448,9 +463,9 @@ stop() { =20 eval_gettext "Running guests on \$uri URI: " =20 - list=3D$(list_guests "$uri") + local list=3D$(list_guests "$uri") if [ $? -eq 0 ]; then - empty=3Dtrue + local empty=3Dtrue for uuid in $list; do "$empty" || printf ", " printf %s "$(guest_name "$uri" "$uuid")" @@ -464,9 +479,11 @@ stop() { fi =20 if "$suspending"; then - transient=3D$(list_guests "$uri" "--transient") + local transient=3D$(list_guests "$uri" "--transient") if [ $? -eq 0 ]; then - empty=3Dtrue + local empty=3Dtrue + local uuid=3D + for uuid in $transient; do if "$empty"; then eval_gettext "Not suspending transient guests on U= RI: \$uri: " @@ -513,6 +530,7 @@ stop() { ! "$suspending"; then shutdown_guests_parallel "$uri" "$list" else + local guest=3D for guest in $list; do if "$suspending"; then suspend_guest "$uri" "$guest" @@ -532,6 +550,7 @@ stop() { # gueststatus # List status of guests gueststatus() { + local uri=3D set -f for uri in $URIS; do set +f @@ -563,7 +582,7 @@ rh_status() { # usage [val] # Display usage string, then exit with VAL (defaults to 2). usage() { - program_name=3D$0 + local program_name=3D$0 eval_gettext "Usage: \$program_name {start|stop|status|restart|"\ "condrestart|try-restart|reload|force-reload|gueststatus|shutdown}"; echo exit ${1-2} --=20 2.17.1