Source code for taf.testlib.linux.dcrpd.dcrpd

# Copyright (c) 2015 - 2017, Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""``dcrpd.py``

`Class to abstract dcrpd operations`

"""

from testlib.custom_exceptions import UICmdException
from testlib.linux import service_lib
from testlib.ui_onpss_shell.switch_driver import SwitchDriver


[docs]class Dcrpd(object): SERVICE = 'dcrpd' CONFIG_PATH = "/usr/lib/systemd/system/" MANIFEST_FILE = CONFIG_PATH + "dcrpd.service"
[docs] def __init__(self, run_command, switch): """Initialize Dcrpd class. Args: run_command(function): function that runs the actual commands """ super(Dcrpd, self).__init__() self.run_command = run_command self.switch = switch self.switch_driver = SwitchDriver(self, switch) self.service_manager = service_lib.SpecificServiceManager(self.SERVICE, self.run_command)
[docs] def start(self): """Start dcrpd process. Raises: UICmdException: On non-zero return code """ self.switch.ui.modify_ports(ports=[self.switch.ui.cpu_port], adminMode='Up') self.service_manager.start()
[docs] def stop(self): """Stop dcrpd process. Raises: UICmdException: On non-zero return code """ self.service_manager.stop() self.switch.ui.modify_ports(ports=[self.switch.ui.cpu_port], adminMode='Down')
[docs] def restart(self): """Restarting dcrpd process. Raises: UICmdException: On non-zero return code """ self.service_manager.restart()
[docs] def force_reload(self): """Restarting the switch driver and then the dcrpd process. Raises: UICmdException: On non-zero return code """ self.switch_driver.force_reload() self.switch.ui.modify_ports(ports=[self.switch.ui.cpu_port], adminMode='Up') self.restart()
[docs] def enable(self): """Enabling dcrpd service on start. Raises: UICmdException: On non-zero return code """ self.service_manager.enable()
[docs] def disable(self): """Disabling dcrpd service on start. Raises: UICmdException: On non-zero return code """ self.service_manager.disable()
[docs] def get_status(self): """Get dcrpd process status. Raises: UICmdException: On non-zero or non-three return code Returns: str """ try: result = self.service_manager.status() except UICmdException as err: if err.rc == 3: # If service is not active return err.stdout else: raise return result.stdout