Commit graph

68 commits

Author SHA1 Message Date
Robert Sparks 997239a2ea
feat: write objects to blob storage (#8557)
* 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>
2025-02-19 17:41:10 -06:00
Jennifer Richards a86c62e133
fix: raw_id_fields for EventAdmin classes (#7711)
* fix: raw_id_fields for ReviewRequestDocEventAdmin

* fix: raw_id_fields for ReviewAssignmentDocEventAdmin

* fix: raw_id_fields for AddedMessageEventAdmin

* fix: raw_id_fields for SubmissionDocEventAdmin

* refactor: make inheritance clearer
2024-07-20 15:17:43 -07:00
Robert Sparks 96fae0c436
feat: remove DocAlias 2023-08-19 13:17:21 -05:00
Robert Sparks c631cb17cb
chore: more bulk change damage repair 2023-08-18 16:48:01 -05:00
Robert Sparks 823281ba6c
chore: first pass at clearing out canonical_name 2023-08-18 10:59:55 -05:00
Jennifer Richards 34378b9c74
chore: Remove duplicate entry in admin search_fields 2023-07-28 10:57:55 -07:00
Robert Sparks 769d85a6c4
chore: explore architecture change in RelatedDocument 2023-06-16 14:58:42 -05:00
Robert Sparks e88aa3c7f3 Merged in [19921] from rjsparks@nostrum.com:
add search to the doc states admin form.
 - Legacy-Id: 19929
Note: SVN reference [19921] has been migrated to Git commit ff05978d24f7a9c607d1dd32212e3e3f377b7e6d
2022-02-14 18:16:40 +00:00
Robert Sparks f5a04263e5 Added the notion of responsible leadership.
- Legacy-Id: 19202
2021-07-07 17:49:35 +00:00
Robert Sparks 6b383255ad Staging for merge forward
- Legacy-Id: 19199
2021-07-06 18:05:54 +00:00
Jennifer Richards e11583a87f Allow assignment of Person as "action holder" for a Doc, plus rudimentary automation of assignment. Fixes #3146. Commit ready for merge.
- Legacy-Id: 18829
2021-02-12 20:31:00 +00:00
Henrik Levkowetz 21cd74a809 Added search field and tweaked the list display for the DocAlias admin.
- Legacy-Id: 18451
2020-08-31 15:38:33 +00:00
Robert Sparks 02e1226a03 Added appropriate Admin classes
- Legacy-Id: 17870
2020-05-21 20:48:03 +00:00
Henrik Levkowetz 726fcbf27d Removed all __future__ imports.
- Legacy-Id: 17391
2020-03-05 23:53:42 +00:00
Robert Sparks 0040a85395 Improve admin handling of DocumentURL. Fixes #2865. Commit ready for merge.
- Legacy-Id: 17228
2020-01-13 19:33:35 +00:00
Henrik Levkowetz 6482254a03 Merged in ^/branch/akayla/irsg/6.113.1.dev0 from peter@akayla.com.
This provides support for IRSG ballots, similar to the IESG ballots support which has been in use for quite some time.  The IRSG ballots differ from IESG ballots in a number of ways, described in detail in the RFP and SoW for this work and implemented here.
 - Legacy-Id: 17164
2019-12-20 15:00:55 +00:00
Peter E. Yee bb7e504d14 12/13 merged into 6.113.1.dev0 with migration ordering failure
- Legacy-Id: 17149
2019-12-13 19:53:45 +00:00
Robert Sparks e45a32e49f Add IANA expert review tracking. Commit ready for merge.
- Legacy-Id: 16656
2019-08-15 20:36:07 +00:00
Henrik Levkowetz 2d7c9629aa Added 'from __future__' imports all over the place, to bring code behaviour into closer alignment between python2 and python3
- Legacy-Id: 16446
2019-07-15 15:40:51 +00:00
Henrik Levkowetz d7f5c84182 Initial 2to3 patch with added copyright statement updates.
- Legacy-Id: 16309
2019-06-27 14:40:54 +00:00
Henrik Levkowetz 426870b766 Merged in the Document and DocAlias primary key change and m2m work in ^/personal/henrik/6.96.1-docalias.
- Legacy-Id: 16261
2019-06-15 12:00:48 +00:00
Henrik Levkowetz a2cafded25 Changed DocAlias to be many-to-many, in order to be able to handle STD aliases referring to multiple RFCs.
- Legacy-Id: 16249
2019-06-14 20:38:14 +00:00
Henrik Levkowetz 8726e74709 Merged in a refactoring of document review code from rjsparks@nostrum.com. This introduces ReviewAssignments, letting us do multiple assingments for a given RevieRequest, without conflating the assignments and their results with the request itself.
- Legacy-Id: 16177
2019-04-30 16:54:06 +00:00
Henrik Levkowetz bb4fe3fbbf Undid previous commit
- Legacy-Id: 16153
2019-04-22 19:22:42 +00:00
Robert Sparks 334767fa6f Some admin tweaks and removal of a dead template. Tests all pass now. Functionality is still not right.
- Legacy-Id: 16032
2019-03-14 19:14:33 +00:00
Henrik Levkowetz 3b8d9ae832 Merged in [15684] from rjsparks@nostrum.com:
Removed the field and widget that made editing document states easier on the document admin page since they do not survive validation failure of other fields on the form. Excluded states from the modelform since the default states widget is almost impossible to use without producing bad data. If states need to be edited through the admin, it will, for now, need to be done gruelingly through the admin form for State. Fixes #2524.
 - Legacy-Id: 15700
Note: SVN reference [15684] has been migrated to Git commit 128c0a6dbb
2018-11-03 09:01:59 +00:00
Robert Sparks 128c0a6dbb Removed the field and widget that made editing document states easier on the document admin page since they do not survive validation failure of other fields on the form. Excluded states from the modelform since the default states widget is almost impossible to use without producing bad data. If states need to be edited through the admin, it will, for now, need to be done gruelingly through the admin form for State. Fixes #2524. Commit ready for merge.
- Legacy-Id: 15684
2018-11-03 04:28:50 +00:00
Henrik Levkowetz 22a2e29db8 Added an send_email field to BallotPostitionDocEvent to reflect whether the 'Send email' button was used to save the ballot position. Reverted a different earlier schema change which had the same purpose. Added icons on documents' IESG evaluation record to reflect this.
- Legacy-Id: 15526
2018-10-07 15:08:17 +00:00
Henrik Levkowetz cfb214c48a Added a BallotCommentDocEvent, which extends DocEvent with a send_mail field, in order to better be able to show whether ballot discusses and comments were posted with with the 'send email' button or not.
- Legacy-Id: 15515
2018-10-01 13:31:17 +00:00
Henrik Levkowetz 9fe1820640 Tweaked the 'Related documents' part of the Document admin page to more intuitively show the relationships.
- Legacy-Id: 15259
2018-06-14 19:22:55 +00:00
Henrik Levkowetz 92d425fd9b Added 'Additional URLs' for documents, the same way we have them for groups.
This could be used to point to a document source repository, to extracted
  yang module files, document wikis, and other relevant resources.
 - Legacy-Id: 14166
2017-09-27 10:52:32 +00:00
Henrik Levkowetz 4dad8cdf9a Added a test to check for missing admin models, and added the admin models that were currently missing.
- Legacy-Id: 14021
2017-08-01 14:00:29 +00:00
Ole Laursen 5b677dc6ba Merge author stats branch into new branch from trunk
- Legacy-Id: 13159
2017-03-28 14:36:40 +00:00
Henrik Levkowetz 05d57f6577 Added a 'rev' field to DocEvent, and removed the corresponding field from NewRevisionDocEvent and SubmissionDocEvent. Added a migration for an initial schema change, one data migration to copy and infer revision information, another schema migration to remove extraneous revision field, and another data migration to fix up bad timestamps and bad revision info from the period 2016-09-10 to 2016-10-04.
- Legacy-Id: 12974
2017-03-05 19:59:27 +00:00
Henrik Levkowetz dd305e0d87 Fixed a bug in the StateAdmin list_filter setting.
- Legacy-Id: 12972
2017-03-04 16:19:29 +00:00
Henrik Levkowetz 9bbd50119f Added a filter bar for state-type to the admin page for doc.models.State.
- Legacy-Id: 12968
2017-03-04 13:45:08 +00:00
Ole Laursen b2ff10b0f2 Add support for extracting the country line from the author addresses
to the draft parser (incorporating patch from trunk), store the
extracted country instead of trying to turn it into an ISO country
code, add country and continent name models and add initial data for
those, add helper function for cleaning the countries, add author
country and continent charts, move the affiliation models to
stats/models.py, fix a bunch of bugs.
 - Legacy-Id: 12846
2017-02-15 18:43:57 +00:00
Ole Laursen ef251c6bc7 Add author affiliation chart.
Also add a model for registering an alias for an affiliation so that
we can group affiliations that are considered the same for statistical
purposes, and a model for registering unimportant endings like Inc.
and GmbH.

Affiliation grouping is done through three means: stripping
uninteresting endings, merging entries that only differ in case and
aliases that map from case-insensitive alias to name.

Stripping endings and merging based on case seem to reduce the number
of needed manually maintained aliases greatly.
 - Legacy-Id: 12785
2017-02-03 18:49:43 +00:00
Ole Laursen 9308948195 Add person, affiliation and country (through django-countries) to
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
2017-01-26 17:10:08 +00:00
Henrik Levkowetz 6de7be6953 Specified strip=False for another bunch of CharField form fields with Textarea widgets.
- Legacy-Id: 12711
2017-01-23 17:38:56 +00:00
Henrik Levkowetz e3ce2a9657 Tweaked the admin for doc.models.Document to capture a comment about changes made, and save those in the document history, using .save_with_history(). This makes the admin useful again for doing document changes. See issue #2067.
- Legacy-Id: 12434
2016-12-01 16:35:23 +00:00
Henrik Levkowetz 27abaae2e4 Tweaked and enhanced doc.admin.DocEventAdmin.
- Legacy-Id: 12276
2016-11-07 18:38:34 +00:00
Henrik Levkowetz 5f03d70bd7 Added admin support for the DocumentAuthor model.
- Legacy-Id: 12089
2016-10-05 15:16:46 +00:00
Henrik Levkowetz a9f879cd0e Tweaked admin models.
- Legacy-Id: 12071
2016-10-01 13:36:31 +00:00
Henrik Levkowetz 846a02c3f9 Fixed pyflakes complaints introduced with pyflakes 1.1.0
- Legacy-Id: 10896
2016-03-04 21:24:26 +00:00
Ole Laursen 8bca1b4b33 Summary: Make name the primary key for DocAlias.
This fixes Javascript widgets working with DocAliases, such as the
replaces field in draft submission, to work better with Javascript
disabled. It also makes sense from a modelling perspective as the name
really is a unique key for the alias.

The actual transformation requires a series of migrations taking a
couple of minutes to complete. The actual switch to the key is done at
the end.

Branch ready for merge.
 - Legacy-Id: 10111
2015-09-30 13:47:33 +00:00
Henrik Levkowetz 6596a858af Fixed a problem with the admin interface for the ietf.doc.DocHistory class.
- Legacy-Id: 8693
2014-11-14 00:21:54 +00:00
Henrik Levkowetz 5bef5d11ae Made doc/ pyflakes-clean.
- Legacy-Id: 7462
2014-03-15 16:09:47 +00:00
Ole Laursen ea24f5c3bd Import slugify from django.utils.text (introduced in Django 1.5)
- Legacy-Id: 6967
2013-12-18 10:00:58 +00:00
Ole Laursen 0006b9ddcc Make sure all model forms have a Meta.fields attribute
- Legacy-Id: 6927
2013-12-13 17:20:02 +00:00