Skip to content

Commit

Permalink
fix comments
Browse files Browse the repository at this point in the history
  • Loading branch information
DaanRademaker committed Nov 28, 2023
1 parent 3918b4a commit 7ac3cfd
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
28 changes: 15 additions & 13 deletions aws-lambda/src/databricks_cdk/resources/permissions/changes.py
Original file line number Diff line number Diff line change
@@ -1,32 +1,34 @@
from typing import Dict, List

from databricks.sdk.service.catalog import PermissionsChange, PermissionsList, Privilege, PrivilegeAssignment


def get_assignment_dict_from_permissions_list(permissions_list: PermissionsList) -> dict[str, list[Privilege]]:
def get_assignment_dict_from_permissions_list(permissions_list: PermissionsList) -> Dict[str, List[Privilege]]:
"""Converts PermissionsList to dict with key of principal and list of associated privileges as value"""
privilige_assignments = permissions_list.privilege_assignments or {}
privilige_assignments = permissions_list.privilege_assignments

if privilige_assignments is None:
return {}

return {
x.principal: [Privilege(y) for y in x.privileges]
for x in privilige_assignments
if permissions_list.privilege_assignments is not None and x.principal is not None and x.privileges is not None
if x.principal is not None and x.privileges is not None
}


def get_assignment_dict_from_privilege_assignments(
privilege_assignments: list[PrivilegeAssignment],
) -> dict[str, list[Privilege]]:
privilege_assignments: List[PrivilegeAssignment],
) -> Dict[str, List[Privilege]]:
"""Converts list of PrivilegeAssignment to dict with key of principal and list of associated privileges as value"""
return {
x.principal: x.privileges for x in privilege_assignments if x.principal is not None and x.privileges is not None
}


def get_permission_changes_principals(
assignments_on_databricks_dict: dict[str, list[Privilege]],
assignments_from_properties_dict: dict[str, list[Privilege]],
assignments_on_databricks_dict: Dict[str, List[Privilege]],
assignments_from_properties_dict: Dict[str, List[Privilege]],
) -> list[PermissionsChange]:
"""See if there are new principals that need to be added"""
permission_changes = []
Expand All @@ -51,9 +53,9 @@ def get_permission_changes_principals(


def get_permission_changes_assignments_changed(
assignments_on_databricks_dict: dict[str, list[Privilege]],
assignments_from_properties_dict: dict[str, list[Privilege]],
) -> list[PermissionsChange]:
assignments_on_databricks_dict: Dict[str, List[Privilege]],
assignments_from_properties_dict: Dict[str, List[Privilege]],
) -> List[PermissionsChange]:
"""See if there are principal assignemnts that need to be updated"""
permission_changes = []
for principal, privileges in assignments_from_properties_dict.items():
Expand All @@ -69,14 +71,14 @@ def get_permission_changes_assignments_changed(


def get_permission_changes(
assignments_on_databricks: PermissionsList, assignments_from_properties: list[PrivilegeAssignment]
) -> list[PermissionsChange]:
assignments_on_databricks: PermissionsList, assignments_from_properties: List[PrivilegeAssignment]
) -> List[PermissionsChange]:
"""Get the changes between the existing grants and the new grants and create PermissionsChange object"""
# Convert to dict for easier lookup
assignments_on_databricks_dict = get_assignment_dict_from_permissions_list(assignments_on_databricks)
assignments_from_properties_dict = get_assignment_dict_from_privilege_assignments(assignments_from_properties)

permission_changes: list[PermissionsChange] = []
permission_changes: List[PermissionsChange] = []
permission_changes += get_permission_changes_principals(
assignments_on_databricks_dict, assignments_from_properties_dict
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from typing import List

from databricks.sdk.service.catalog import PermissionsList, PrivilegeAssignment, SecurableType
from pydantic import BaseModel

Expand All @@ -8,7 +10,7 @@
class VolumePermissionsProperties(BaseModel):
workspace_url: str
volume_name: str
privilege_assignments: list[PrivilegeAssignment] = []
privilege_assignments: List[PrivilegeAssignment] = []


def create_or_update_volume_permissions(
Expand Down

0 comments on commit 7ac3cfd

Please sign in to comment.