File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ Exposed `PulpLabelsField` and `pulp_labels_validator` to the plugin API.
Original file line number Diff line number Diff line change 3333 JSONDictField ,
3434 JSONListField ,
3535 LatestVersionField ,
36+ PulpLabelsField ,
3637 SingleContentArtifactField ,
3738 RepositoryVersionsIdentityFromRepositoryField ,
3839 RepositoryVersionRelatedField ,
Original file line number Diff line number Diff line change 1111
1212class NoArtifactContentSerializer (base .ModelSerializer ):
1313 pulp_href = base .DetailIdentityField (view_name_pattern = r"contents(-.*/.*)-detail" )
14- pulp_labels = serializers . HStoreField (
14+ pulp_labels = fields . PulpLabelsField (
1515 help_text = _ (
1616 "A dictionary of arbitrary key/value pairs used to describe a specific "
1717 "Content instance."
Original file line number Diff line number Diff line change @@ -435,3 +435,13 @@ def pulp_labels_validator(value):
435435 )
436436
437437 return value
438+
439+
440+ class PulpLabelsField (serializers .HStoreField ):
441+ """
442+ Custom field for handling pulp labels that ensures proper dictionary format.
443+ Converts JSON strings to dictionaries during validation.
444+ """
445+
446+ def get_value (self , dictionary ):
447+ return dictionary .get (self .field_name , empty )
Original file line number Diff line number Diff line change 2626 ProgressReportSerializer ,
2727 PRNField ,
2828 PublicationSerializer ,
29+ PulpLabelsField ,
30+ pulp_labels_validator ,
2931 RelatedField ,
3032 RemoteSerializer ,
3133 RepositorySerializer ,
7476 "ProgressReportSerializer" ,
7577 "PRNField" ,
7678 "PublicationSerializer" ,
79+ "PulpLabelsField" ,
80+ "pulp_labels_validator" ,
7781 "RelatedField" ,
7882 "RemoteSerializer" ,
7983 "RepositorySerializer" ,
You can’t perform that action at this time.
0 commit comments