nautobot-app-circuit-maintenance icon indicating copy to clipboard operation
nautobot-app-circuit-maintenance copied to clipboard

Store email body instead of headers in RawNotification.raw

Open chadell opened this issue 3 years ago • 0 comments

Environment

  • nautobot-circuit-maintenance version: 0.4.3

Proposed Functionality

When storing raw data from an email notification, we could prioritize the body instead of the headers (size is limited to 16KB)

Use Case

Storing the body instead of the headers (that are a lot in some cases), would help to troubleshoot why a notification parser failed.

chadell avatar Dec 15 '21 16:12 chadell

Looks like a case we missed in #113.

glennmatthews avatar Oct 19 '23 14:10 glennmatthews

I'm seeing the below traceback that looks to be the same issue.

Something has changed an OrderedDefaultRouter's APIRootView attribute to a custom class. Please verify that class GoldenConfigRootView implements appropriate authentication controls.
Operations to perform:
  Apply all migrations: admin, auth, circuits, contenttypes, database, dcim, django_celery_beat, django_celery_results, extras, ipam, nautobot_device_lifecycle_mgmt, nautobot_device_onboarding, nautobot_golden_config, nautobot_ui_plugin, sessions, silk, social_django, taggit, tenancy, users, virtualization
Running migrations:
  Applying nautobot_device_onboarding.0008_alter_onboardingtask_options...Traceback (most recent call last):
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.DuplicateTable: relation "nautobot_device_onboardi_label_ip_address_664cc5be_uniq" already exists


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/nautobot/bin/nautobot-server", line 8, in <module>
    sys.exit(main())
  File "/opt/nautobot/lib/python3.8/site-packages/nautobot/core/cli/__init__.py", line 293, in main
    execute_from_command_line([sys.argv[0], *unparsed_args])
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/base.py", line 89, in wrapped
    res = handle_func(*args, **kwargs)
  File "/opt/nautobot/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 244, in handle
    post_migrate_state = executor.migrate(
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/migrations/executor.py", line 227, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/migrations/migration.py", line 126, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/migrations/operations/models.py", line 528, in database_forwards
    alter_together(
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 419, in alter_unique_together
    self.execute(self._create_unique_sql(model, columns))
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 145, in execute
    cursor.execute(sql, params)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/utils.py", line 66, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/opt/nautobot/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "nautobot_device_onboardi_label_ip_address_664cc5be_uniq" already exists

pip list returns:

pip list
Package                        Version
------------------------------ ------------
amqp                           5.1.1
aniso8601                      7.0.0
ansible                        6.7.0
ansible-core                   2.13.13
anyio                          4.0.0
asgiref                        3.6.0
async-timeout                  4.0.2
attrs                          22.2.0
autopep8                       2.3.1
backports.zoneinfo             0.2.1
bcrypt                         4.0.1
billiard                       4.1.0
celery                         5.3.4
certifi                        2022.12.7
cffi                           1.15.1
charset-normalizer             2.1.1
ciscoconfparse                 1.6.52
click                          8.1.3
click-didyoumean               0.3.0
click-plugins                  1.1.1
click-repl                     0.2.0
colorama                       0.4.6
contourpy                      1.0.6
coreapi                        2.3.3
coreschema                     0.0.4
cron-descriptor                1.4.0
cryptography                   39.0.0
cycler                         0.11.0
deepdiff                       5.8.1
defusedxml                     0.7.1
Django                         3.2.25
django-ajax-tables             1.1.1
django-appconf                 1.0.5
django-cacheops                6.2
django-celery-beat             2.6.0
django-celery-results          2.5.1
django-constance               2.9.1
django-cors-headers            4.3.1
django-cryptography            1.1
django-db-file-storage         0.5.5
django-extensions              3.2.3
django-filter                  23.5
django-health-check            3.18.3
django-jinja                   2.11.0
django-js-asset                2.0.0
django-mptt                    0.14.0
django-picklefield             3.1
django-pivot                   1.8.1
django-prometheus              2.3.1
django-redis                   5.4.0
django-rq                      2.8.1
django-silk                    5.1.0
django-tables2                 2.7.0
django-taggit                  4.0.0
django-timezone-field          5.1
django-tree-queries            0.17.0
django-webserver               1.2.0
djangorestframework            3.15.1
dnspython                      2.2.1
drf-react-template-framework   0.0.17
drf-spectacular                0.27.2
drf-spectacular-sidecar        2022.12.1
drf-yasg                       1.21.4
emoji                          2.11.1
exceptiongroup                 1.1.3
fonttools                      4.38.0
funcy                          1.17
future                         0.18.2
gitdb                          4.0.10
GitPython                      3.1.43
gprof2dot                      2024.6.6
graphene                       2.1.9
graphene-django                2.16.0
graphene-django-optimizer      0.8.0
graphql-core                   2.3.2
graphql-relay                  2.0.1
h11                            0.14.0
hier-config                    2.2.2
httpcore                       0.17.3
httpx                          0.24.1
idna                           3.4
importlib-metadata             4.13.0
importlib-resources            5.10.2
inflection                     0.5.1
itypes                         1.2.0
Jinja2                         3.1.4
jsonschema                     4.7.2
junos-eznc                     2.6.6
kiwisolver                     1.4.4
kombu                          5.3.2
loguru                         0.6.0
lxml                           4.9.2
Markdown                       3.5.2
MarkupSafe                     2.1.5
matplotlib                     3.6.2
mypy-extensions                0.4.3
napalm                         4.1.0
nautobot                       2.2.7
nautobot-capacity-metrics      3.0.1
nautobot-device-lifecycle-mgmt 2.1.1
nautobot-device-onboarding     3.0.1
nautobot-golden-config         2.1.0
nautobot-plugin-nornir         2.0.0
nautobot-ui-plugin             1.0.0
ncclient                       0.6.13
netaddr                        0.10.1
netmiko                        4.1.2
netutils                       1.6.0
nh3                            0.2.15
nornir                         3.3.0
nornir-jinja2                  0.2.0
nornir-napalm                  0.4.0
nornir-nautobot                3.0.0
nornir-netmiko                 1.0.0
nornir-utils                   0.2.0
ntc-templates                  3.2.0
numpy                          1.24.1
oauthlib                       3.2.2
ordered-set                    4.1.0
packaging                      23.1
paramiko                       2.12.0
passlib                        1.7.4
pillow                         10.3.0
pip                            24.1.2
pkg_resources                  0.0.0
prometheus_client              0.20.0
promise                        2.3
prompt-toolkit                 3.0.36
psycopg2-binary                2.9.9
pycodestyle                    2.12.0
pycountry                      22.3.5
pycparser                      2.21
pycryptodome                   3.13.0
pyeapi                         0.8.4
PyJWT                          2.6.0
PyNaCl                         1.5.0
pynautobot                     2.0.0
pyparsing                      3.0.9
pyrsistent                     0.19.3
pyserial                       3.5
python-crontab                 2.7.1
python-dateutil                2.8.2
python-slugify                 8.0.4
python3-openid                 3.2.0
pytz                           2022.7
pyuwsgi                        2.0.23.post0
PyYAML                         6.0
redis                          4.4.0
requests                       2.31.0
requests-oauthlib              1.3.1
resolvelib                     0.8.1
rq                             1.15.1
ruamel.yaml                    0.17.21
ruamel.yaml.clib               0.2.7
Rx                             1.6.3
scp                            0.14.4
setuptools                     44.0.0
singledispatch                 4.0.0
six                            1.16.0
smmap                          5.0.0
sniffio                        1.3.0
social-auth-app-django         5.4.2
social-auth-core               4.4.2
sqlparse                       0.4.3
svgwrite                       1.4.3
swagger-spec-validator         3.0.3
tenacity                       8.1.0
text-unidecode                 1.3
textfsm                        1.1.2
toml                           0.10.2
tomli                          2.0.1
transitions                    0.9.0
ttp                            0.9.2
ttp-templates                  0.3.2
typing_extensions              4.4.0
tzdata                         2023.3
uritemplate                    4.1.1
urllib3                        1.26.13
vine                           5.0.0
wcwidth                        0.2.5
wheel                          0.38.4
xmldiff                        2.7.0
yamlordereddictloader          0.4.0
zipp                           3.11.0```

TheFuzzyTech avatar Jul 16 '24 12:07 TheFuzzyTech