[Libvirt-cim] [PATCH 1 of 1] [TEST] Don't send commands via ssh for localhost
Chip Vincent
cvincent at linux.vnet.ibm.com
Wed Jul 6 15:14:57 UTC 2011
Awesome. +1. Pushed.
On 06/30/2011 12:04 PM, Eduardo Lima (Etrunko) wrote:
> # HG changeset patch
> # User Eduardo Lima (Etrunko)<eblima at br.ibm.com>
> # Date 1306519808 10800
> # Node ID fcce3eb554659cd76e020f3cb852c352e6a02218
> # Parent 6397c0670c35acc78ac13d737b408bb90e30632e
> [TEST] Don't send commands via ssh for localhost
>
> Also changes python strings format in many other files. Some commands
> required double quotes to work properly when executed locally.
>
> Signed-off-by: Eduardo Lima (Etrunko)<eblima at br.ibm.com>
>
> diff --git a/lib/VirtLib/live.py b/lib/VirtLib/live.py
> --- a/lib/VirtLib/live.py
> +++ b/lib/VirtLib/live.py
> @@ -30,7 +30,7 @@
> """Return a list of the available bridges in the running dom0.
> """
>
> - cmd = "brctl show | grep -v 'bridge name' | awk '/^[^\t]/ { print \$1 }'"
> + cmd = 'brctl show | grep -v "bridge name" | awk "/^[^\\t]/ { print \$1 }"'
>
> rc, out = utils.run_remote(ip, cmd)
> if rc != 0:
> @@ -39,8 +39,8 @@
> return out.splitlines()
>
> def exclude_vir_bridge(ip):
> - cmd = "brctl show | grep -v 'bridge name' | grep -v vir | \
> - grep -v vif | awk '/^[^\t]/ { print \$1 }'"
> + cmd = 'brctl show | grep -v "bridge name" | grep -v vir | \
> + grep -v vif | awk "/^[^\\t]/ { print \$1 }"'
> rc, out = utils.run_remote(ip, cmd)
> if rc != 0:
> return []
> @@ -51,7 +51,7 @@
> """Return a list of the available virtual bridges in the running dom0.
> """
>
> - cmd = "brctl show | grep -v 'bridge name' | grep -v peth | awk '/^[^\t]/ { print \$1 }'"
> + cmd = 'brctl show | grep -v "bridge name" | grep -v peth | awk "/^[^\\t]/ { print \$1 }"'
>
> rc, out = utils.run_remote(ip, cmd)
> if rc != 0:
> @@ -78,14 +78,14 @@
> """
>
> xm_ret, mfm = utils.run_remote(server,
> - "xm info | awk -F ': ' '/max_free_memory/ {print \$2}'")
> + 'xm info | awk -F ": " "/max_free_memory/ {print \$2}"')
> if xm_ret != 0:
> return None
>
> return int(mfm)
>
> def fv_cap(server):
> - cmd = "egrep flags /proc/cpuinfo | uniq | egrep 'vmx|svm'"
> + cmd = 'egrep flags /proc/cpuinfo | uniq | egrep "vmx|svm"'
> ret, out = utils.run_remote(server, cmd)
> return ret == 0
>
> diff --git a/lib/VirtLib/utils.py b/lib/VirtLib/utils.py
> --- a/lib/VirtLib/utils.py
> +++ b/lib/VirtLib/utils.py
> @@ -31,15 +31,24 @@
> SSH_KEY = os.path.join(root_dot_ssh, 'id_rsa')
> AUTHED_KEYS = os.path.join(root_dot_ssh, 'authorized_keys')
>
> +localhost = ["0.0.0.0", "127.0.0.1", "localhost"]
> +
> def run_remote(ip, cmd):
>
> - cmd = 'ssh %s -i %s root@%s "%s"' % (SSH_PARMS, SSH_KEY, ip, cmd)
> + if ip not in localhost:
> + cmd = "ssh %s -i %s root@%s '%s'" % (SSH_PARMS, SSH_KEY, ip, cmd)
> return commands.getstatusoutput(cmd)
>
> def copy_remote(ip, local, remote='/tmp'):
>
> - cmd = 'scp -r %s -i %s %s root@%s:%s' % (SSH_PARMS,
> - SSH_KEY, local, ip, remote)
> + if ip not in localhost:
> + cmd = 'scp -r %s -i %s %s root@%s:%s' % (SSH_PARMS,
> + SSH_KEY, local, ip, remote)
> + else:
> + if local == remote:
> + return (0, "")
> + cmd = 'cp -r %s %s' % (local, remote)
> +
> return commands.getstatusoutput(cmd)
>
> def setup_ssh_key():
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/common_util.py b/suites/libvirt-cim/lib/XenKvmLib/common_util.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py
> @@ -243,7 +243,7 @@
> rc, out = utils.run_remote(ip, cmd)
>
> if rc == 0 :
> - cmd = "%s | awk '{ print \$8 }' | uniq" % cmd
> + cmd = '%s | awk "{ print \$8 }" | uniq' % cmd
> rc, out = utils.run_remote(ip, cmd)
>
> return rc, out
> @@ -252,7 +252,7 @@
> cmd = "virsh -c %s list --all 2>/dev/null" % virt2uri(virt)
> ret, out = utils.run_remote(ip, cmd)
> if ret != 0:
> - return "This libvirt install does not support %s" % virt
> + return "The libvirt install on '%s' does not support %s" % (ip, virt)
>
> cmd = "virsh -c %s version 2>/dev/null" % virt2uri(virt)
> ret, out = utils.run_remote(ip, cmd)
> @@ -491,7 +491,7 @@
>
>
> def get_nfs_bin(server):
> - cmd = "cat /etc/issue | grep -v ^$ | egrep 'Red Hat|Fedora'"
> + cmd = 'cat /etc/issue | grep -v ^$ | egrep "Red Hat|Fedora"'
> rc, out = utils.run_remote(server, cmd)
> if rc != 0:
> #SLES
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/const.py b/suites/libvirt-cim/lib/XenKvmLib/const.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/const.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/const.py
> @@ -166,7 +166,7 @@
> # This is a sloppy mechanism for detecting a distro defined revision value
> distro = None
>
> - cmd = "cat /etc/issue | grep 'SUSE Linux Enterprise Server 11'"
> + cmd = 'cat /etc/issue | grep "SUSE Linux Enterprise Server 11"'
> rc, out = run_remote(ip, cmd)
> if rc == 0:
> distro = "sles11"
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/pool.py b/suites/libvirt-cim/lib/XenKvmLib/pool.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/pool.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/pool.py
> @@ -107,7 +107,7 @@
>
> def enum_volumes(virt, server, pooln=default_pool_name):
> volume = 0
> - cmd = "virsh -c %s vol-list %s 2>/dev/null | sed -e '1,2 d' -e '$ d'" % \
> + cmd = 'virsh -c %s vol-list %s 2>/dev/null | sed -e "1,2 d" -e "$ d"' % \
> (virt2uri(virt), pooln)
> ret, out = run_remote(server ,cmd)
> if ret != 0:
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/reporting.py b/suites/libvirt-cim/lib/XenKvmLib/reporting.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/reporting.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/reporting.py
> @@ -87,7 +87,7 @@
>
>
> def get_env_data(ip, virt):
> - distro = get_cmd_val("cat /etc/issue | sed '/^$/d' | awk 'NR<=1'", ip)
> + distro = get_cmd_val('cat /etc/issue | sed "/^$/d" | awk "NR<=1"', ip)
> if 'SUSE' in distro:
> distro = (distro.split('-'))[0].split('to')[1]
>
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/test_doms.py b/suites/libvirt-cim/lib/XenKvmLib/test_doms.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/test_doms.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/test_doms.py
> @@ -67,7 +67,7 @@
> def virdomid_list(server, virt="Xen"):
> """Get a list of domid from virsh"""
>
> - cmd = "virsh -c %s list 2>/dev/null | sed '1,2 d; /^$/d'" % \
> + cmd = 'virsh -c %s list 2>/dev/null | sed "1,2 d; /^$/d"' % \
> virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
> if ret != 0:
> @@ -108,7 +108,7 @@
>
> def viruuid(name, server, virt="Xen"):
> """Return domain uuid given domid or domname"""
> - cmd = "virsh -c %s domuuid %s 2>/dev/null | sed '/^$/d'" % \
> + cmd = 'virsh -c %s domuuid %s 2>/dev/null | sed "/^$/d"' % \
> (virt2uri(virt), name)
> ret, out = utils.run_remote(server, cmd)
> if ret == 0:
> @@ -119,7 +119,7 @@
> def destroy_and_undefine_domain(name, server, virt="Xen"):
> """Destroy and undefine a domain.
> name could be domid or domname"""
> - cmd = "virsh -c %s 'destroy %s ; undefine %s' 2>/dev/null" % \
> + cmd = 'virsh -c %s "destroy %s ; undefine %s" 2>/dev/null' % \
> (virt2uri(virt), name, name)
> utils.run_remote(server, cmd)
>
> @@ -164,7 +164,7 @@
> """
> Get the vcpu lists. The input is either the domid or domname.
> """
> - cmd = "virsh -c %s vcpuinfo %s 2>/dev/null | grep '^$' | wc -l" % \
> + cmd = 'virsh -c %s vcpuinfo %s 2>/dev/null | grep "^$" | wc -l' % \
> (virt2uri(virt), name_id)
> ret, out = utils.run_remote(server, cmd)
>
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py b/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py
> @@ -50,7 +50,7 @@
> specified bridge.
> """
>
> - cmd = "brctl show %s | grep 'vif' | grep -v vif0.*" % bridge
> + cmd = 'brctl show %s | grep "vif" | grep -v vif0.*' % bridge
>
> rc, out = utils.run_remote(ip, cmd)
> if rc != 0:
> @@ -71,7 +71,7 @@
> """Returns the list of disk of the specified VS
> """
>
> - guest_cmd = "cat /proc/partitions | awk '/^ /{ print $4 } ' "
> + guest_cmd = 'cat /proc/partitions | awk "/^ /{ print $4 } " '
> rc, out = run_remote_guest(ip, vs_name, guest_cmd)
>
> if rc != 0:
> @@ -86,7 +86,7 @@
> """
>
> xm_ret, mfm = utils.run_remote(server,
> - "xm info | awk -F ': ' '/max_free_memory/ {print \$2}'")
> + 'xm info | awk -F ": " "/max_free_memory/ {print \$2}"')
> if xm_ret != 0:
> return None
>
> @@ -108,7 +108,7 @@
> if virt == "XenFV":
> virt = "Xen"
>
> - cmd = "virsh -c %s list --all 2>/dev/null | sed -e '1,2 d' -e '$ d'" % \
> + cmd = 'virsh -c %s list --all 2>/dev/null | sed -e "1,2 d" -e "$ d"' % \
> virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
>
> @@ -128,7 +128,7 @@
> if virt == "XenFV":
> virt = "Xen"
>
> - cmd = "virsh -c %s list 2>/dev/null | sed -e '1,2 d' -e '$ d'" % \
> + cmd = 'virsh -c %s list 2>/dev/null | sed -e "1,2 d" -e "$ d"' % \
> virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
>
> @@ -162,7 +162,7 @@
> if fv_cap(server) and gtype == 1:
> bootloader = "/usr/lib/xen/boot/hvmloader"
> else:
> - cmd = "cat /etc/issue | grep -v ^$ | egrep 'Red Hat|Fedora'"
> + cmd = 'cat /etc/issue | grep -v ^$ | egrep "Red Hat|Fedora"'
> ret, out = utils.run_remote(server,cmd)
> if ret != 0:
> # For SLES
> @@ -175,7 +175,7 @@
> def net_list(server, virt="Xen"):
> """Function to list active network"""
> names = []
> - cmd = "virsh -c %s net-list 2>/dev/null | sed -e '1,2 d' -e '$ d'" % \
> + cmd = 'virsh -c %s net-list 2>/dev/null | sed -e "1,2 d" -e "$ d"' % \
> virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
>
> @@ -192,8 +192,8 @@
> def get_bridge_from_network_xml(network, server, virt="Xen"):
> """Function returns bridge name for a given virtual network"""
>
> - cmd = "virsh -c %s net-dumpxml %s 2>/dev/null | \
> - awk '/bridge name/ { print $2 }'" % (virt2uri(virt), network)
> + cmd = 'virsh -c %s net-dumpxml %s 2>/dev/null | \
> + awk "/bridge name/ { print $2 }"' % (virt2uri(virt), network)
> ret, out = utils.run_remote(server, cmd)
>
> if ret != 0:
> @@ -233,7 +233,7 @@
> def diskpool_list(server, virt="KVM"):
> """Function to list active DiskPool list"""
> names = []
> - cmd = "virsh -c %s pool-list 2>/dev/null | sed -e '1,2 d' -e '$ d'" % \
> + cmd = 'virsh -c %s pool-list 2>/dev/null | sed -e "1,2 d" -e "$ d"' % \
> virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
>
> @@ -251,7 +251,7 @@
> def vol_list(server, virt="KVM", pool_name=None):
> """ Function to list the volumes of a pool"""
>
> - cmd = "virsh -c %s vol-list %s 2>/dev/null | sed -e '1,2 d' -e '$ d'" \
> + cmd = 'virsh -c %s vol-list %s 2>/dev/null | sed -e "1,2 d" -e "$ d"' \
> % (virt2uri(virt), pool_name)
> ret, out = utils.run_remote(server, cmd)
> if ret != 0:
> @@ -283,14 +283,14 @@
> cmd = "virsh -c %s version 2>/dev/null" %virt2uri(virt)
> ret, out = utils.run_remote(server, cmd)
> if ret == 0:
> - cmd = "virsh -c %s version 2>/dev/null | grep ^Running | \
> - cut -d ' ' -f 3,4" % virt2uri(virt)
> + cmd = 'virsh -c %s version 2>/dev/null | grep ^Running | \
> + cut -d " " -f 3,4' % virt2uri(virt)
>
> # This is a workaround work for F10.
> # The version option does not seem to work on F10.
> if ret != 0 and virt == 'KVM':
> - cmd = "qemu-kvm --help | grep -i version | tr -s [:space:] |" \
> - " cut -d ' ' -f 1,5"
> + cmd = 'qemu-kvm --help | grep -i version | tr -s [:space:] |' \
> + ' cut -d " " -f 1,5'
>
> ret, out = utils.run_remote(server, cmd)
> if ret == 0:
> @@ -362,7 +362,7 @@
> """Returns the number of processors of the specified VS
> """
>
> - guest_cmd = "grep '^$' /proc/cpuinfo | wc -l"
> + guest_cmd = 'grep "^$" /proc/cpuinfo | wc -l'
>
> rc, out = run_remote_guest(ip, vs_name, guest_cmd)
> if rc != 0:
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
--
Chip Vincent
Open Virtualization
IBM Linux Technology Center
cvincent at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list