def check_vehicle_id(conf): vehicle_id = conf.vehicle_param.vehicle_id if vehicle_id.HasField('vin') or vehicle_id.HasField('plate') \ or vehicle_id.HasField('other_unique_id'): return True glog.error("Error: No vehicle ID") return False
def parse_error(path): vehicles = multi_vehicle_utils.get_vehicle(path) pb_value = vehicle_config_pb2.VehicleConfig() for vehicle in vehicles: conf = os.path.join(path, vehicle, ConfFile) try: proto_utils.get_pb_from_text_file(conf, pb_value) return False except text_format.ParseError: glog.error('Error: Cannot parse %s as binary or text proto' % conf) return True
def missing_file(path): vehicles = multi_vehicle_utils.get_vehicle(path) glog.info("vehicles %s" % vehicles) for vehicle in vehicles: # config file conf = os.path.join(path, vehicle, ConfFile) glog.info("vehicles conf %s" % conf) if os.path.exists(conf) is False: glog.error('Missing configuration file in %s' % vehicle) return True # record file glog.info("list of records:" % list_records(os.path.join(path, vehicle))) if len(list_records(os.path.join(path, vehicle))) == 0: glog.error('No record files in %s' % vehicle) return True return False
def sanity_check(input_folder, email_receivers=None): err_msg = None if missing_file(input_folder): err_msg = "One or more files are missing in %s" % input_folder elif parse_error(input_folder): err_msg = "Confige file cannot be parsed in %s" % input_folder elif missing_field(input_folder): err_msg = "One or more field is missing in Confige file %s" % input_folder elif missing_message_data(input_folder): err_msg = "Messages are missing in records of %s" % input_folder else: glog.info("%s Passed sanity check." % input_folder) return True if email_receivers: title = 'Error occurred during data sanity check' email_utils.send_email_error(title, {'Error': err_msg}, email_receivers) glog.error(err_msg) return False