Skip to content

Commit 18aab26

Browse files
committed
[NRL-1311] Add prod env warn to new scripts. Fix supersede typo
1 parent a576ed4 commit 18aab26

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

scripts/put_pointers_from_files.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Put pointers from the provided files into the pointers table
33
# This will overwrite the pointer if it already exists in the table
44
import json
5+
import os
56

67
import fire
78
from aws_session_assume import get_boto_session
@@ -12,10 +13,19 @@
1213

1314
logger.setLevel("ERROR")
1415

16+
SKIP_PROD_WARNING = os.getenv("SKIP_PROD_WARNING", "false")
17+
1518

1619
def _put_pointers_from_files(
1720
*filenames, env: str = "dev", table_name: str | None = None
1821
):
22+
if env == "dev" and SKIP_PROD_WARNING != "true":
23+
confirmation = input(
24+
"\nWARNING - This command will modify the PROD environment. Continue? [y/n] "
25+
)
26+
if confirmation != "y":
27+
return "Exiting at user request"
28+
1929
docrefs: list[DocumentReference] = []
2030
print("Reading docrefs from files...")
2131
for filename in filenames:

scripts/set_pointer_supersede.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env python
22
# Set supersede info on a pointer
33
import json
4+
import os
45

56
import aws_session_assume
67
import fire
@@ -16,14 +17,23 @@
1617

1718
logger.setLevel("ERROR")
1819

20+
SKIP_PROD_WARNING = os.getenv("SKIP_PROD_WARNING", "false")
21+
1922

2023
def _set_pointer_supersede_info(
2124
pointer_id: str,
2225
supersede_pointer_id: str,
23-
delete_superceded: bool = False,
26+
delete_superseded: bool = False,
2427
env: str = "dev",
2528
table_name: str | None = None,
2629
):
30+
if env == "prod" and SKIP_PROD_WARNING != "true":
31+
confirmation = input(
32+
"\nWARNING - This command will modify the PROD environment. Continue? [y/n] "
33+
)
34+
if confirmation != "y":
35+
return "Exiting at user request"
36+
2737
session = aws_session_assume.get_boto_session(env)
2838
dynamodb = session.resource("dynamodb")
2939

@@ -53,21 +63,22 @@ def _set_pointer_supersede_info(
5363

5464
try:
5565
pointer = DocumentPointer.model_validate({"_from_dynamo": True, **item})
66+
doc_ref = DocumentReference.model_validate_json(pointer.document)
5667
except Exception as e:
5768
print(f"Could not validate pointer from table. Error: {e}")
5869
return
5970

60-
doc_ref = DocumentReference.model_validate_json(pointer.document)
61-
6271
if not doc_ref.relatesTo:
6372
doc_ref.relatesTo = []
64-
else:
65-
for relatesTo in doc_ref.relatesTo:
66-
if relatesTo.code == "replaces":
67-
print(
68-
f"Unable to add supersede info as pointer is already superseding a pointer: {relatesTo}"
69-
)
70-
return
73+
74+
existing_supersedes = [
75+
relates_to for relates_to in doc_ref.relatesTo if relates_to.code == "replaces"
76+
]
77+
if existing_supersedes:
78+
print(
79+
f"Unable to add supersede info as pointer is already superseding a pointer: {existing_supersedes}"
80+
)
81+
return
7182

7283
doc_ref.relatesTo.append(
7384
DocumentReferenceRelatesTo(
@@ -79,13 +90,13 @@ def _set_pointer_supersede_info(
7990
)
8091
)
8192

82-
print(f"Adding superseded info to {pointer_id}...")
93+
print(f"Adding supersede info to {pointer_id}...")
8394
updated_pointer = DocumentPointer.from_document_reference(doc_ref)
8495
table.put_item(
8596
Item=updated_pointer.dict(exclude_none=True, exclude={"_from_dynamo"})
8697
)
8798

88-
if delete_superceded:
99+
if delete_superseded:
89100
print(f"Deleting superseded {supersede_pointer_id}...")
90101
table.delete_item(
91102
Key={"pk": f"D#{supersede_pointer_id}", "sk": f"D#{supersede_pointer_id}"}

0 commit comments

Comments
 (0)