1#!/usr/bin/env python3 2# coding=utf-8 3 4# 5# Copyright (c) 2020-2022 Huawei Device Co., Ltd. 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18from xdevice import HdcError 19from xdevice import RpcNotRunningError 20 21__all__ = ["LiteDeviceConnectError", "LiteDeviceTimeout", "LiteParamError", 22 "LiteDeviceError", "LiteDeviceExecuteCommandError", 23 "LiteDeviceMountError", "LiteDeviceReadOutputError", "OHOSRpcNotRunningError", "HDCFPortError", 24 "OHOSRpcStartFailedError", "OHOSRpcPortNotFindError", "OHOSRpcProcessNotFindError", 25 "OHOSDeveloperModeNotTrueError"] 26 27 28class LiteDeviceError(Exception): 29 def __init__(self, error_msg, error_no=""): 30 super(LiteDeviceError, self).__init__(error_msg, error_no) 31 self.error_msg = error_msg 32 self.error_no = error_no 33 34 def __str__(self): 35 return str(self.error_msg) 36 37 38class LiteDeviceConnectError(LiteDeviceError): 39 def __init__(self, error_msg, error_no=""): 40 super(LiteDeviceConnectError, self).__init__(error_msg, error_no) 41 self.error_msg = error_msg 42 self.error_no = error_no 43 44 def __str__(self): 45 return str(self.error_msg) 46 47 48class LiteDeviceTimeout(LiteDeviceError): 49 def __init__(self, error_msg, error_no=""): 50 super(LiteDeviceTimeout, self).__init__( 51 error_msg, error_no) 52 self.error_msg = error_msg 53 self.error_no = error_no 54 55 def __str__(self): 56 return str(self.error_msg) 57 58 59class LiteParamError(LiteDeviceError): 60 def __init__(self, error_msg, error_no=""): 61 super(LiteParamError, self).__init__(error_msg, error_no) 62 self.error_msg = error_msg 63 self.error_no = error_no 64 65 def __str__(self): 66 return str(self.error_msg) 67 68 69class LiteDeviceExecuteCommandError(LiteDeviceError): 70 def __init__(self, error_msg, error_no=""): 71 super(LiteDeviceExecuteCommandError, self).__init__( 72 error_msg, error_no) 73 self.error_msg = error_msg 74 self.error_no = error_no 75 76 def __str__(self): 77 return str(self.error_msg) 78 79 80class LiteDeviceMountError(LiteDeviceError): 81 def __init__(self, error_msg, error_no=""): 82 super(LiteDeviceMountError, self).__init__(error_msg, error_no) 83 self.error_msg = error_msg 84 self.error_no = error_no 85 86 def __str__(self): 87 return str(self.error_msg) 88 89 90class LiteDeviceReadOutputError(LiteDeviceError): 91 def __init__(self, error_msg, error_no=""): 92 super(LiteDeviceReadOutputError, self).__init__(error_msg, error_no) 93 self.error_msg = error_msg 94 self.error_no = error_no 95 96 def __str__(self): 97 return str(self.error_msg) 98 99 100class HDCFPortError(HdcError): 101 def __init__(self, error_msg: str, error_no: str = ""): 102 super(HDCFPortError, self).__init__(error_msg, error_no) 103 self.error_msg = error_msg 104 self.error_no = error_no 105 106 def __str__(self): 107 return str(self.error_msg) 108 109 110class OHOSRpcNotRunningError(RpcNotRunningError): 111 def __init__(self, error_msg, error_no="", device=None): 112 super(RpcNotRunningError, self).__init__(error_msg, error_no) 113 if device: 114 self.print_info(device) 115 116 @staticmethod 117 def print_info(device): 118 device.log.info("#############################################" 119 "RpcNotRunningError" 120 "#############################################") 121 OHOSRpcNotRunningError.develop_mode(device) 122 OHOSRpcNotRunningError.memery_info(device) 123 device.log.info("#############################################" 124 "RpcNotRunningError" 125 "#############################################") 126 127 @staticmethod 128 def develop_mode(device): 129 if not device.is_root: 130 device.log.info(f"{device.device_sn} is not root!") 131 ret = device.execute_shell_command("uitest --version") 132 if "inaccessible or not found" in ret: 133 device.log.info(f"{device.device_sn} developer mode is False!") 134 else: 135 device.log.info(f"{device.device_sn} developer mode is True!") 136 else: 137 device.log.info(f"{device.device_sn} is root!") 138 status = device.execute_shell_command("param get const.security.developermode.state") 139 if status and status.strip() == "true": 140 result = True 141 else: 142 result = False 143 device.log.info(f"{device.device_sn} developer mode is {result}!") 144 145 @staticmethod 146 def memery_info(device): 147 ret = device.execute_shell_command("free -h") 148 device.log.info(f"{device.device_sn} memery info \n {ret}!") 149 150 def __str__(self): 151 return str(self.error_msg) 152 153 154class OHOSRpcStartFailedError(OHOSRpcNotRunningError): 155 def __init__(self, error_msg, error_no="", device=None): 156 super(OHOSRpcStartFailedError, self).__init__(error_msg, error_no, device) 157 158 159class OHOSRpcPortNotFindError(OHOSRpcNotRunningError): 160 def __init__(self, error_msg, error_no="", device=None): 161 super(OHOSRpcPortNotFindError, self).__init__(error_msg, error_no, device) 162 163 164class OHOSRpcProcessNotFindError(OHOSRpcNotRunningError): 165 def __init__(self, error_msg, error_no="", device=None): 166 super(OHOSRpcProcessNotFindError, self).__init__(error_msg, error_no, device) 167 168 169class OHOSDeveloperModeNotTrueError(OHOSRpcNotRunningError): 170 def __init__(self, error_msg, error_no="", device=None): 171 super(OHOSDeveloperModeNotTrueError, self).__init__(error_msg, error_no, device) 172