set log source
This commit is contained in:
+4
-2
@@ -5,7 +5,7 @@ import serial
|
||||
from serial import Serial
|
||||
|
||||
from error.SIMError import SIMError
|
||||
from logs.LogSender import LogSender, LOG_ERROR
|
||||
from logs.LogSender import LOG_APPOINTMENT_SUCCESS, SUBJECT_SIM_INFO
|
||||
from params import firebase_store_manager, oracle_log_sender
|
||||
from pojo.SimInfoPojo import SimInfoPojo
|
||||
from utils.excel_reader import ExcelHelper
|
||||
@@ -38,7 +38,7 @@ class ModemPool:
|
||||
def _generate_error_msg(self, slot_position, index, error: SIMError):
|
||||
msg = "slot({}) SIM({}), error:{}".format(slot_position, index + 1,
|
||||
error.value)
|
||||
self._log_sender.send_log(msg, subject=self.TAG, type=LOG_ERROR)
|
||||
self._log_sender.send_log(msg, source=self.TAG, subject=SUBJECT_SIM_INFO, type=error.value)
|
||||
return msg
|
||||
|
||||
def get_raw_phone_number(self, slot_position):
|
||||
@@ -69,6 +69,8 @@ class ModemPool:
|
||||
position = (slot_position - 1) * 15 + sim_position
|
||||
if phone_number:
|
||||
self._db_manager.save_sim_info(SimInfoPojo(phone=phone_number, ccid=ccid, position=position))
|
||||
self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO,
|
||||
type=LOG_APPOINTMENT_SUCCESS)
|
||||
# write the number to sim card's phonebook
|
||||
cmd = f'AT+CPBW={self.phone_number_position},\"{phone_number}\"\r'
|
||||
self._send_command(cmd, ser, wait_time_in_s=2)
|
||||
|
||||
Binary file not shown.
+23
-2
@@ -14,6 +14,8 @@ TIMEOUT = "timeout_items"
|
||||
|
||||
|
||||
class DataManager:
|
||||
batch_size = 20
|
||||
|
||||
def __init__(self):
|
||||
cred = credentials.Certificate("appointment.json")
|
||||
self._app = firebase_admin.initialize_app(cred)
|
||||
@@ -50,13 +52,27 @@ class DataManager:
|
||||
doc_ref = self._db.collection(TIMEOUT).document(str(contact.phone))
|
||||
doc_ref.set(contact.to_firestore_dict())
|
||||
|
||||
def _delete_collection(self, coll_ref, batch_size):
|
||||
docs = coll_ref.limit(batch_size).stream()
|
||||
deleted = 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
for doc in docs:
|
||||
print(f'Deleting doc {doc.id} => {doc.to_dict()}')
|
||||
doc.reference.delete()
|
||||
deleted = deleted + 1
|
||||
|
||||
if deleted >= batch_size:
|
||||
return self._delete_collection(coll_ref, batch_size)
|
||||
|
||||
def clear_all_sim_info(self):
|
||||
coll_ref = self._db.collection(SIM_INFOS)
|
||||
self._delete_collection(coll_ref, self.batch_size)
|
||||
|
||||
def save_to_excel(self):
|
||||
# Start from the first cell. Rows and columns are zero indexed.
|
||||
sim_info_list = []
|
||||
|
||||
for sim in params.firebase_store_manager.get_all_sim_infos().stream():
|
||||
for sim in self.get_all_sim_infos().stream():
|
||||
print(sim)
|
||||
sim_pojo = SimInfoPojo.from_firestore_dict(sim.to_dict())
|
||||
sim_info_list.append(sim_pojo)
|
||||
@@ -72,3 +88,8 @@ if __name__ == '__main__':
|
||||
worksheet.write(row, col + 2, info.position)
|
||||
row += 1
|
||||
workbook.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# params.firebase_store_manager.save_to_excel()
|
||||
params.firebase_store_manager.clear_all_sim_info()
|
||||
|
||||
Binary file not shown.
+12
-2
@@ -7,12 +7,15 @@ from oci.loggingingestion import LoggingClient
|
||||
from oci.loggingingestion.models import PutLogsDetails, LogEntryBatch, LogEntry
|
||||
|
||||
from logs.AppLogging import init_logger
|
||||
from pojo import ReserveResultPojo
|
||||
from pojo.ReserveResultPojo import PublishType
|
||||
|
||||
LOG_ERROR = "ERROR"
|
||||
LOG_INFO = "INFO"
|
||||
LOG_APPOINTMENT_ERROR = "APPOINTMENT_ERROR"
|
||||
LOG_APPOINTMENT_TIMEOUT = "TIMEOUT"
|
||||
LOG_APPOINTMENT_SUCCESS = "SUCCESS"
|
||||
SUBJECT_SIM_INFO = "sim_card"
|
||||
|
||||
|
||||
class LogSender:
|
||||
@@ -21,7 +24,14 @@ class LogSender:
|
||||
self._identity = oci.identity.IdentityClient(self._config)
|
||||
self._loggingingestion_client = LoggingClient(self._config)
|
||||
|
||||
def send_log(self, msg: str, subject="appointment", type: str = "INFO"):
|
||||
def send_appoint_result(self, result: ReserveResultPojo):
|
||||
if result.type == PublishType.SUCCESS:
|
||||
# get id
|
||||
self.send_log(result.id, type=LOG_APPOINTMENT_SUCCESS)
|
||||
else:
|
||||
self.send_log(result.message, type=LOG_APPOINTMENT_ERROR)
|
||||
|
||||
def send_log(self, msg: str, source="Appointment", subject="appointment", type: str = "INFO"):
|
||||
log_id = "ocid1.log.oc1.eu-frankfurt-1.amaaaaaacvc3jtia5enufv5jxe6binq4ndaty7pt5mk7uidipfd62ynwdhnq"
|
||||
response = self._loggingingestion_client.put_logs(
|
||||
log_id=log_id,
|
||||
@@ -33,7 +43,7 @@ class LogSender:
|
||||
data=msg,
|
||||
id=log_id,
|
||||
time=datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ"))],
|
||||
source="Appointment",
|
||||
source=source,
|
||||
type=type,
|
||||
defaultlogentrytime=datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
subject=subject)])
|
||||
|
||||
@@ -3,6 +3,7 @@ import logging
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
from typing import Union
|
||||
|
||||
from gsmmodem import GsmModem
|
||||
|
||||
@@ -18,7 +19,7 @@ from logs.AppLogging import init_logger
|
||||
from utils.message_receiver import MessageReceiver
|
||||
|
||||
BAUDRATE = 115200
|
||||
OTP_TIMEOUT = 60
|
||||
OTP_TIMEOUT = 70
|
||||
is_finished = False
|
||||
commandor = Commandor()
|
||||
|
||||
@@ -61,10 +62,12 @@ def execut_USSD_cmd(cmd, ser):
|
||||
send_command(cmd, ser)
|
||||
|
||||
|
||||
def create_modem_for_port(port: str) -> SerialModem:
|
||||
def create_modem_for_port(port: str) -> Union[SerialModem, None]:
|
||||
logger.info('Initializing modem... for ' + port)
|
||||
# Uncomment the following line to see what the modem is doing:
|
||||
init_logger()
|
||||
serial_modem = None
|
||||
try:
|
||||
modem = GsmModem(port)
|
||||
time.sleep(1)
|
||||
modem.connect()
|
||||
@@ -75,8 +78,9 @@ def create_modem_for_port(port: str) -> SerialModem:
|
||||
response = modem.write(cmd, True)
|
||||
ccid = response[0].split(" ")[1].replace("\"", "")
|
||||
logger.info("The SIM card ccid is:" + ccid)
|
||||
|
||||
serial_modem = SerialModem(modem=modem, ccid=ccid)
|
||||
return SerialModem(modem=modem, ccid=ccid)
|
||||
except Exception as ext:
|
||||
print(ext)
|
||||
return serial_modem
|
||||
|
||||
|
||||
@@ -133,7 +137,9 @@ def select_sim_storage(ser) -> bool:
|
||||
def init_modems() -> list:
|
||||
modems = []
|
||||
for port in get_devices_ports():
|
||||
modems.append(create_modem_for_port(port))
|
||||
serial_modem = create_modem_for_port(port)
|
||||
if serial_modem:
|
||||
modems.append(serial_modem)
|
||||
# read the contact, and contact the 2 objects together
|
||||
excel_reader = ExcelHelper()
|
||||
contacts = excel_reader.read_contacts()
|
||||
@@ -153,7 +159,7 @@ def on_message_received(ch, method, properties, body):
|
||||
result = ReserveResultPojo.from_json(body)
|
||||
print(result)
|
||||
firebase_store_manager.save(result)
|
||||
oracle_log_sender.send_log(str(result.id), type=LOG_APPOINTMENT_SUCCESS)
|
||||
oracle_log_sender.send_appoint_result(result)
|
||||
# set the flag to True
|
||||
global is_finished
|
||||
is_finished = True
|
||||
@@ -180,8 +186,8 @@ def read_all_the_phone_number():
|
||||
|
||||
|
||||
def start_book():
|
||||
slot_number = 5
|
||||
slot_sum = 6
|
||||
slot_number = 12
|
||||
slot_sum = 31
|
||||
for i in range(slot_number, slot_sum + 1):
|
||||
card_pool.reset()
|
||||
print("will switch to " + str(i))
|
||||
@@ -200,6 +206,6 @@ if __name__ == '__main__':
|
||||
init_logger()
|
||||
logger = logging.getLogger()
|
||||
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
||||
# read_all_the_phone_number()
|
||||
start_listen()
|
||||
start_book()
|
||||
read_all_the_phone_number()
|
||||
# start_listen()
|
||||
# start_book()
|
||||
|
||||
Reference in New Issue
Block a user