Some of the repetitive violations were suppressed.
2.63KiB; Python | 2018-01-28 18:59:31+01 | SLOC 65
1
#!/bin/env python
2
3
##
4
# Copyright(c) 2010-2015 Intel Corporation.
5
# Copyright(c) 2016-2018 Viosoft Corporation.
6
# All rights reserved.
7
#
8
# Redistribution and use in source and binary forms, with or without
9
# modification, are permitted provided that the following conditions
10
# are met:
11
#
12
#   * Redistributions of source code must retain the above copyright
13
#     notice, this list of conditions and the following disclaimer.
14
#   * Redistributions in binary form must reproduce the above copyright
15
#     notice, this list of conditions and the following disclaimer in
16
#     the documentation and/or other materials provided with the
17
#     distribution.
18
#   * Neither the name of Intel Corporation nor the names of its
19
#     contributors may be used to endorse or promote products derived
20
#     from this software without specific prior written permission.
21
#
22
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
##
34
35
import os
36 1
import time
37 1
import socket
38
39
def ssh(user, ip, cmd):
40
    # print cmd;
41
    ssh_options = ""
42
    ssh_options += "-o StrictHostKeyChecking=no "
43
    ssh_options += "-o UserKnownHostsFile=/dev/null "
44
    ssh_options += "-o LogLevel=quiet "
45 1
    running = os.popen("ssh " + ssh_options + " " + user + "@" + ip + " \"" + cmd + "\"");
46 1
    ret = {};
47 1
    ret['out'] = running.read().strip();
48 1
    ret['ret'] = running.close();
49 1
    if (ret['ret'] == None):
50 1
        ret['ret'] = 0;
51
52 1
    return ret;
53
54
def ssh_check_quit(obj, user, ip, cmd):
55 1
    ret = ssh(user, ip, cmd);
56 1
    if (ret['ret'] != 0):
57 2
        obj._err = True;
58 2
        obj._err_str = ret['out'];
59 1
        exit(-1);
60
61
class remoteSystem:
62
    def __init__(self, user, ip):
63
        self._ip          = ip;
64
        self._user        = user;
65
66
    def run(self, cmd):
67
        return ssh(self._user, self._ip, cmd);
68
69
    def scp(self, src, dst):
70
        running = os.popen("scp " + self._user + "@" + self._ip + ":" + src + " " + dst);
71
        return running.close();
72
73
    def getIP(self):
74
        return self._ip