Skip to content

Commit

Permalink
fix: enable permissions v2 by default and test some nightly int tests…
Browse files Browse the repository at this point in the history
… passing (#3922)
  • Loading branch information
jkwatson-verta authored Jul 6, 2023
1 parent 6f988c3 commit b8423b7
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public abstract class Config {
private OpenTelemetry openTelemetry;
private ArtifactStoreConfig artifactStoreConfig;

private boolean permissionV2Enabled = false;
private boolean permissionV2Enabled = true;

public static <T> T getInstance(Class<T> configType, String configFile)
throws InternalErrorException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -626,8 +626,7 @@ public void k_getDatasetByNameWithWorkspace() {
organizationId,
groupIdUser1,
roleIdUser1,
testUser2.getVertaInfo().getUsername(),
Optional.empty());
testUser2.getVertaInfo().getUsername());
workspaceNameUser2 = organizationId + "/" + testUser1Workspace.getName();
}

Expand Down
109 changes: 37 additions & 72 deletions backend/server/src/test/java/ai/verta/modeldb/ModeldbTestSetup.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,63 +17,11 @@
import ai.verta.modeldb.reconcilers.SoftDeleteProjects;
import ai.verta.modeldb.versioning.Repository;
import ai.verta.modeldb.versioning.VersioningServiceGrpc;
import ai.verta.uac.Action;
import ai.verta.uac.ActionTypeV2;
import ai.verta.uac.Actions;
import ai.verta.uac.AddUserV2;
import ai.verta.uac.AuthzServiceGrpc;
import ai.verta.uac.CollaboratorServiceGrpc;
import ai.verta.uac.DeleteOrganizationV2;
import ai.verta.uac.DeleteResources;
import ai.verta.uac.Entities;
import ai.verta.uac.GetAllowedEntities;
import ai.verta.uac.GetResources;
import ai.verta.uac.GetResourcesResponseItem;
import ai.verta.uac.GetSelfAllowedActionsBatch;
import ai.verta.uac.GetSelfAllowedResources;
import ai.verta.uac.GetUser;
import ai.verta.uac.GetUsers;
import ai.verta.uac.GetUsersFuzzy;
import ai.verta.uac.GetWorkspaceById;
import ai.verta.uac.GetWorkspaceByName;
import ai.verta.uac.GroupServiceGrpc;
import ai.verta.uac.GroupV2;
import ai.verta.uac.IsSelfAllowed;
import ai.verta.uac.ListMyOrganizations;
import ai.verta.uac.*;
import ai.verta.uac.ModelDBActionEnum.ModelDBServiceActions;
import ai.verta.uac.OrgAdminV2;
import ai.verta.uac.OrganizationServiceGrpc;
import ai.verta.uac.OrganizationServiceV2Grpc;
import ai.verta.uac.OrganizationV2;
import ai.verta.uac.Permission;
import ai.verta.uac.ResourceType;
import ai.verta.uac.ResourceTypeV2;
import ai.verta.uac.ResourceVisibility;
import ai.verta.uac.Resources;
import ai.verta.uac.RoleResourceActions;
import ai.verta.uac.RoleServiceGrpc;
import ai.verta.uac.RoleServiceV2Grpc;
import ai.verta.uac.RoleV2;
import ai.verta.uac.ServiceEnum.Service;
import ai.verta.uac.SetGroup;
import ai.verta.uac.SetOrganizationV2;
import ai.verta.uac.SetResource;
import ai.verta.uac.SetRoleBinding;
import ai.verta.uac.SetRoleV2;
import ai.verta.uac.SetWorkspaceV2;
import ai.verta.uac.UACServiceGrpc;
import ai.verta.uac.UserInfo;
import ai.verta.uac.UserServiceV2Grpc;
import ai.verta.uac.VertaUserInfo;
import ai.verta.uac.Workspace;
import ai.verta.uac.WorkspaceServiceGrpc;
import ai.verta.uac.WorkspaceServiceV2Grpc;
import ai.verta.uac.WorkspaceV2;
import com.google.common.util.concurrent.Futures;
import io.grpc.Context;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -107,6 +55,7 @@ public abstract class ModeldbTestSetup {
protected WorkspaceV2 testUser1Workspace;

protected String organizationId;
private OrganizationV2 organizationV2;
protected String groupIdUser1;
protected String roleIdUser1;

Expand Down Expand Up @@ -277,7 +226,8 @@ public void initializeChannelBuilderAndExternalServiceStubs() {
.build();
organizationServiceV2BlockingStub =
OrganizationServiceV2Grpc.newBlockingStub(authServiceChannelServiceUser);
organizationId = createAndGetOrganization();
organizationV2 = createAndGetOrganization();
organizationId = organizationV2.getId();

addTestUsersInOrganization(authServiceChannelServiceUser, organizationId);

Expand All @@ -298,8 +248,7 @@ public void initializeChannelBuilderAndExternalServiceStubs() {
organizationId,
groupIdUser1,
roleIdUser1,
testUser1.getVertaInfo().getUsername(),
Optional.empty());
testUser1.getVertaInfo().getUsername());
}
} else {
serviceAccountUser =
Expand Down Expand Up @@ -350,7 +299,18 @@ public void initializeChannelBuilderAndExternalServiceStubs() {
LOGGER.trace("Test service infrastructure config complete.");
}

protected String createAndGetOrganization() {
protected OrganizationV2 createAndGetOrganization() {
if (!isRunningIsolated()) {
try {
GetOrganizationByNameV2.Response existingVertaOrg =
organizationServiceV2BlockingStub.getOrganizationByName(
GetOrganizationByNameV2.newBuilder().setOrgName("Verta").build());
return existingVertaOrg.getOrganization();
} catch (Exception e) {
LOGGER.info("Verta org does not exist...creating new organization to test with");
}
}

var organizationResponse =
organizationServiceV2BlockingStub.setOrganization(
SetOrganizationV2.newBuilder()
Expand All @@ -363,27 +323,23 @@ protected String createAndGetOrganization() {
.build())
.build())
.build());
return organizationResponse.getOrganization().getId();
return organizationResponse.getOrganization();
}

private void removeOrganizationFromUAC() {
organizationServiceV2BlockingStub.deleteOrganization(
DeleteOrganizationV2.newBuilder().setOrgId(organizationId).build());
if (!organizationV2.getName().equals("Verta")) {
organizationServiceV2BlockingStub.deleteOrganization(
DeleteOrganizationV2.newBuilder().setOrgId(organizationId).build());
}
}

private void addTestUsersInOrganization(
ManagedChannel authServiceChannelServiceUser, String organizationId) {
var userStub = UserServiceV2Grpc.newBlockingStub(authServiceChannelServiceUser);
userStub.addUser(
AddUserV2.newBuilder()
.setOrgId(organizationId)
.setUserId(testUser1.getVertaInfo().getUserId())
.build());
AddUserV2.newBuilder().setOrgId(organizationId).setEmail(testUser1.getEmail()).build());
userStub.addUser(
AddUserV2.newBuilder()
.setOrgId(organizationId)
.setUserId(testUser2.getVertaInfo().getUserId())
.build());
AddUserV2.newBuilder().setOrgId(organizationId).setEmail(testUser2.getEmail()).build());
}

protected String createAndGetGroup(
Expand Down Expand Up @@ -432,16 +388,25 @@ protected WorkspaceV2 createWorkspaceAndRoleForUser(
String organizationId,
String groupId,
String roleId,
String username,
Optional<Long> workspaceId) {
String username) {
WorkspaceV2.Builder workspaceBuilder =
WorkspaceV2.newBuilder()
.setName(username)
.setOrgId(organizationId)
.setNamespace("namespace")
.addPermissions(Permission.newBuilder().setGroupId(groupId).setRoleId(roleId).build());
workspaceId.ifPresent(workspaceBuilder::setId);
var workspaceStub = WorkspaceServiceV2Grpc.newBlockingStub(authServiceChannelServiceUser);
Optional<WorkspaceV2> existingWorkspace =
workspaceStub
.searchWorkspaces(SearchWorkspacesV2.newBuilder().setOrgId(organizationId).build())
.getWorkspacesList()
.stream()
.filter(workspaceV2 -> workspaceV2.getName().equals(username))
.findFirst();
if (existingWorkspace.isPresent()) {
return existingWorkspace.get();
}

var testUserWorkspace =
workspaceStub
.setWorkspace(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1857,8 +1857,7 @@ public void k_getProjectByNameWithWorkspace() {
organizationId,
groupIdUser,
roleIdUser,
testUser2.getVertaInfo().getUsername(),
Optional.empty());
testUser2.getVertaInfo().getUsername());
createProjectRequest =
createProjectRequest.toBuilder()
.setWorkspaceName(organizationId + "/" + testUserWorkspace.getName())
Expand Down

2 comments on commit b8423b7

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docker Tag: main-2023-07-06T19-38-55--b8423b7

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Total coverage (common): 15.05
Total coverage (server): 61.6

Changed Files coverage (common): coverage 0
Changed Files coverage (server): 100

Please sign in to comment.