Cannot store non primitives in callback context - CFN Test and likely cloudformation
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par comparer l’implémentation Java StdCallbackContext liée avec la manière dont callbackContext est sérialisé et désérialisé dans le plugin Python et lors des tests de contrat cfn test. Reproduisez l’exemple datetime, puis vérifiez que les valeurs de callback non primitives survivent à un aller-retour du callback sans que les auteurs de handlers aient besoin de les marshaler eux-mêmes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Java plugin supports serializing/deserializing class information in callback context , this plugin doesnt support that today.
Use case, related to #243. Say I want to store a datetime.datetime object. Right now it gets returned as a string, so the next time I use it when I am called back, it comes across as a string not as an original datetime object.
I confirmed this on the handler side by printing out a ProgressEvent post serialization.
{'message': '', 'callbackContext': {'resource_entry_end_time': datetime.datetime(2023, 1, 19, 16, 25, 19, 5602), 'handler_entry_time': datetime.datetime(2023, 1, 19, 16, 23, 19, 5606), 'working_model': ResourceModel(...), 'create_action1_completed': True, 'create_action1_request_id': '1234'}, 'callbackDelaySeconds': 1, 'resourceModel': {...}, 'status': 'IN_PROGRESS'}
Received on the cfn test side for contract testing:
{'message': '', 'callbackContext': {'resource_entry_end_time': '2023-01-19T16:25:19.005602', 'handler_entry_time': '2023-01-19T16:23:19.005606', 'working_model': {...}, 'create_action1_completed': True, 'create_action1_request_id': '1234'}, 'callbackDelaySeconds': 1, 'resourceModel': {....}, 'status': 'IN_PROGRESS'}
So if we attempt to store any non-primitive type its replaced with a string representation and no way to get back to it. This requires handler authors, if they want to use complex types, to do their own marshalling.
- Langage dominant
- Python
- Étoiles
- 107
- Forks
- 46
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de aws-cloudformation/cloudformation-cli-python-plugin
-
Support UV Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Repo alive? Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
aws-cloudformation/cloudformation-cli-python-plugin#270 · 1 commentaire · 1 réaction ·
-
Improve docstrings for Hooks Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
aws-cloudformation/cloudformation-cli-python-plugin#268 · 1 commentaire · 2 réactions ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
aws-cloudformation/cloudformation-cli-python-plugin#264 · 1 commentaire ·
Toutes les issues de aws-cloudformation/cloudformation-cli-python-plugin
Issues similaires
-
[Bug] reef-hermes tells me to resume with hermes --resume, which does not work from my shell Ouvertearea: harness bug status: needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Human-Agent-Society/reef#625 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
learningequality/kolibri#15351 · 2 commentaires ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Name consistency Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
eellak/triplestore#65 · 1 commentaire ·