Skip to content

Commit

Permalink
chore(resolver): updates apply resolver to handle usergroup creation/…
Browse files Browse the repository at this point in the history
…updation
  • Loading branch information
swagnikdutta committed Jul 7, 2023
1 parent 7ee0560 commit 8c498fb
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions riocli/apply/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
from riocli.project.model import Project
from riocli.secret.model import Secret
from riocli.static_route.model import StaticRoute
from riocli.usergroup.model import UserGroup


class _Singleton(type):
Expand All @@ -55,7 +56,8 @@ class ResolverCache(object, metaclass=_Singleton):
'Package': Package,
'Disk': Disk,
'Deployment': Deployment,
"ManagedService": ManagedService
"ManagedService": ManagedService,
'UserGroup': UserGroup,
}

KIND_REGEX = {
Expand Down Expand Up @@ -99,7 +101,12 @@ def find_depends(self, depends, *args):
elif 'guid' in depends and depends['kind'] not in ('network', 'managedservice'):
return depends['guid'], None
elif 'nameOrGUID' in depends:
obj_list = self._list_functors(depends['kind'])()
if depends['kind'] == 'usergroup':
org_guid = depends['organization']
obj_list = self._list_functors(depends['kind'])(org_guid)
else:
obj_list = self._list_functors(depends['kind'])()

obj_match = list(self._find_functors(depends['kind'])(
depends['nameOrGUID'], obj_list, *args))
if not obj_list or (isinstance(obj_list, list) and len(obj_list) == 0):
Expand All @@ -123,6 +130,7 @@ def _guid_functor(self, kind):
"disk": lambda x: munchify(x)['internalDeploymentGUID'],
"device": lambda x: munchify(x)['uuid'],
"managedservice": lambda x: munchify(x)['metadata']['name'],
"usergroup": lambda x: munchify(x).guid
}
return mapping[kind]

Expand All @@ -140,6 +148,7 @@ def _list_functors(self, kind):
"disk": self._list_disks,
"device": self.client.get_all_devices,
"managedservice": self._list_managedservices,
"usergroup": self.client.list_usergroups
}

return mapping[kind]
Expand All @@ -158,6 +167,7 @@ def _find_functors(self, kind):
"disk": self._generate_find_guid_functor(),
"device": self._generate_find_guid_functor(),
"managedservice": lambda name, instances: filter(lambda i: i.metadata.name == name, instances),
"usergroup": lambda name, groups: filter(lambda i: i.name == name, groups),
}

return mapping[kind]
Expand Down

0 comments on commit 8c498fb

Please sign in to comment.