• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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