SEED-platform / seed

Standard Energy Efficiency Data (SEED) Platform™ is a web-based application that helps organizations easily manage data on the energy performance of large groups of buildings.
Other
106 stars 55 forks source link

AH - update create_default_user #4531

Open kflemin opened 4 months ago

kflemin commented 4 months ago

create_default_user script returning errors when restarting web container. Ensure that this action completes successfully.

2024-02-15T17:30:09.841429739Z Creating default user
2024-02-15T17:30:13.737281358Z User <user@seed-platform.org> already exists
2024-02-15T17:30:13.737331715Z Org <ORG> already exists, adding user
2024-02-15T17:30:13.737340725Z Traceback (most recent call last):
2024-02-15T17:30:13.737348827Z   File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 581, in get_or_create
2024-02-15T17:30:13.737391850Z     return self.get(**kwargs), False
2024-02-15T17:30:13.737416714Z   File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
2024-02-15T17:30:13.737909946Z     raise self.model.DoesNotExist(
2024-02-15T17:30:13.737931387Z seed.lib.superperms.orgs.models.OrganizationUser.DoesNotExist: OrganizationUser matching query does not exist.
2024-02-15T17:30:13.737940886Z 
2024-02-15T17:30:13.737948359Z During handling of the above exception, another exception occurred:
2024-02-15T17:30:13.737955902Z 
2024-02-15T17:30:13.737962957Z Traceback (most recent call last):
2024-02-15T17:30:13.737970011Z   File "/usr/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 173, in __get__
2024-02-15T17:30:13.738055708Z     rel_obj = self.field.get_cached_value(instance)
2024-02-15T17:30:13.738091887Z   File "/usr/lib/python3.9/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value
2024-02-15T17:30:13.738183381Z     return instance._state.fields_cache[cache_name]
2024-02-15T17:30:13.738195604Z KeyError: 'access_level_instance'
2024-02-15T17:30:13.738202867Z 
2024-02-15T17:30:13.738210061Z During handling of the above exception, another exception occurred:
2024-02-15T17:30:13.738217674Z 
2024-02-15T17:30:13.738224658Z Traceback (most recent call last):
2024-02-15T17:30:13.738232062Z   File "/seed/./manage.py", line 14, in <module>
2024-02-15T17:30:13.738326909Z     execute_from_command_line(sys.argv)
2024-02-15T17:30:13.738340179Z   File "/usr/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
2024-02-15T17:30:13.738653076Z     utility.execute()
2024-02-15T17:30:13.738673679Z   File "/usr/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
2024-02-15T17:30:13.738907863Z     self.fetch_command(subcommand).run_from_argv(self.argv)
2024-02-15T17:30:13.738920714Z   File "/usr/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
2024-02-15T17:30:13.739154549Z     self.execute(*args, **cmd_options)
2024-02-15T17:30:13.739166702Z   File "/usr/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
2024-02-15T17:30:13.739416740Z     output = self.handle(*args, **options)
2024-02-15T17:30:13.739429800Z   File "/seed/seed/management/commands/create_default_user.py", line 76, in handle
2024-02-15T17:30:13.739616840Z     org.add_member(u, ROLE_OWNER)
2024-02-15T17:30:13.739631158Z   File "/seed/seed/lib/superperms/orgs/models.py", line 320, in add_member
2024-02-15T17:30:13.739920797Z     _, created = OrganizationUser.objects.get_or_create(user=user, organization=self, access_level_instance_id=access_level_instance_id, role_level=role)
2024-02-15T17:30:13.739942099Z   File "/usr/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
2024-02-15T17:30:13.740047073Z     return getattr(self.get_queryset(), name)(*args, **kwargs)
2024-02-15T17:30:13.740060483Z   File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 588, in get_or_create
2024-02-15T17:30:13.740504196Z     return self.create(**params), True
2024-02-15T17:30:13.740524800Z   File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 453, in create
2024-02-15T17:30:13.740689769Z     obj.save(force_insert=True, using=self.db)
2024-02-15T17:30:13.740704157Z   File "/usr/lib/python3.9/site-packages/django/db/models/base.py", line 739, in save
2024-02-15T17:30:13.741255707Z     self.save_base(using=using, force_insert=force_insert,
2024-02-15T17:30:13.741276800Z   File "/usr/lib/python3.9/site-packages/django/db/models/base.py", line 763, in save_base
2024-02-15T17:30:13.741541645Z     pre_save.send(
2024-02-15T17:30:13.741557918Z   File "/usr/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 180, in send
2024-02-15T17:30:13.741700119Z     return [
2024-02-15T17:30:13.741712900Z   File "/usr/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
2024-02-15T17:30:13.741874377Z     (receiver, receiver(signal=self, sender=sender, **named))
2024-02-15T17:30:13.741888835Z   File "/seed/seed/lib/superperms/orgs/models.py", line 98, in presave_organization_user
2024-02-15T17:30:13.742036134Z     if instance.role_level == ROLE_OWNER and instance.access_level_instance != instance.organization.root:
2024-02-15T17:30:13.742047658Z   File "/usr/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 187, in __get__
2024-02-15T17:30:13.742270457Z     rel_obj = self.get_object(instance)
2024-02-15T17:30:13.742284775Z   File "/usr/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 154, in get_object
2024-02-15T17:30:13.742487041Z     return qs.get(self.field.get_reverse_related_filter(instance))
2024-02-15T17:30:13.742497447Z   File "/usr/lib/python3.9/site-packages/django/db/models/query.py", line 435, in get
2024-02-15T17:30:13.742777448Z     raise self.model.DoesNotExist(
2024-02-15T17:30:13.742790928Z seed.lib.superperms.orgs.models.AccessLevelInstance.DoesNotExist: AccessLevelInstance matching query does not exist.
kflemin commented 4 months ago

@axelstudios I could not replicate this error locally...

axelstudios commented 4 months ago

Here are the conditions to reproduce this error:

  1. Org already exists
  2. User (new or pre-existing) does not belong to org
  3. Run manage.py create_default_user for that user and org