* feat: basic blobstore infrastructure for dev
* refactor: (broken) attempt to put minio console behind nginx
* feat: initialize blobstore with boto3
* fix: abandon attempt to proxy minio. Use docker compose instead.
* feat: beginning of blob writes
* feat: storage utilities
* feat: test buckets
* chore: black
* chore: remove unused import
* chore: avoid f string when not needed
* fix: inform all settings files about blobstores
* fix: declare types for some settings
* ci: point to new target base
* ci: adjust test workflow
* fix: give the tests debug environment a blobstore
* fix: "better" name declarations
* ci: use devblobstore container
* chore: identify places to write to blobstorage
* chore: remove unreachable code
* feat: store materials
* feat: store statements
* feat: store status changes
* feat: store liaison attachments
* feat: store agendas provided with Interim session requests
* chore: capture TODOs
* feat: store polls and chatlogs
* chore: remove unneeded TODO
* feat: store drafts on submit and post
* fix: handle storage during doc expiration and resurrection
* fix: mirror an unlink
* chore: add/refine TODOs
* feat: store slide submissions
* fix: structure slide test correctly
* fix: correct sense of existence check
* feat: store some indexes
* feat: BlobShadowFileSystemStorage
* feat: shadow floorplans / host logos to the blob
* chore: remove unused import
* feat: strip path from blob shadow names
* feat: shadow photos / thumbs
* refactor: combine photo and photothumb blob kinds
The photos / thumbs were already dropped in the same
directory, so let's not add a distinction at this point.
* style: whitespace
* refactor: use kwargs consistently
* chore: migrations
* refactor: better deconstruct(); rebuild migrations
* fix: use new class in mack patch
* chore: add TODO
* feat: store group index documents
* chore: identify more TODO
* feat: store reviews
* fix: repair merge
* chore: remove unnecessary TODO
* feat: StoredObject metadata
* fix: deburr some debugging code
* fix: only set the deleted timestamp once
* chore: correct typo
* fix: get_or_create vs get and test
* fix: avoid the questionable is_seekable helper
* chore: capture future design consideration
* chore: blob store cfg for k8s
* chore: black
* chore: copyright
* ci: bucket name prefix option + run Black
Adds/uses DATATRACKER_BLOB_STORE_BUCKET_PREFIX option. Other changes
are just Black styling.
* ci: fix typo in bucket name expression
* chore: parameters in app-configure-blobstore
Allows use with other blob stores.
* ci: remove verify=False option
* fix: don't return value from __init__
* feat: option to log timing of S3Storage calls
* chore: units
* fix: deleted->null when storing a file
* style: Black
* feat: log as JSON; refactor to share code; handle exceptions
* ci: add ietf_log_blob_timing option for k8s
* test: --no-manage-blobstore option for running tests
* test: use blob store settings from env, if set
* test: actually set a couple more storage opts
* feat: offswitch (#8541)
* feat: offswitch
* fix: apply ENABLE_BLOBSTORAGE to BlobShadowFileSystemStorage behavior
* chore: log timing of blob reads
* chore: import Config from botocore.config
* chore(deps): import boto3-stubs / botocore
botocore is implicitly imported, but make it explicit
since we refer to it directly
* chore: drop type annotation that mypy loudly ignores
* refactor: add storage methods via mixin
Shares code between Document and DocHistory without
putting it in the base DocumentInfo class, which
lacks the name field. Also makes mypy happy.
* feat: add timeout / retry limit to boto client
* ci: let k8s config the timeouts via env
* chore: repair merge resolution typo
* chore: tweak settings imports
* chore: simplify k8s/settings_local.py imports
---------
Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
* feat: remove "AD is watching" state
* chore: update names.json
* refactor: use idexists state, not dead
* fix: remove guidance to use watching state
* chore: remove references to 'watching' state
* feat: remove create_in_state from edit_info view
* test: update test
* style: Black + move class closer to use
* refactor: remove lint
* fix: restore missing admonition
---------
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
* wip: identify whats needed to obviate ghostlinkd
* fix: hardlink new charter files to ftp directory
* fix: hardlink new charter files to ftp directory (continued)
* chore: bring settings comment up to date
* chore: add archive and ftp dirs to setup of various environments
* fix: test charter submits write to ftp dir
* chore: remove debug
* fix: test charter approval writes to ftp dir
* fix: link review revisions into ftp dir
* fix: link to all archive and ftp on submission post
* chore: clean comments, move action to github issue
* fix: link idindex files to all archive and ftp
* chore: deflake
* chore: remove TODO comment
* fix: use settings
* chore: rename new setting
* refactor: Change import style for clarity
* feat: Add iana_changes_updates_task()
* chore: Squelch lint warning
My linter does not like variables defined outside
of __init__()
* feat: Add PeriodicTask for iana_changes_updates_task
* refactor: tasks instead of scripts on sync.views.notify()
* test: Test iana_changes_updates_task
* refactor: rename task for consistency
* feat: Add iana_protocols_update_task
* feat: Add PeriodicTask for iana protocols sync
* refactor: Use protocol sync task instead of script in view
* refactor: itertools.batched() not available until py312
* test: test iana_protocols_update_task
* feat: Add idindex_update_task()
Calls idindex generation functions and does the file
update dance to put them in place.
* chore: Add comments to bin/hourly
* fix: annotate types and fix bug
* feat: Create PeriodicTask for idindex_update_task
* refactor: Move helpers into a class
More testable this way
* refactor: Make TempFileManager a context mgr
* test: Test idindex_update_task
* test: Test TempFileManager
* fix: Fix bug in TestFileManager
yay testing
* feat: Add expire_ids_task()
* feat: Create PeriodicTask for expire_ids_task
* test: Test expire_ids_task
* test: Test request timeout in iana_protocols_update_task
* refactor: do not re-raise timeout exception
Not sure this is the right thing to do, but it's the
same as rfc_editor_index_update_task
* feat: Add notify_expirations_task
* feat: Add "weekly" celery beat crontab
* refactor: Reorder crontab fields
This matches the crontab file field order
* feat: Add PeriodicTask for notify_expirations
* test: Test notify_expirations_task
* test: Add annotation to satisfy mypy
* fix: set tz when passing a date to timesince_days filter
* fix: fill in tz for a constructed datetime in idindex/index.py
* test: simplify double-negatives in test assertions
* test: fix I-D expiration test cases to be tz aware
* fix: use tz-aware comparisons for in_draft_expire_freeze method
* test: fix tz used for timesince_days filter test case
* refactor: replace datetime.now with timezone.now
* refactor: migrate model fields to use timezone.now as default
* refactor: replace datetime.today with timezone.now
datetime.datetime.today() is equivalent to datetime.datetime.now(); both
return a naive datetime with the current local time.
* refactor: rephrase datetime.now(tz) as timezone.now().astimezone(tz)
This is effectively the same, but is less likely to encourage accidental
use of naive datetimes.
* refactor: revert datetime.today() change to old migrations
* refactor: change a missed datetime.now to timezone.now
* chore: renumber timezone_now migration
* chore: renumber migrations
Remove the rest of the log.assertions checking that iesg_state existed in places we expected it to. Removed unnecessary imports.
- Legacy-Id: 17522
Note: SVN reference [17496] has been migrated to Git commit db5d11ea32
Fix#2277 - Do not allow reviewers to reject overdue reviews.
If a review request is past the deadline, reviewers will no longer be
able to reject the assignment.
- Legacy-Id: 16909
Note: SVN reference [16883] has been migrated to Git commit 3c2b01b3ff
primary keys from character strings to integers, and makes corresponding code
changes.
This was prompted by database limitations discovered when trying to make
DocAlias use a m2m document field; with 255 long strings as primary keys for
Document and DocAlias this violated the MySQL database limitations.
Changing the primary keys to integers should also improve efficiency.
Due to the data migrations which create the new integer primary keys and adds
corresponding integer foreign keys matching the previous string foreign keys
in all tables having foreign keys to Document and DocAlias, some of these
migrations take a long time. The total set of migrations are expected to have
a runtime on the order of 2 hours.
- Legacy-Id: 16237
DocumentAuthor, rename author field to email and make it optional (for
modeling old email-less submissions), remove the authors many to many
referencing field from Document as it is not really pointing the right
place.
Update the Secretariat tools to show affiliation and country.
Add migration for getting rid of the fake email addresses that the
migration script created some years ago (just set the author email
field to null).
- Legacy-Id: 12739