/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
/**
*
*/
package com.emc.cloud.test;
import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.annotations.Test;
import com.emc.cloud.platform.clientlib.ClientGeneralException;
import com.emc.cloud.platform.clientlib.ClientHttpMethods;
import com.emc.cloud.platform.clientlib.ClientHttpMethodsFactory;
import com.emc.cloud.platform.ucs.in.model.ConfigFindDnsByClassId;
import com.emc.cloud.platform.ucs.in.model.ConfigResolveDns;
import com.emc.cloud.platform.ucs.in.model.NamingClassId;
import com.emc.cloud.platform.ucs.in.model.ObjectFactory;
import com.emc.cloud.platform.ucs.out.model.ConfigSet;
import com.emc.cloud.platform.ucs.out.model.DnSet;
import com.emc.cloud.platform.ucs.out.model.DnSet.Dn;
/**
* @author prabhj
*
*/
@ContextConfiguration(locations = { "classpath:applicationContext.xml" })
public class UcsLoginLogoutTest extends
AbstractTestNGSpringContextTests {
@Autowired
ClientHttpMethodsFactory httpMethodsFactory;
ClientHttpMethods clientHttpMethods;
ObjectFactory factory = new ObjectFactory();
@Test(groups = "runByDefault")
public void testLogin() throws ClientGeneralException, MalformedURLException {
clientHttpMethods = httpMethodsFactory.createClientHttpMethods(new URL("http", "10.247.84.170", 80, "/nuova").toString(),
"ucs-glo\\prabhj", "Danger0us1");
}
private DnSet dnSet;
@Test(groups = "runByDefault", dependsOnMethods = "testLogin")
public void testGetBladeDNs() throws ClientGeneralException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
ConfigFindDnsByClassId findDnsByClassId = new ConfigFindDnsByClassId();
findDnsByClassId.setClassId(NamingClassId.COMPUTE_ITEM);
com.emc.cloud.platform.ucs.out.model.ConfigFindDnsByClassId configFindDnsByClassId = clientHttpMethods.postEntity(
factory.createConfigFindDnsByClassId(findDnsByClassId), com.emc.cloud.platform.ucs.out.model.ConfigFindDnsByClassId.class);
if (configFindDnsByClassId != null) {
System.out.println(BeanUtils.describe(configFindDnsByClassId));
if (configFindDnsByClassId.getContent() != null && !configFindDnsByClassId.getContent().isEmpty()) {
for (Object object : configFindDnsByClassId.getContent()) {
if (object instanceof JAXBElement<?>) {
dnSet = ((JAXBElement<DnSet>) object).getValue();
if (dnSet != null) {
for (DnSet.Dn dn : dnSet.getDn()) {
System.out.println(BeanUtils.describe(dn));
}
}
}
}
}
}
}
private ConfigSet configSet = null;
@Test(groups = "runByDefault", dependsOnMethods = "testGetBladeDNs")
public void getBlades() throws ClientGeneralException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
ConfigResolveDns configResolveDns = new ConfigResolveDns();
configResolveDns.setInHierarchical("false");
com.emc.cloud.platform.ucs.in.model.DnSet inDnSet = new com.emc.cloud.platform.ucs.in.model.DnSet();
for (Dn dn : this.dnSet.getDn()) {
com.emc.cloud.platform.ucs.in.model.DnSet.Dn inDn = new com.emc.cloud.platform.ucs.in.model.DnSet.Dn();
inDn.setValue(dn.getValue());
inDnSet.getDn().add(inDn);
}
configResolveDns.getContent().add(
new JAXBElement<com.emc.cloud.platform.ucs.in.model.DnSet>(new QName("inDns"),
com.emc.cloud.platform.ucs.in.model.DnSet.class, inDnSet));
com.emc.cloud.platform.ucs.out.model.ConfigResolveDns configResolveDnsOut = clientHttpMethods.postEntity(
factory.createConfigResolveDns(configResolveDns), com.emc.cloud.platform.ucs.out.model.ConfigResolveDns.class);
System.out.println(BeanUtils.describe(configResolveDnsOut));
if (configResolveDnsOut.getContent() != null && !configResolveDnsOut.getContent().isEmpty()) {
for (Object object : configResolveDnsOut.getContent()) {
if (object instanceof JAXBElement<?>) {
if (!(((JAXBElement) object).getValue() instanceof ConfigSet)) {
continue;
}
configSet = ((JAXBElement<ConfigSet>) object).getValue();
if (configSet != null && configSet.getManagedObject() != null && !configSet.getManagedObject().isEmpty()) {
for (JAXBElement<?> managedObject : configSet.getManagedObject()) {
System.out.println("\t\t" + BeanUtils.describe(managedObject.getValue()));
}
}
}
}
}
}
@Test(groups = "runByDefault", dependsOnMethods = "getBlades", ignoreMissingDependencies = true)
public void testLogout() throws ClientGeneralException {
httpMethodsFactory.closeClientHttpMethods(clientHttpMethods);
}
}