/*
* ******************************************************************************
* * Copyright (c) 2012 GigaSpaces Technologies Ltd. All rights reserved
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
* ******************************************************************************
*/
package org.cloudifysource.esc.driver.provisioning.softlayer;
import junit.framework.Assert;
import org.apache.commons.lang.StringUtils;
import org.cloudifysource.domain.cloud.Cloud;
import org.cloudifysource.domain.cloud.compute.ComputeTemplate;
import org.cloudifysource.esc.driver.provisioning.jclouds.softlayer.SoftlayerProvisioningDriver;
import org.jclouds.compute.ComputeService;
import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.domain.ComputeMetadata;
import org.jclouds.compute.domain.NodeMetadata;
import org.junit.Ignore;
import org.junit.Test;
import java.util.Set;
/**
* Test functionality of {@link org.cloudifysource.esc.driver.provisioning.jclouds.softlayer.SoftlayerProvisioningDriver}
*
* @author Eli Polonsky
* @since 2.7.0
*/
public class SoftlayerProvisioningDriverTest {
/**
* Test that the correct module was setup for softlayer.
* This module is a one that does not return location, image, and hardware in node meta data.
*
* Since this is a live test, we don't run it in travis.
*
* @throws Exception
*/
@Ignore
@Test
public void testSetupModules() throws Exception {
SoftlayerProvisioningDriver driver = new SoftlayerProvisioningDriver();
Cloud cloud = createCloud();
driver.setCloudTemplateName("dummy");
driver.initDeployer(cloud);
ComputeService compute = ((ComputeServiceContext) driver.getComputeContext()).getComputeService();
Set<? extends ComputeMetadata> computeMetadatas = compute.listNodes();
if (computeMetadatas.isEmpty()) {
throw new IllegalStateException("There are no nodes in the account");
}
for (ComputeMetadata computeMetadata : computeMetadatas) {
NodeMetadata node = (NodeMetadata) computeMetadata;
Assert.assertNull(node.getLocation());
Assert.assertNull(node.getHardware());
Assert.assertNull(node.getImageId());
}
}
private Cloud createCloud() {
Cloud cloud = new Cloud();
String user = System.getProperty("org.cloudifysource.test.softlayer.user");
String apiKey = System.getProperty("org.cloudifysource.test.softlayer.api-key");
if (StringUtils.isBlank(user)) {
throw new IllegalStateException("user is null. please set 'org.cloudifysource.test.softlayer.user' system"
+ " property and run again.");
}
if (StringUtils.isBlank(apiKey)) {
throw new IllegalStateException("user is null. please set 'org.cloudifysource.test.softlayer.api-key' "
+ "system property and run again.");
}
cloud.getUser().setUser(user);
cloud.getUser().setApiKey(apiKey);
cloud.getProvider().setProvider("softlayer");
ComputeTemplate computeTemplate = new ComputeTemplate();
cloud.getCloudCompute().getTemplates().put("dummy", computeTemplate);
return cloud;
}
}