update registration policy (#20770)

* update registration policy

* move that

* handle 403

* fix that
pull/20772/head
Adeeb Shihadeh 4 years ago committed by GitHub
parent e151425c1c
commit 4d8a35d639
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      selfdrive/manager/manager.py
  2. 11
      selfdrive/registration.py

@ -74,9 +74,13 @@ def manager_init():
params.put("GitRemote", get_git_remote(default=""))
# set dongle id
dongle_id = register(show_spinner=True)
if dongle_id is not None:
os.environ['DONGLE_ID'] = dongle_id # Needed for swaglog
reg_res = register(show_spinner=True)
if reg_res:
dongle_id = reg_res
else:
serial = params.get("HardwareSerial")
raise Exception(f"Registration failed for device {serial}")
os.environ['DONGLE_ID'] = dongle_id # Needed for swaglog
if not dirty:
os.environ['CLEAN'] = '1'
@ -84,7 +88,7 @@ def manager_init():
cloudlog.bind_global(dongle_id=dongle_id, version=version, dirty=dirty,
device=HARDWARE.get_device_type())
if not (dongle_id is None or os.getenv("NOLOG") or os.getenv("NOCRASH") or PC):
if not (os.getenv("NOLOG") or os.getenv("NOCRASH") or PC):
crash.init()
crash.bind_user(id=dongle_id)
crash.bind_extra(dirty=dirty, origin=origin, branch=branch, commit=commit,
@ -113,8 +117,6 @@ def manager_thread():
params = Params()
ignore = []
if params.get("DongleId") is None:
ignore += ["uploader", "manage_athenad"]
if os.getenv("NOBOARD") is not None:
ignore.append("pandad")
if os.getenv("BLOCK") is not None:

@ -10,7 +10,7 @@ from common.params import Params
from common.spinner import Spinner
from common.file_helpers import mkdirs_exists_ok
from common.basedir import PERSIST
from selfdrive.hardware import HARDWARE
from selfdrive.hardware import HARDWARE, PC
from selfdrive.swaglog import cloudlog
@ -65,13 +65,14 @@ def register(show_spinner=False):
resp = api_get("v2/pilotauth/", method='POST', timeout=15,
imei=imei1, imei2=imei2, serial=serial, public_key=public_key, register_token=register_token)
if resp.status_code == 402:
cloudlog.info("Uknown serial number while trying to register device")
if resp.status_code in (402, 403):
cloudlog.info(f"Unable to register device, got {resp.status_code}")
dongle_id = None
if PC:
dongle_id = "UnofficialDevice"
else:
dongleauth = json.loads(resp.text)
dongle_id = dongleauth["dongle_id"]
params.put("DongleId", dongle_id)
break
except Exception:
cloudlog.exception("failed to authenticate")
@ -81,6 +82,8 @@ def register(show_spinner=False):
if show_spinner:
spinner.close()
if dongle_id:
params.put("DongleId", dongle_id)
return dongle_id

Loading…
Cancel
Save