iiuni / projektzapisy

System Zapisów na zajęcia w Instytucie Informatyki Uniwersytetu Wrocławskiego
https://zapisy.ii.uni.wroc.pl
30 stars 10 forks source link

KeyError: 'timetable' #1180

Open rollbar[bot] opened 2 years ago

rollbar[bot] commented 2 years ago

View details in Rollbar: https://rollbar.com/iiuni/projektzapisy/items/425/

Traceback (most recent call last):
  File "/home/zapisy/deploy/releases/20211026180651/zapisy/apps/schedulersync/management/commands/import_schedule.py", line 253, in handle
    self.import_from_api(dont_delete_terms_flag, write_to_slack_flag, interactive_flag)
  File "/home/zapisy/deploy/releases/20211026180651/zapisy/apps/schedulersync/management/commands/import_schedule.py", line 216, in import_from_api
    scheduler_data.get_scheduler_data()
  File "/home/zapisy/deploy/releases/20211026180651/zapisy/apps/schedulersync/scheduler_data.py", line 223, in get_scheduler_data
    self.lay_out_scheduler_data(api_config, api_task)
  File "/home/zapisy/deploy/releases/20211026180651/zapisy/apps/schedulersync/scheduler_data.py", line 205, in lay_out_scheduler_data
    self._scheduler_results = api_task['timetable']['results']
KeyError: 'timetable'
TheenivU commented 2 years ago

Wydebugowałem błąd, i on sprowadza się do tego że api schedulera dotyczące taska (jak ja rozumiem ono wygląda "http://scheduler.ii.uni.wroc.pl:8000/{task-url}") zwróciło json o nieprawidłowym formacie.

Niestety nie mogę debugować dalej, bo nie znam parametrów z jakimi skrypt został, i zwykle jest, wykonywany.

lgpawel commented 2 years ago

Przykładowe dane, jakie SZ pobiera ze Schedulera, wrzuciłem na Slacku w kanale #scheduler (żeby się za mocno nie zastanawiać, czy są tam jakieś informacje, których nie powinienem wrzucać wprost w otwarty internet). Ale to chyba za wiele nie pomoże, w JSONie z taskiem klucz timetable.results jest. Czy umiemy rozstrzygnąć, że to faktycznie API Schedulera zwróciło coś nieładnego (co jeszcze nie oznacza buga w Schedulerze), czy też może to jakiś inny błąd po stronie SZ sprawił, że w słowniku api_task nie pojawił się odpowiedni klucz?