kubernetes-client / kubernetes-client/python
Unable to deserialize models with attributes of type RuntimeRawExtension
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 7.7k
- Forks
- 3.5k
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 18
Beschreibung
Minimal example for ControllerRevision (requires an active kubernetes cluster with working kubeconfig):
from kubernetes import client, config
config.load_kube_config()
apps_v1beta1_api = client.AppsV1beta1Api()
controller_revisions = apps_v1beta1_api.list_controller_revision_for_all_namespaces()
Issue seems to be here: https://github.com/kubernetes-client/python/blob/master/kubernetes/client/api_client.py#L617
if data is not None \
and klass.attribute_map[attr] in data \ # <-- here
and isinstance(data, (list, dict)):
value = data[klass.attribute_map[attr]]
kwargs[attr] = self.__deserialize(value, attr_type)
where it is looking for the 'Raw' attribute in data, but data is a freeform JSON object with no specific 'Raw' key. Because this conditional fails, nothing is ever added to kwargs, and RuntimeRawExtension is initialized without the required raw value.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in kubernetes/client/api_client.py ungefähr bei Zeile 617 und reproduziere das ControllerRevision-Beispiel mit einem aktiven Kubernetes-Cluster und einer funktionierenden kubeconfig. Verfolge die Deserialisierung des freien JSON in RuntimeRawExtension; sie erfolgt, wenn das resultierende Modell den Rohwert beibehält, anstatt ohne ihn initialisiert zu werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100