/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.usermanagement.setup; import com.emc.storageos.model.NamedRelatedResourceRep; import com.emc.storageos.model.vdc.VirtualDataCenterRestRep; import com.emc.storageos.usermanagement.model.RoleOrAcl; import com.emc.storageos.usermanagement.util.ViPRClientHelper; import com.emc.vipr.client.ViPRCoreClient; import com.emc.vipr.client.core.VirtualDataCenters; import org.junit.AfterClass; import org.junit.BeforeClass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; public class GeoMode extends TenantMode { private static Logger logger = LoggerFactory.getLogger(GeoMode.class); private static List<VirtualDataCenterRestRep> vdcList = new ArrayList<VirtualDataCenterRestRep>(); @BeforeClass public static void setupGeoTenantModeBase() throws Exception { VirtualDataCenters vdcs = superUserClient.vdcs(); List<NamedRelatedResourceRep> list = vdcs.list(); for (NamedRelatedResourceRep vdc : list) { VirtualDataCenterRestRep restRep = superUserClient.vdcs().get(vdc.getId()); vdcList.add(restRep); } if (vdcList.size() < 2) { String errorMsg = "env check fail, only one VDC, Geo test need at least 2 vdcs"; logger.error(errorMsg); throw new Exception(errorMsg); } logger.info("grant " + superUser + " security admin in both VDCs"); ViPRCoreClient vdc1RootClient = new ViPRCoreClient(getVdcEndpointByIndex(0), true) .withLogin("root", rootPassword); ViPRClientHelper vdc1Helper = new ViPRClientHelper(vdc1RootClient); vdc1Helper.addRoleAssignment(null, superUser, RoleOrAcl.SecurityAdmin.toString()); vdc1Helper.addRoleAssignment(null, superUser, RoleOrAcl.SystemAdmin.toString()); vdc1Helper.addRoleAssignment(null, superUser, RoleOrAcl.SystemMonitor.toString()); vdc1RootClient.auth().logout(); ViPRCoreClient vdc2RootClient = new ViPRCoreClient(getVdcEndpointByIndex(1), true) .withLogin("root", rootPassword); ViPRClientHelper vdc2Helper = new ViPRClientHelper(vdc2RootClient); vdc2Helper.addRoleAssignment(null, superUser, RoleOrAcl.SecurityAdmin.toString()); vdc2Helper.addRoleAssignment(null, superUser, RoleOrAcl.SystemAdmin.toString()); vdc2Helper.addRoleAssignment(null, superUser, RoleOrAcl.SystemMonitor.toString()); vdc2RootClient.auth().logout(); } @AfterClass public static void teardownGeoTenantModeBase() throws Exception { } public static String getVdcEndpointByIndex(int index) { if (vdcList.size() >= index) { return vdcList.get(index).getApiEndpoint(); } return null; } }