Skip to content

Commit ed691f3

Browse files
mingweihediondrapeckMingwei He
authored
fix aml workspace schema types mismatch for show operation (Azure#27269)
* Update changelog * fix workspace.identity.UAI types mismatch for show operation * revert the change log * fix pylint issue Co-authored-by: Diondra Peck <[email protected]> Co-authored-by: Mingwei He <[email protected]>
1 parent 502727b commit ed691f3

File tree

1 file changed

+21
-1
lines changed
  • sdk/ml/azure-ai-ml/azure/ai/ml/_schema/workspace

1 file changed

+21
-1
lines changed

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/workspace/identity.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# pylint: disable=unused-argument,no-self-use
66

77
from marshmallow import fields
8-
from marshmallow.decorators import post_load
8+
from marshmallow.decorators import post_load, pre_dump
99

1010
from azure.ai.ml._schema.core.fields import NestedField, StringTransformedEnum
1111
from azure.ai.ml._schema.core.schema_meta import PatchedSchemaMeta
@@ -40,6 +40,12 @@ class IdentitySchema(metaclass=PatchedSchemaMeta):
4040
keys=fields.Str(required=True), values=NestedField(UserAssignedIdentitySchema, allow_none=True), allow_none=True
4141
)
4242

43+
@pre_dump
44+
def predump(self, data, **kwargs):
45+
if data and isinstance(data, IdentityConfiguration):
46+
data.user_assigned_identities = self.uai_list2dict(data.user_assigned_identities)
47+
return data
48+
4349
@post_load
4450
def make(self, data, **kwargs):
4551
data["user_assigned_identities"] = self.uai_dict2list(data.pop("user_assigned_identities"))
@@ -55,3 +61,17 @@ def uai_dict2list(self, uai_dict):
5561
p_id = meta.principal_id
5662
res.append(ManagedIdentityConfiguration(resource_id=resource_id, client_id=c_id, principal_id=p_id))
5763
return res
64+
65+
def uai_list2dict(self, uai_list):
66+
res = {}
67+
if uai_list and isinstance(uai_list, list):
68+
for uai in uai_list:
69+
if not isinstance(uai, ManagedIdentityConfiguration):
70+
continue
71+
meta = {}
72+
if uai.client_id:
73+
meta["client_id"] = uai.client_id
74+
if uai.principal_id:
75+
meta["principal_id"] = uai.principal_id
76+
res[uai.resource_id] = meta
77+
return res if res else None

0 commit comments

Comments
 (0)