@Test void getUmsUsersStateMapBulk() { setupMocksForBulk(); Map<String, UmsUsersState> umsUsersStateMap = underTest.get( ACCOUNT_ID, List.of(ENVIRONMENT_CRN), Optional.empty()); verifyUmsUsersStateBuilderMap(umsUsersStateMap); }
public Map<String, UmsUsersState> get( String accountId, Collection<String> environmentCrns, Optional<String> requestIdOptional) { List<String> environmentCrnList = List.copyOf(environmentCrns); UserManagementProto.GetUserSyncStateModelResponse userSyncStateModel = grpcUmsClient.getUserSyncStateModel( INTERNAL_ACTOR_CRN, accountId, umsRightsChecksFactory.get(environmentCrnList), requestIdOptional); Map<String, FmsGroup> groups = convertGroupsToFmsGroups(userSyncStateModel.getGroupList()); Map<UserManagementProto.WorkloadAdministrationGroup, FmsGroup> wags = convertWagsToFmsGroups(userSyncStateModel.getWorkloadAdministrationGroupList()); List<String> requestedWorkloadUsernames = userSyncStateModel.getActorList().stream() .map(UserManagementProto.UserSyncActor::getActorDetails) .map(UserManagementProto.UserSyncActorDetails::getWorkloadUsername) .collect(Collectors.toList()); Map<String, UmsUsersState> umsUsersStateMap = Maps.newHashMap(); IntStream.range(0, environmentCrnList.size()) .forEach(environmentIndex -> { String environmentCrn = environmentCrnList.get(environmentIndex); UmsUsersState.Builder umsUsersStateBuilder = UmsUsersState.newBuilder() .setWorkloadAdministrationGroups(wags.values()); UsersState.Builder usersStateBuilder = UsersState.newBuilder(); addRequestedWorkloadUsernames(umsUsersStateBuilder, requestedWorkloadUsernames); addGroupsToUsersStateBuilder(usersStateBuilder, groups.values()); Set<String> wagNamesForOtherEnvironments = addWagsToUsersStateBuilder(usersStateBuilder, wags, environmentCrn); ActorHandler actorHandler = ActorHandler.newBuilder() .withFmsGroupConverter(getFmsGroupConverter()) .withUmsUsersStateBuilder(umsUsersStateBuilder) .withUsersStateBuilder(usersStateBuilder) .withCrnToFmsGroup(groups) .withWagNamesForOtherEnvironments(wagNamesForOtherEnvironments) .build(); addActorsToUmsUsersStateBuilder( environmentIndex, userSyncStateModel, actorHandler); addServicePrincipalsCloudIdentities( umsUsersStateBuilder, grpcUmsClient.listServicePrincipalCloudIdentities( INTERNAL_ACTOR_CRN, accountId, environmentCrn, requestIdOptional)); umsUsersStateBuilder.setUsersState(usersStateBuilder.build()); umsUsersStateMap.put(environmentCrn, umsUsersStateBuilder.build()); }); return umsUsersStateMap; }
BulkUmsUsersStateProvider extends BaseUmsUsersStateProvider { public Map<String, UmsUsersState> get( String accountId, Collection<String> environmentCrns, Optional<String> requestIdOptional) { List<String> environmentCrnList = List.copyOf(environmentCrns); UserManagementProto.GetUserSyncStateModelResponse userSyncStateModel = grpcUmsClient.getUserSyncStateModel( INTERNAL_ACTOR_CRN, accountId, umsRightsChecksFactory.get(environmentCrnList), requestIdOptional); Map<String, FmsGroup> groups = convertGroupsToFmsGroups(userSyncStateModel.getGroupList()); Map<UserManagementProto.WorkloadAdministrationGroup, FmsGroup> wags = convertWagsToFmsGroups(userSyncStateModel.getWorkloadAdministrationGroupList()); List<String> requestedWorkloadUsernames = userSyncStateModel.getActorList().stream() .map(UserManagementProto.UserSyncActor::getActorDetails) .map(UserManagementProto.UserSyncActorDetails::getWorkloadUsername) .collect(Collectors.toList()); Map<String, UmsUsersState> umsUsersStateMap = Maps.newHashMap(); IntStream.range(0, environmentCrnList.size()) .forEach(environmentIndex -> { String environmentCrn = environmentCrnList.get(environmentIndex); UmsUsersState.Builder umsUsersStateBuilder = UmsUsersState.newBuilder() .setWorkloadAdministrationGroups(wags.values()); UsersState.Builder usersStateBuilder = UsersState.newBuilder(); addRequestedWorkloadUsernames(umsUsersStateBuilder, requestedWorkloadUsernames); addGroupsToUsersStateBuilder(usersStateBuilder, groups.values()); Set<String> wagNamesForOtherEnvironments = addWagsToUsersStateBuilder(usersStateBuilder, wags, environmentCrn); ActorHandler actorHandler = ActorHandler.newBuilder() .withFmsGroupConverter(getFmsGroupConverter()) .withUmsUsersStateBuilder(umsUsersStateBuilder) .withUsersStateBuilder(usersStateBuilder) .withCrnToFmsGroup(groups) .withWagNamesForOtherEnvironments(wagNamesForOtherEnvironments) .build(); addActorsToUmsUsersStateBuilder( environmentIndex, userSyncStateModel, actorHandler); addServicePrincipalsCloudIdentities( umsUsersStateBuilder, grpcUmsClient.listServicePrincipalCloudIdentities( INTERNAL_ACTOR_CRN, accountId, environmentCrn, requestIdOptional)); umsUsersStateBuilder.setUsersState(usersStateBuilder.build()); umsUsersStateMap.put(environmentCrn, umsUsersStateBuilder.build()); }); return umsUsersStateMap; } }
BulkUmsUsersStateProvider extends BaseUmsUsersStateProvider { public Map<String, UmsUsersState> get( String accountId, Collection<String> environmentCrns, Optional<String> requestIdOptional) { List<String> environmentCrnList = List.copyOf(environmentCrns); UserManagementProto.GetUserSyncStateModelResponse userSyncStateModel = grpcUmsClient.getUserSyncStateModel( INTERNAL_ACTOR_CRN, accountId, umsRightsChecksFactory.get(environmentCrnList), requestIdOptional); Map<String, FmsGroup> groups = convertGroupsToFmsGroups(userSyncStateModel.getGroupList()); Map<UserManagementProto.WorkloadAdministrationGroup, FmsGroup> wags = convertWagsToFmsGroups(userSyncStateModel.getWorkloadAdministrationGroupList()); List<String> requestedWorkloadUsernames = userSyncStateModel.getActorList().stream() .map(UserManagementProto.UserSyncActor::getActorDetails) .map(UserManagementProto.UserSyncActorDetails::getWorkloadUsername) .collect(Collectors.toList()); Map<String, UmsUsersState> umsUsersStateMap = Maps.newHashMap(); IntStream.range(0, environmentCrnList.size()) .forEach(environmentIndex -> { String environmentCrn = environmentCrnList.get(environmentIndex); UmsUsersState.Builder umsUsersStateBuilder = UmsUsersState.newBuilder() .setWorkloadAdministrationGroups(wags.values()); UsersState.Builder usersStateBuilder = UsersState.newBuilder(); addRequestedWorkloadUsernames(umsUsersStateBuilder, requestedWorkloadUsernames); addGroupsToUsersStateBuilder(usersStateBuilder, groups.values()); Set<String> wagNamesForOtherEnvironments = addWagsToUsersStateBuilder(usersStateBuilder, wags, environmentCrn); ActorHandler actorHandler = ActorHandler.newBuilder() .withFmsGroupConverter(getFmsGroupConverter()) .withUmsUsersStateBuilder(umsUsersStateBuilder) .withUsersStateBuilder(usersStateBuilder) .withCrnToFmsGroup(groups) .withWagNamesForOtherEnvironments(wagNamesForOtherEnvironments) .build(); addActorsToUmsUsersStateBuilder( environmentIndex, userSyncStateModel, actorHandler); addServicePrincipalsCloudIdentities( umsUsersStateBuilder, grpcUmsClient.listServicePrincipalCloudIdentities( INTERNAL_ACTOR_CRN, accountId, environmentCrn, requestIdOptional)); umsUsersStateBuilder.setUsersState(usersStateBuilder.build()); umsUsersStateMap.put(environmentCrn, umsUsersStateBuilder.build()); }); return umsUsersStateMap; }  }
BulkUmsUsersStateProvider extends BaseUmsUsersStateProvider { public Map<String, UmsUsersState> get( String accountId, Collection<String> environmentCrns, Optional<String> requestIdOptional) { List<String> environmentCrnList = List.copyOf(environmentCrns); UserManagementProto.GetUserSyncStateModelResponse userSyncStateModel = grpcUmsClient.getUserSyncStateModel( INTERNAL_ACTOR_CRN, accountId, umsRightsChecksFactory.get(environmentCrnList), requestIdOptional); Map<String, FmsGroup> groups = convertGroupsToFmsGroups(userSyncStateModel.getGroupList()); Map<UserManagementProto.WorkloadAdministrationGroup, FmsGroup> wags = convertWagsToFmsGroups(userSyncStateModel.getWorkloadAdministrationGroupList()); List<String> requestedWorkloadUsernames = userSyncStateModel.getActorList().stream() .map(UserManagementProto.UserSyncActor::getActorDetails) .map(UserManagementProto.UserSyncActorDetails::getWorkloadUsername) .collect(Collectors.toList()); Map<String, UmsUsersState> umsUsersStateMap = Maps.newHashMap(); IntStream.range(0, environmentCrnList.size()) .forEach(environmentIndex -> { String environmentCrn = environmentCrnList.get(environmentIndex); UmsUsersState.Builder umsUsersStateBuilder = UmsUsersState.newBuilder() .setWorkloadAdministrationGroups(wags.values()); UsersState.Builder usersStateBuilder = UsersState.newBuilder(); addRequestedWorkloadUsernames(umsUsersStateBuilder, requestedWorkloadUsernames); addGroupsToUsersStateBuilder(usersStateBuilder, groups.values()); Set<String> wagNamesForOtherEnvironments = addWagsToUsersStateBuilder(usersStateBuilder, wags, environmentCrn); ActorHandler actorHandler = ActorHandler.newBuilder() .withFmsGroupConverter(getFmsGroupConverter()) .withUmsUsersStateBuilder(umsUsersStateBuilder) .withUsersStateBuilder(usersStateBuilder) .withCrnToFmsGroup(groups) .withWagNamesForOtherEnvironments(wagNamesForOtherEnvironments) .build(); addActorsToUmsUsersStateBuilder( environmentIndex, userSyncStateModel, actorHandler); addServicePrincipalsCloudIdentities( umsUsersStateBuilder, grpcUmsClient.listServicePrincipalCloudIdentities( INTERNAL_ACTOR_CRN, accountId, environmentCrn, requestIdOptional)); umsUsersStateBuilder.setUsersState(usersStateBuilder.build()); umsUsersStateMap.put(environmentCrn, umsUsersStateBuilder.build()); }); return umsUsersStateMap; }  Map<String, UmsUsersState> get(
            String accountId, Collection<String> environmentCrns,
            Optional<String> requestIdOptional); }
BulkUmsUsersStateProvider extends BaseUmsUsersStateProvider { public Map<String, UmsUsersState> get( String accountId, Collection<String> environmentCrns, Optional<String> requestIdOptional) { List<String> environmentCrnList = List.copyOf(environmentCrns); UserManagementProto.GetUserSyncStateModelResponse userSyncStateModel = grpcUmsClient.getUserSyncStateModel( INTERNAL_ACTOR_CRN, accountId, umsRightsChecksFactory.get(environmentCrnList), requestIdOptional); Map<String, FmsGroup> groups = convertGroupsToFmsGroups(userSyncStateModel.getGroupList()); Map<UserManagementProto.WorkloadAdministrationGroup, FmsGroup> wags = convertWagsToFmsGroups(userSyncStateModel.getWorkloadAdministrationGroupList()); List<String> requestedWorkloadUsernames = userSyncStateModel.getActorList().stream() .map(UserManagementProto.UserSyncActor::getActorDetails) .map(UserManagementProto.UserSyncActorDetails::getWorkloadUsername) .collect(Collectors.toList()); Map<String, UmsUsersState> umsUsersStateMap = Maps.newHashMap(); IntStream.range(0, environmentCrnList.size()) .forEach(environmentIndex -> { String environmentCrn = environmentCrnList.get(environmentIndex); UmsUsersState.Builder umsUsersStateBuilder = UmsUsersState.newBuilder() .setWorkloadAdministrationGroups(wags.values()); UsersState.Builder usersStateBuilder = UsersState.newBuilder(); addRequestedWorkloadUsernames(umsUsersStateBuilder, requestedWorkloadUsernames); addGroupsToUsersStateBuilder(usersStateBuilder, groups.values()); Set<String> wagNamesForOtherEnvironments = addWagsToUsersStateBuilder(usersStateBuilder, wags, environmentCrn); ActorHandler actorHandler = ActorHandler.newBuilder() .withFmsGroupConverter(getFmsGroupConverter()) .withUmsUsersStateBuilder(umsUsersStateBuilder) .withUsersStateBuilder(usersStateBuilder) .withCrnToFmsGroup(groups) .withWagNamesForOtherEnvironments(wagNamesForOtherEnvironments) .build(); addActorsToUmsUsersStateBuilder( environmentIndex, userSyncStateModel, actorHandler); addServicePrincipalsCloudIdentities( umsUsersStateBuilder, grpcUmsClient.listServicePrincipalCloudIdentities( INTERNAL_ACTOR_CRN, accountId, environmentCrn, requestIdOptional)); umsUsersStateBuilder.setUsersState(usersStateBuilder.build()); umsUsersStateMap.put(environmentCrn, umsUsersStateBuilder.build()); }); return umsUsersStateMap; }  Map<String, UmsUsersState> get(
            String accountId, Collection<String> environmentCrns,
            Optional<String> requestIdOptional);  }