Reformat python libraries.
[csit.git] / resources / libraries / python / DUTSetup.py
1 # Copyright (c) 2016 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 from robot.api import logger
15
16 from resources.libraries.python.topology import NodeType
17 from resources.libraries.python.ssh import SSH
18 from resources.libraries.python.constants import Constants
19
20
21 class DUTSetup(object):
22     @staticmethod
23     def start_vpp_service_on_all_duts(nodes):
24         """Start up the VPP service on all nodes."""
25         ssh = SSH()
26         for node in nodes.values():
27             if node['type'] == NodeType.DUT:
28                 ssh.connect(node)
29                 (ret_code, stdout, stderr) = \
30                     ssh.exec_command_sudo('service vpp restart')
31                 if 0 != int(ret_code):
32                     logger.debug('stdout: {0}'.format(stdout))
33                     logger.debug('stderr: {0}'.format(stderr))
34                     raise Exception('DUT {0} failed to start VPP service'.
35                                     format(node['host']))
36
37     @staticmethod
38     def setup_all_duts(nodes):
39         """Prepare all DUTs in given topology for test execution."""
40         for node in nodes.values():
41             if node['type'] == NodeType.DUT:
42                 DUTSetup.setup_dut(node)
43
44     @staticmethod
45     def setup_dut(node):
46         ssh = SSH()
47         ssh.connect(node)
48
49         (ret_code, stdout, stderr) = \
50             ssh.exec_command('sudo -Sn bash {0}/{1}/dut_setup.sh'.format(
51                 Constants.REMOTE_FW_DIR, Constants.RESOURCES_LIB_SH))
52         logger.trace(stdout)
53         logger.trace(stderr)
54         if 0 != int(ret_code):
55             logger.debug('DUT {0} setup script failed: "{1}"'.
56                          format(node['host'], stdout + stderr))
57             raise Exception('DUT test setup script failed at node {}'.
58                             format(node['host']))