Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.DS_store
datatracker.sublime-project
datatracker.sublime-workspace
/.claude
/.coverage
/.factoryboy_random_state
/.mypy_cache
Expand Down
6 changes: 2 additions & 4 deletions ietf/doc/storage_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,7 @@ def retrieve_bytes(kind: str, name: str) -> bytes:
content = f.read()
except Exception as err:
log(f"Blobstore Error: Failed to read bytes from {kind}:{name}: {repr(err)}")
if settings.SERVER_MODE == "development":
raise
raise
return content


Expand All @@ -192,6 +191,5 @@ def retrieve_str(kind: str, name: str) -> str:
content = content_bytes.decode("utf-8")
except Exception as err:
log(f"Blobstore Error: Failed to read string from {kind}:{name}: {repr(err)}")
if settings.SERVER_MODE == "development":
raise
raise
return content
16 changes: 14 additions & 2 deletions ietf/meeting/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1025,9 +1025,18 @@ def resolve_materials_for_one_meeting(meeting: Meeting):
)

def resolve_uploaded_material(meeting: Meeting, doc: Document):
resolved = []
resolved: list[ResolvedMaterial] = []
remove = ResolvedMaterial.objects.none()
blob = resolve_one_material(doc, rev=None, ext=None)
if blob is not None:
if blob is None:
# Versionless file does not exist. Remove the versionless ResolvedMaterial
# if it existed. This is to avoid leaving behind a stale link to a replaced
# version. This comes up e.g. if a ProceedingsMaterial is changed from having
# an uploaded file to being an external URL.
remove = ResolvedMaterial.objects.filter(
name=doc.name, meeting_number=meeting.number
)
else:
resolved.append(
ResolvedMaterial(
name=doc.name,
Expand All @@ -1047,12 +1056,15 @@ def resolve_uploaded_material(meeting: Meeting, doc: Document):
blob=blob.name,
)
)
# Create the new record(s)
ResolvedMaterial.objects.bulk_create(
resolved,
update_conflicts=True,
unique_fields=["name", "meeting_number"],
update_fields=["bucket", "blob"],
)
# and remove one if necessary (will be a none() queryset if not)
remove.delete()


def store_blob_for_one_material_file(doc: Document, rev: str, filepath: Path):
Expand Down
4 changes: 2 additions & 2 deletions ietf/meeting/views_proceedings.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from ietf.meeting.models import Meeting, MeetingHost
from ietf.meeting.helpers import get_meeting
from ietf.name.models import ProceedingsMaterialTypeName
from ietf.meeting.utils import handle_upload_file
from ietf.meeting.utils import handle_upload_file, resolve_uploaded_material
from ietf.utils.text import xslugify

class UploadProceedingsMaterialForm(FileUploadForm):
Expand Down Expand Up @@ -150,7 +150,7 @@ def save_proceedings_material_doc(meeting, material_type, title, request, file=N

if events:
doc.save_with_history(events)

resolve_uploaded_material(meeting, doc)
return doc


Expand Down
11 changes: 11 additions & 0 deletions ietf/utils/xmldraft.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,17 @@ def _document_name(self, ref):
number = int(maybe_number)
return f"{label}{number}"

target = ref.get("target")
if isinstance(target, str):
target = target.lower()
if target.startswith("https://datatracker.ietf.org/doc/"):
# len("https://datatracker.ietf.org/doc/")==33
m = re.match(r"^(draft-[a-z0-9-]*[a-z0-9])([/-]\d{2})?/?$",target[33:])
if m:
name = m.group(1)
return name


# if we couldn't find a match so far, try the seriesInfo
series_query = " or ".join(f"@name='{x.upper()}'" for x in series)
for info in ref.xpath(
Expand Down
10 changes: 0 additions & 10 deletions k8s/auth.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,6 @@ spec:
labels:
app: auth
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
10 changes: 0 additions & 10 deletions k8s/beat.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,6 @@ spec:
labels:
app: beat
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
10 changes: 0 additions & 10 deletions k8s/celery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,6 @@ spec:
labels:
app: celery
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
10 changes: 0 additions & 10 deletions k8s/memcached.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,6 @@ spec:
labels:
app: memcached
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
10 changes: 0 additions & 10 deletions k8s/rabbitmq.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,6 @@ spec:
labels:
app: rabbitmq
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
10 changes: 0 additions & 10 deletions k8s/replicator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,6 @@ spec:
labels:
app: replicator
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- datatracker
topologyKey: "kubernetes.io/hostname"
securityContext:
runAsNonRoot: true
containers:
Expand Down
Loading