Skip to content

Commit a2e9cda

Browse files
committed
Added task_id_attribute configuration option
To support different 'task_id' attributes for various consumers it has to be configurable.
1 parent cfa7ddc commit a2e9cda

4 files changed

Lines changed: 27 additions & 3 deletions

File tree

src/pubtools/sign/conf/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class MsgSignerSchema(ma.Schema):
2222
message_id_key = ma.fields.String(required=True)
2323
log_level = ma.fields.String(required=False)
2424
key_aliases = ma.fields.Dict(required=False, keys=ma.fields.String(), values=ma.fields.String())
25+
task_id_attribute = ma.fields.String(required=False)
2526

2627

2728
class MsgBatchSignerSchema(MsgSignerSchema):

src/pubtools/sign/signers/msgsigner.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,14 @@ class MsgSigner(Signer):
158158
)
159159

160160
log_level: str = field(init=False, metadata={"description": "Log level", "sample": "debug"})
161+
task_id_attribute: str = field(
162+
init=False,
163+
default="pub_task_id",
164+
metadata={
165+
"description": "Attribute used to custom identification of signing request",
166+
"sample": "task_id",
167+
},
168+
)
161169

162170
SUPPORTED_OPERATIONS: ClassVar[List[Type[SignOperation]]] = [
163171
ContainerSignOperation,
@@ -268,6 +276,7 @@ def load_config(self: MsgSigner, config_data: Dict[str, Any]) -> None:
268276
self.timeout = config_data["msg_signer"]["timeout"]
269277
self.creator = self._get_cert_subject_cn()
270278
self.key_aliases = config_data["msg_signer"].get("key_aliases", {})
279+
self.task_id_attribute = config_data["msg_signer"].get("task_id_attribute", "pub_task_id")
271280

272281
def _get_cert_subject_cn(self) -> str:
273282
x509 = crypto.load_certificate(
@@ -402,7 +411,7 @@ def clear_sign(self: MsgSigner, operation: ClearSignOperation) -> SigningResults
402411
operation.repo,
403412
operation,
404413
SignRequestType.CLEARSIGN,
405-
extra_attrs={"pub_task_id": operation.task_id},
414+
extra_attrs={self.task_id_attribute: operation.task_id},
406415
)
407416
for message in _key_messages:
408417
message_to_data[message.body["request_id"]] = message
@@ -478,7 +487,10 @@ def _prepare_messages(self, operation: ContainerSignOperation) -> List[List[MsgM
478487
SignRequestType.CONTAINER,
479488
],
480489
kwargs={
481-
"extra_attrs": {"pub_task_id": operation.task_id, "manifest_digest": digest}
490+
"extra_attrs": {
491+
self.task_id_attribute: operation.task_id,
492+
"manifest_digest": digest,
493+
}
482494
},
483495
)
484496
)
@@ -571,7 +583,7 @@ def blob_sign(self: MsgSigner, operation: BlobSignOperation) -> SigningResults:
571583
"",
572584
operation,
573585
SignRequestType.GPGSIGN,
574-
extra_attrs={"pub_task_id": operation.task_id, "manifest_digest": ""},
586+
extra_attrs={self.task_id_attribute: operation.task_id},
575587
)
576588
for message in _key_messages:
577589
message_to_data[message.body["request_id"]] = message
@@ -776,6 +788,9 @@ def load_config(self: Self, config_data: Dict[str, Any]) -> None:
776788
self.creator = self._get_cert_subject_cn()
777789
self.key_aliases = config_data["msg_batch_signer"].get("key_aliases", {})
778790
self.chunk_size = config_data["msg_batch_signer"]["chunk_size"]
791+
self.task_id_attribute = config_data["msg_batch_signer"].get(
792+
"task_id_attribute", "pub_task_id"
793+
)
779794

780795

781796
def msg_clear_sign(

tests/test_msg_batch_signer.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,9 @@ def test_msgsig_doc_arguments():
777777
"creator": {"description": "Identification of creator of signing request"},
778778
"environment": {"description": "Environment indetification in sent messages"},
779779
"service": {"description": "Service identificator"},
780+
"task_id_attribute": {
781+
"description": "Attribute used to custom identification of signing request"
782+
},
780783
"timeout": {"description": "Timeout for messaging receive"},
781784
"retries": {"description": "Retries for messaging receive"},
782785
"send_retries": {"description": "Retries for messaging send+receive"},
@@ -797,6 +800,7 @@ def test_msgsig_doc_arguments():
797800
"creator": "pubtools-sign",
798801
"environment": "prod",
799802
"service": "pubtools-sign",
803+
"task_id_attribute": "task_id",
800804
"timeout": 1,
801805
"retries": 3,
802806
"send_retries": 2,

tests/test_msg_signer.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,6 +1276,9 @@ def test_msgsig_doc_arguments():
12761276
"creator": {"description": "Identification of creator of signing request"},
12771277
"environment": {"description": "Environment indetification in sent messages"},
12781278
"service": {"description": "Service identificator"},
1279+
"task_id_attribute": {
1280+
"description": "Attribute used to custom identification of signing request"
1281+
},
12791282
"timeout": {"description": "Timeout for messaging receive"},
12801283
"retries": {"description": "Retries for messaging receive"},
12811284
"send_retries": {"description": "Retries for messaging send+receive"},
@@ -1296,6 +1299,7 @@ def test_msgsig_doc_arguments():
12961299
"creator": "pubtools-sign",
12971300
"environment": "prod",
12981301
"service": "pubtools-sign",
1302+
"task_id_attribute": "task_id",
12991303
"timeout": 1,
13001304
"retries": 3,
13011305
"send_retries": 2,

0 commit comments

Comments
 (0)