diff options
Diffstat (limited to 'harnesses/host_controller/utils/parser/pb2_utils.py')
-rw-r--r-- | harnesses/host_controller/utils/parser/pb2_utils.py | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/harnesses/host_controller/utils/parser/pb2_utils.py b/harnesses/host_controller/utils/parser/pb2_utils.py deleted file mode 100644 index af96588..0000000 --- a/harnesses/host_controller/utils/parser/pb2_utils.py +++ /dev/null @@ -1,81 +0,0 @@ -# -# Copyright (C) 2018 The Android Open Source Project -# -# 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. -# - -import json -import logging -import requests - -# timeout seconds for requests -REQUESTS_TIMEOUT_SECONDS = 60 - - -def FillDictAndPost(msg, - dict_to_fill, - url, - headers, - filters={}, - caller_name=""): - """Fills up a dict using contents of the pb2 message and uploads it. - - Args: - msg: pb2 msg, containing info about all task schedules. - dict_to_fill: dict, to be converted into a json object before - upload. - url: string, URL for the endpoit API to be called when - the dict_to_fill fills up. - - Returns: - True if successful, False otherwise. - """ - terminal = True - ret = True - sub_msg_list = [] - for field in msg.DESCRIPTOR.fields: - if field.type == field.TYPE_MESSAGE: - terminal = False - for sub_msg in msg.__getattribute__(field.name): - # make all the messages to be processed after other attrs, - # otherwise dict_to_fill would be incomplete. - sub_msg_list.append(sub_msg) - else: - if filters and field.name in filters: - filtered_key = filters[field.name] - else: - filtered_key = field.name - - if field.label == field.LABEL_REPEATED: - dict_to_fill[filtered_key] = list( - msg.__getattribute__(field.name)) - else: - dict_to_fill[filtered_key] = msg.__getattribute__(field.name) - - for sub_msg in sub_msg_list: - ret = ret and FillDictAndPost(sub_msg, dict_to_fill, url, headers, - filters, caller_name) - - if terminal: - try: - response = requests.post(url, data=json.dumps(dict_to_fill), - headers=headers, - timeout=REQUESTS_TIMEOUT_SECONDS) - except requests.exceptions.Timeout as e: - logging.exception(e) - return False - if response.status_code != requests.codes.ok: - logging.error("%s error: %s", caller_name, response) - ret = ret and False - - return ret |