public CloudConfig getCloudConfig () {
rwl.readLock ().lock ();
try {
- if (cloudConfigCache.isValidCloudConfig()) {
- return cloudConfigCache.clone ();
- } else {
- return new CloudConfig();
+ if (!cloudConfigCache.isValidCloudConfig()) {
+ // Not ideal, but better than returning an invalid object
+ throw new IllegalStateException("No valid CloudConfig is loaded");
}
+ return cloudConfigCache.clone ();
} finally {
rwl.readLock ().unlock ();
}
// The cache key is "tenantId:cloudId"
private static Map <String, HeatCacheEntry> heatClientCache = new HashMap <> ();
- // Fetch cloud configuration each time (may be cached in CloudConfig class)
- protected CloudConfig cloudConfig;
-
private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
protected MsoJavaProperties msoProps = null;
} catch (MsoPropertiesException e) {
LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. Mso Properties ID not found in cache: " + msoPropID, "", "", MsoLogger.ErrorCode.DataError, "Exception - Mso Properties ID not found in cache", e);
}
- cloudConfig = cloudConfigFactory.getCloudConfig ();
LOGGER.debug("MsoHeatUtils:" + msoPropID);
-
}
+ protected CloudConfigFactory getCloudConfigFactory() {
+ return cloudConfigFactory;
+ }
/**
* keep this old method signature here to maintain backwards compatibility. keep others as well.
}
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
LOGGER.debug ("Query HEAT stack: " + stackName + " in tenant " + tenantId);
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
String stackName,
boolean pollForCompletion) throws MsoException {
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
*/
public List <StackInfo> queryAllStacks (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
Heat heatClient = getHeatClient (cloudSite, tenantId);
}
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
// This could throw MsoTenantNotFound or MsoOpenstackException (both propagated)
import java.util.Map;
import java.util.Optional;
+
+import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.cloud.CloudIdentity;
import org.openecomp.mso.cloud.CloudSite;
import org.openecomp.mso.logger.MsoAlarmLogger;
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
String msoPropID;
- public MsoKeystoneUtils (String msoPropID) {
- super(msoPropID);
+ public MsoKeystoneUtils(String msoPropID, CloudConfigFactory cloudConfigFactory) {
+ super(msoPropID, cloudConfigFactory);
this.msoPropID = msoPropID;
LOGGER.debug("MsoKeyStoneUtils:" + msoPropID);
}
Map <String, String> metadata,
boolean backout) throws MsoException {
// Obtain the cloud site information where we will create the tenant
- Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite(cloudSiteId);
+ Optional<CloudSite> cloudSiteOpt = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId);
if (!cloudSiteOpt.isPresent()) {
LOGGER.error(MessageEnum.RA_CREATE_TENANT_ERR, "MSOCloudSite not found", "", "", MsoLogger.ErrorCode.DataError, "MSOCloudSite not found");
throw new MsoCloudSiteNotFound (cloudSiteId);
*/
public MsoTenant queryTenant (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
*/
public MsoTenant queryTenantByName (String tenantName, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
*/
public boolean deleteTenant (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
// The cache key is "tenantId:cloudId"
private static Map<String,NeutronCacheEntry> neutronClientCache = new HashMap<>();
- // Fetch cloud configuration each time (may be cached in CloudConfig class)
- private CloudConfig cloudConfig;
+ private CloudConfigFactory cloudConfigFactory;
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
private String msoPropID;
};
public MsoNeutronUtils(String msoPropID, CloudConfigFactory cloudConfigFactory) {
- cloudConfig = cloudConfigFactory.getCloudConfig();
+ this.cloudConfigFactory = cloudConfigFactory;
this.msoPropID = msoPropID;
}
+
+ protected CloudConfigFactory getCloudConfigFactory() {
+ return cloudConfigFactory;
+ }
/**
* Create a network with the specified parameters in the given cloud/tenant.
throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
LOGGER.debug("In queryNetwork");
// Obtain the cloud site information
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
public boolean deleteNetwork(String networkId, String tenantId, String cloudSiteId) throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
try {
throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ CloudSite cloudSite = getCloudConfigFactory().getCloudConfig().getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
// Check that the network exists
import java.util.Map;
-import org.openecomp.mso.cloud.CloudConfig;
import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.cloud.CloudIdentity;
import org.openecomp.mso.logger.MessageEnum;
public abstract class MsoTenantUtils extends MsoCommonUtils {
- protected CloudConfigFactory cloudConfigFactory;
+ private CloudConfigFactory cloudConfigFactory;
protected MsoPropertiesFactory msoPropFactory;
protected static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
protected MsoJavaProperties msoProps;
- protected CloudConfig cloudConfig;
- public MsoTenantUtils (String msoPropID) {
- cloudConfigFactory = new CloudConfigFactory();
+ public MsoTenantUtils (String msoPropID, CloudConfigFactory cloudConfigFactory) {
+ this.cloudConfigFactory = cloudConfigFactory;
msoPropFactory = new MsoPropertiesFactory();
- cloudConfig = cloudConfigFactory.getCloudConfig ();
LOGGER.debug("msoTenantUtils:" + msoPropID);
}
}
+ public CloudConfigFactory getCloudConfigFactory() {
+ return cloudConfigFactory;
+ }
+
public abstract String createTenant (String tenantName, String cloudSiteId, Map <String, String> metadata, boolean backout)
throws MsoException;
public class MsoTenantUtilsFactory {
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
- private CloudConfigFactory cloudConfigFactory= new CloudConfigFactory();
- private CloudConfig cloudConfig;
+ private CloudConfigFactory cloudConfigFactory = new CloudConfigFactory();
private String msoPropID;
public MsoTenantUtilsFactory (String msoPropID) {
this.msoPropID = msoPropID;
}
+ public void setCloudConfigFactory(CloudConfigFactory cloudConfigFactory) {
+ this.cloudConfigFactory = cloudConfigFactory;
+ }
+
+ public CloudConfigFactory getCloudConfigFactory() {
+ return cloudConfigFactory;
+ }
+
//based on Cloud IdentityServerType returns ORM or KEYSTONE Utils
public MsoTenantUtils getTenantUtils(String cloudSiteId) throws MsoCloudSiteNotFound {
// Obtain the cloud site information
- cloudConfig = cloudConfigFactory.getCloudConfig();
+ CloudConfig cloudConfig = getCloudConfigFactory().getCloudConfig();
CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
() -> new MsoCloudSiteNotFound(cloudSiteId));
return getTenantUtilsByServerType(cloudSite.getIdentityService().getIdentityServerType().toString());
MsoTenantUtils tenantU = null;
if (CloudIdentity.IdentityServerType.KEYSTONE.toString().equals(serverType)) {
- tenantU = new MsoKeystoneUtils (msoPropID);
+ tenantU = new MsoKeystoneUtils(msoPropID, getCloudConfigFactory());
} else {
try {
- tenantU = CloudIdentity.IdentityServerType.valueOf(serverType).getMsoTenantUtilsClass().getConstructor(String.class).newInstance(msoPropID);
+ tenantU = CloudIdentity.IdentityServerType.valueOf(serverType).getMsoTenantUtilsClass()
+ .getConstructor(String.class, CloudConfigFactory.class).newInstance(msoPropID, getCloudConfigFactory());
} catch (InvocationTargetException | InstantiationException | NoSuchMethodException | IllegalAccessException e) {
throw new RuntimeException("Could not instantiate an MsoTenantUtils class for " + serverType, e);
}
@BeforeClass
public static final void loadClasses() throws MsoCloudIdentityNotFound, MsoPropertiesException {
- ClassLoader classLoader = CloudConfigTest.class.getClassLoader();
- String config = classLoader.getResource("cloud_config.json").toString().substring(5);
- cloudConfigFactory.initializeCloudConfig(config, 1);
+ ClassLoader classLoader = MsoHeatUtilsTest.class.getClassLoader();
+ String cloudConfigJson = classLoader.getResource("cloud_config.json").getPath();
+ cloudConfigFactory.initializeCloudConfig(cloudConfigJson, 1);
msoPropertiesFactory.initializeMsoProperties("NO_PROP", classLoader.getResource("mso.properties").getPath());
msoHeatUtils = new MsoHeatUtils("NO_PROP", msoPropertiesFactory, cloudConfigFactory);
}
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.Response;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound;
private CloudConfigFactory testedObject;
private CloudConfig cloudConfigMock;
+ private CloudConfig savedCloudConfig;
@Before
public void init() throws NoSuchFieldException, IllegalAccessException {
cloudConfigMock = mock(CloudConfig.class);
testedObject = new CloudConfigFactory();
- setCloudConfig();
+ Field field = CloudConfigFactory.class.getDeclaredField(CLOUD_CONFIG_FIELD_NAME);
+ field.setAccessible(true);
+ savedCloudConfig = (CloudConfig) field.get(null);
+ field.set(null, cloudConfigMock);
+ }
+
+ @After
+ public void reset() throws NoSuchFieldException, IllegalAccessException {
+ Field field = CloudConfigFactory.class.getDeclaredField(CLOUD_CONFIG_FIELD_NAME);
+ field.setAccessible(true);
+ field.set(null, savedCloudConfig);
}
@Test
verify(cloudConfigMock).clone();
}
- @Test
- public void getNotValidCloudConfig() {
- when(cloudConfigMock.isValidCloudConfig()).thenReturn(false);
-
- CloudConfig result = testedObject.getCloudConfig();
-
- assertThat(result).isNotNull();
- assertThat(result.getCloudSites()).isEmpty();
- assertThat(result.getIdentityServices()).isEmpty();
- }
-
@Test
public void reload_CloudConfigValid() throws IOException, MsoCloudIdentityNotFound {
when(cloudConfigMock.isValidCloudConfig()).thenReturn(true);
private void setCloudConfig()
throws NoSuchFieldException, IllegalAccessException {
- Field field = testedObject.getClass().getDeclaredField(CLOUD_CONFIG_FIELD_NAME);
- field.setAccessible(true);
- field.set(testedObject, cloudConfigMock);
}
}
\r
import java.util.Map;\r
\r
+import org.openecomp.mso.cloud.CloudConfigFactory;\r
import org.openecomp.mso.cloud.CloudIdentity;\r
import org.openecomp.mso.openstack.beans.MsoTenant;\r
import org.openecomp.mso.openstack.exceptions.MsoCloudSiteNotFound;\r
\r
public class NewServerTypeUtils extends MsoTenantUtils {\r
\r
- /**\r
- * @param msoPropID\r
- */\r
- public NewServerTypeUtils(String msoPropID) {\r
- super(msoPropID);\r
+ public NewServerTypeUtils(String msoPropID, CloudConfigFactory cloudConfigFactory) {\r
+ super(msoPropID, cloudConfigFactory);\r
}\r
\r
@Override\r
import static org.junit.Assert.assertNotNull;\r
import static org.junit.Assert.fail;\r
\r
+import org.junit.BeforeClass;\r
import org.junit.Ignore;\r
import org.junit.Test;\r
+import org.openecomp.mso.cloud.CloudConfigFactory;\r
import org.openecomp.mso.cloud.CloudIdentity;\r
import org.openecomp.mso.cloud.CloudIdentity.IdentityServerType;\r
import org.openecomp.mso.cloud.IdentityServerTypeAbstract;\r
import org.openecomp.mso.openstack.exceptions.MsoException;\r
+import org.openecomp.mso.openstack.utils.MsoKeystoneUtilsTest;\r
\r
public class ServerTypeTest {\r
+ \r
+ @BeforeClass\r
+ public static void init() throws Exception {\r
+ String cloudConfigJson = ServerTypeTest.class.getClassLoader()\r
+ .getResource("cloud_config.json").getPath();\r
+ (new CloudConfigFactory()).initializeCloudConfig(cloudConfigJson, 0);\r
+ }\r
\r
@Test\r
@Ignore // IGNORED FOR 1710 MERGE TO ONAP\r
import org.openecomp.mso.adapters.vdu.VduStateType;\r
import org.openecomp.mso.adapters.vdu.VduStatus;\r
import org.openecomp.mso.cloud.CloudConfig;\r
+import org.openecomp.mso.cloud.CloudConfigFactory;\r
import org.openecomp.mso.cloud.CloudSite;\r
import org.openecomp.mso.cloudify.beans.DeploymentInfo;\r
import org.openecomp.mso.cloudify.beans.DeploymentStatus;\r
CloudSite site = new CloudSite();\r
Optional<CloudSite> opSite = Optional.ofNullable(site);\r
CloudConfig config = Mockito.mock(CloudConfig.class);\r
- heatUtils.cloudConfig = config;\r
+ CloudConfigFactory cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);\r
+ when(cloudConfigFactory.getCloudConfig()).thenReturn(config);\r
+ when(heatUtils.getCloudConfigFactory()).thenReturn(cloudConfigFactory);\r
CloudInfo cloudInfo = new CloudInfo();\r
cloudInfo.setCloudSiteId("cloudSiteId");\r
cloudInfo.setTenantId("tenantId");\r
import java.util.HashMap;\r
import java.util.Map;\r
import org.junit.Assert;\r
+import org.junit.BeforeClass;\r
import org.junit.Test;\r
import org.junit.runner.RunWith;\r
import org.mockito.Mock;\r
+import org.mockito.Mockito;\r
+import org.openecomp.mso.cloud.CloudConfig;\r
+import org.openecomp.mso.cloud.CloudConfigFactory;\r
import org.openecomp.mso.cloud.CloudIdentity;\r
import org.openecomp.mso.cloud.CloudSite;\r
import org.openecomp.mso.openstack.beans.MsoTenant;\r
@Mock\r
MsoJavaProperties msoProps;\r
\r
+ @Mock\r
+ private static CloudConfigFactory cloudConfigFactory;\r
+\r
+ @BeforeClass\r
+ public static final void prepare () {\r
+ cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);\r
+ CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);\r
+ Mockito.when(cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);\r
+ }\r
+\r
@Test\r
public void testcreateTenant() throws MsoException{\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
Map<String,String>metadata=new HashMap<>();\r
metadata.put("1", "value");\r
tenant = mock(Tenant.class);\r
}\r
@Test\r
public void testdeleteTenant() throws MsoException{\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
doReturn(true).when(msk).deleteTenant("tenantId", "cloudSiteId");\r
assertTrue(msk.deleteTenant("tenantId", "cloudSiteId"));\r
}\r
@Test\r
public void testfindTenantByName() throws Exception{\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
doReturn(null).when(msk).findTenantByName(adminClient, "tenantName");\r
assertNull(msk.findTenantByName(adminClient, "tenantName"));\r
}\r
@Test\r
public void testqueryTenant() throws MsoException{\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
Map<String,String>metadata=new HashMap<>();\r
metadata.put("1", "value"); \r
mst = mock(MsoTenant.class);\r
\r
@Test\r
public void testqueryTenantByName()throws MsoException {\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
Map<String,String>metadata=new HashMap<>();\r
metadata.put("1", "value"); \r
mst = mock(MsoTenant.class);\r
public void testgetKeystoneAdminClient() throws MsoException{\r
cloudIdentity = mock(CloudIdentity.class);\r
Keystone keystone = new Keystone (cloudIdentity.getKeystoneUrl ("region", "msoPropID"));\r
- MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID"));\r
+ MsoKeystoneUtils msk = PowerMockito.spy(new MsoKeystoneUtils("ID", cloudConfigFactory));\r
doReturn(keystone).when(msk).getKeystoneAdminClient(cs);\r
assertNotNull(msk.getKeystoneAdminClient(cs));\r
}\r
- \r
- }\r
+}
\ No newline at end of file
private static final String NEUTRON_MODE = "NEUTRON";
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger ();
- protected CloudConfig cloudConfig;
/**
* Health Check web method. Does nothing but return to show the adapter is deployed.
public MsoNetworkAdapterImpl(MsoPropertiesFactory msoPropFactory,CloudConfigFactory cloudConfigFact) {
this.msoPropertiesFactory = msoPropFactory;
this.cloudConfigFactory=cloudConfigFact;
- cloudConfig = cloudConfigFactory.getCloudConfig ();
neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
heat = new MsoHeatUtils(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory, cloudConfigFactory);
heatWithUpdate = new MsoHeatUtilsWithUpdate(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,
// If the tenant doesn’t exist, the Heat calls will fail anyway (when the HeatUtils try to obtain a token).
// So this is just catching that error in a bit more obvious way up front.
- cloudConfig = cloudConfigFactory.getCloudConfig ();
+ CloudConfig cloudConfig = getCloudConfigFactory().getCloudConfig ();
Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite(cloudSiteId);
if (!cloudSiteOpt.isPresent())
{
networkRollback.setTenantId (tenantId);
networkRollback.setMsoRequest (msoRequest);
- cloudConfig = cloudConfigFactory.getCloudConfig ();
+ CloudConfig cloudConfig = getCloudConfigFactory().getCloudConfig ();
Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite (cloudSiteId);
if (!cloudSiteOpt.isPresent()) {
String error = "UpdateNetwork: Configuration Error. Stack " + networkName + " in "
throw new NetworkException (error, MsoExceptionCategory.USERDATA);
}
- cloudConfig = cloudConfigFactory.getCloudConfig();
+ CloudConfig cloudConfig = getCloudConfigFactory().getCloudConfig();
Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite(cloudSiteId);
if (!cloudSiteOpt.isPresent())
{
return CatalogDatabase.getInstance();
}
+ public CloudConfigFactory getCloudConfigFactory() {
+ return cloudConfigFactory;
+ }
+
/**
* This web service endpoint will rollback a previous Create VNF operation.
* A rollback object is returned to the client in a successful creation
// Rolling back a newly created network, so delete it.
if (NEUTRON_MODE.equals(mode)) {
// Use MsoNeutronUtils for all NEUTRON commands
- MsoNeutronUtils neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
+ MsoNeutronUtils neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, getCloudConfigFactory());
long deleteNetworkStarttime = System.currentTimeMillis();
try {
// The deleteNetwork function in MsoNeutronUtils returns success if the network
} else { // DEFAULT to if ("HEAT".equals (mode))
// Use MsoHeatUtils for all HEAT commands
MsoHeatUtils heat = new MsoHeatUtils(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,
- cloudConfigFactory);
+ getCloudConfigFactory());
long deleteStackStarttime = System.currentTimeMillis();
try {
// The deleteStack function in MsoHeatUtils returns success if the stack
import org.mockito.Mock;
import org.mockito.Mockito;
import org.openecomp.mso.adapters.network.exceptions.NetworkException;
+import org.openecomp.mso.cloud.CloudConfig;
+import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.db.catalog.CatalogDatabase;
import org.openecomp.mso.db.catalog.beans.NetworkResource;
import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization;
@Mock
private static CatalogDatabase db;
+
+ @Mock
+ private static CloudConfigFactory cloudConfigFactory;
@BeforeClass
public static final void prepare () {
adapter = Mockito.spy (new MsoNetworkAdapterImpl ());
db = Mockito.mock (CatalogDatabase.class);
+ cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
NetworkResource networkResource = new NetworkResource ();
NetworkResourceCustomization nrc = new NetworkResourceCustomization();
nrc.setNetworkResource(networkResource);
networkResource.setOrchestrationMode ("toto");
Mockito.when (db.getNetworkResource ("PROVIDER")).thenReturn (networkResource);
Mockito.when (adapter.getCatalogDB ()).thenReturn (db);
+ CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+ Mockito.when(cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+ Mockito.when (adapter.getCloudConfigFactory()).thenReturn(cloudConfigFactory);
}
@Test
WebServiceContext wsContext;
private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
+
+ protected MsoTenantUtilsFactory getTenantUtilsFactory() {
+ return tFactory;
+ }
+
/**
* Health Check web method. Does nothing but return to show the adapter is deployed.
*/
*/
package org.openecomp.mso.adapters.tenant;
+import org.junit.BeforeClass;
import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
import org.openecomp.mso.adapters.tenantrest.TenantRollback;
+import org.openecomp.mso.cloud.CloudConfig;
+import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.entity.MsoRequest;
import javax.validation.constraints.Null;
import java.util.HashMap;
public class MsoTenantAdapterImplTest {
+
+ @Mock
+ private static MsoTenantAdapterImpl msoTenantAdapter;
+ @Mock
+ private static CloudConfigFactory cloudConfigFactory;
+
// TODO: following test case is done for coverage
// later it should be modified for proper test.
-
- MsoTenantAdapterImpl msoTenantAdapter = new MsoTenantAdapterImpl();
+
+ @BeforeClass
+ public static final void prepare () {
+ msoTenantAdapter = Mockito.spy (new MsoTenantAdapterImpl());
+ cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+ CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+ Mockito.when(cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+ msoTenantAdapter.getTenantUtilsFactory().setCloudConfigFactory(cloudConfigFactory);
+ }
@Test
public void healthCheck() throws Exception {
import org.openecomp.mso.adapters.vnf.exceptions.VnfAlreadyExists;
import org.openecomp.mso.adapters.vnf.exceptions.VnfException;
-import org.openecomp.mso.cloud.CloudConfig;
import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.cloud.CloudSite;
import org.openecomp.mso.cloudify.beans.DeploymentInfo;
public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
CloudConfigFactory cloudConfigFactory = new CloudConfigFactory();
- protected CloudConfig cloudConfig = cloudConfigFactory.getCloudConfig();
MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory();
try {
// KLUDGE - Cloudify requires Tenant Name for Openstack. We have the ID.
// Go directly to Keystone until APIs could be updated to supply the name.
- MsoKeystoneUtils keystone = new MsoKeystoneUtils(MSO_PROP_VNF_ADAPTER);
+ MsoKeystoneUtils keystone = new MsoKeystoneUtils(MSO_PROP_VNF_ADAPTER, cloudConfigFactory);
MsoTenant msoTenant = keystone.queryTenant(tenantId, cloudSiteId);
String tenantName = (msoTenant != null? msoTenant.getTenantName() : tenantId);
// Perform a version check against cloudSite
// Obtain the cloud site information where we will create the VF Module
- Optional<CloudSite> cloudSite = cloudConfig.getCloudSite (cloudSiteId);
+ Optional<CloudSite> cloudSite = cloudConfigFactory.getCloudConfig().getCloudSite(cloudSiteId);
if (!cloudSite.isPresent()) {
throw new VnfException (new MsoCloudSiteNotFound (cloudSiteId));
}
try {
// KLUDGE - Cloudify requires Tenant Name for Openstack. We have the ID.
// Go directly to Keystone until APIs could be updated to supply the name.
- MsoKeystoneUtils keystone = new MsoKeystoneUtils(MSO_PROP_VNF_ADAPTER);
+ MsoKeystoneUtils keystone = new MsoKeystoneUtils(MSO_PROP_VNF_ADAPTER, cloudConfigFactory);
MsoTenant msoTenant = keystone.queryTenant(tenantId, cloudSiteId);
String tenantName = (msoTenant != null? msoTenant.getTenantName() : tenantId);