From 7219d4013814a55c4eeaf36b7a36d5e8076d09f0 Mon Sep 17 00:00:00 2001
From: Thomas Mangin <thomas.mangin@exa.net.uk>
Date: Sun, 5 Apr 2020 16:30:33 +0100
Subject: util: T2226: rewrite remote function helpers to use cmd

---
 python/vyos/remote.py | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/python/vyos/remote.py b/python/vyos/remote.py
index f8a21f068..f0bf41cd4 100644
--- a/python/vyos/remote.py
+++ b/python/vyos/remote.py
@@ -17,7 +17,8 @@ import sys
 import os
 import re
 import fileinput
-import subprocess
+
+from vyos.util import cmd, DEVNULL
 
 
 def check_and_add_host_key(host_name):
@@ -33,10 +34,8 @@ def check_and_add_host_key(host_name):
     keyscan_cmd = 'ssh-keyscan -t rsa {} 2>/dev/null'.format(host_name)
 
     try:
-        host_key = subprocess.check_output(keyscan_cmd, shell=True,
-                                         stderr=subprocess.DEVNULL,
-                                         universal_newlines=True)
-    except subprocess.CalledProcessError as err:
+        host_key = cmd(keyscan_cmd, stderr=DEVNULL, universal_newlines=True)
+    except OSError:
         sys.exit("Can not get RSA host key")
 
     # libssh2 (jessie; stretch) does not recognize ec host keys, and curl
@@ -64,10 +63,8 @@ def check_and_add_host_key(host_name):
 
     fingerprint_cmd = 'ssh-keygen -lf /dev/stdin <<< "{}"'.format(host_key)
     try:
-        fingerprint = subprocess.check_output(fingerprint_cmd, shell=True,
-                                         stderr=subprocess.DEVNULL,
-                                         universal_newlines=True)
-    except subprocess.CalledProcessError as err:
+        fingerprint = cmd(fingerprint_cmd, stderr=DEVNULL, universal_newlines=True)
+    except OSError:
         sys.exit("Can not get RSA host key fingerprint.")
 
     print("RSA host key fingerprint is {}".format(fingerprint.split()[1]))
@@ -128,9 +125,8 @@ def get_remote_config(remote_file):
         # Try header first, and look for 'OK' or 'Moved' codes:
         curl_cmd = 'curl {0} -q -I {1}'.format(redirect_opt, remote_file)
         try:
-            curl_output = subprocess.check_output(curl_cmd, shell=True,
-                                                  universal_newlines=True)
-        except subprocess.CalledProcessError:
+            curl_output = cmd(curl_cmd, shell=True, universal_newlines=True)
+        except OSError:
             sys.exit(1)
 
         return_vals = re.findall(r'^HTTP\/\d+\.?\d\s+(\d+)\s+(.*)$',
@@ -146,9 +142,6 @@ def get_remote_config(remote_file):
         curl_cmd = 'curl {0} -# {1}'.format(redirect_opt, remote_file)
 
     try:
-        config_file = subprocess.check_output(curl_cmd, shell=True,
-                                        universal_newlines=True)
-    except subprocess.CalledProcessError:
-        config_file = None
-
-    return config_file
+        return cmd(curl_cmd, universal_newlines=True)
+    except OSError:
+        return None
-- 
cgit v1.2.3