Cannot store non primitives in callback context - CFN Test and likely cloudformation
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza comparando la implementación enlazada de Java StdCallbackContext con la forma en que callbackContext se serializa y deserializa en el plugin de Python y durante las pruebas de contrato de cfn test. Reproduce el ejemplo de datetime y, después, verifica que los valores de callback no primitivos sobrevivan a un recorrido de ida y vuelta del callback sin requerir que los autores de handlers los serialicen por su cuenta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 107
- Forks
- 46
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de aws-cloudformation/cloudformation-cli-python-plugin
-
Support UV Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Repo alive? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
aws-cloudformation/cloudformation-cli-python-plugin#270 · 1 comentario · 1 reacción ·
-
Improve docstrings for Hooks Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
aws-cloudformation/cloudformation-cli-python-plugin#268 · 1 comentario · 2 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
aws-cloudformation/cloudformation-cli-python-plugin#264 · 1 comentario ·
Todos los issues de aws-cloudformation/cloudformation-cli-python-plugin
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
learningequality/ricecooker#747 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
run-llama/llama_index#23199 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
KhronosGroup/glTF-Blender-IO#2769 ·