importPackage(java.util);
importPackage(java.lang);
importPackage(java.io);
importPackage(java.net);
importPackage(java.security);
importPackage(com.cloupia.lib.connector.account);
importPackage(com.cloupia.lib.connector.account.credential);
importPackage(com.cloupia.lib.util);
importClass(com.cloupia.lib.util.JSON);
importPackage(javax.net.ssl);
importPackage(com.cloupia.model.cIM);
importPackage(com.cloupia.service.cIM.inframgr);
importPackage(org.apache.commons.httpclient);
importPackage(org.apache.commons.httpclient.methods);
importPackage(org.apache.commons.httpclient.protocol);
importPackage(com.cloupia.lib.util.easytrust);
importPackage(com.cloupia.lib.cIaaS.vcd.api);
//FUNCTIONS
function apicLogin(apicAccountName){
//Get the IP, user name, password, port and protocol from the APIC Device Identity object.
var apicAccount = AccountUtil.getAccountByName(apicAccountName);
var creds = apicAccount.getCredential();
logger.addInfo("creds :"+creds);
var username = JSON.getJsonElement(creds,"username").toString();
logger.addInfo("Username "+username);
var password = JSON.getJsonElement(creds,"password");
var ip = apicAccount.getServerAddress().toString();
logger.addInfo("IP "+ip);
var protocol = JSON.getJsonElement(creds,"protocol");
logger.addInfo("protocol "+protocol);
var port = JSON.getJsonElement(creds,"port").toString().trim();
port = Integer.parseInt(port);
logger.addInfo("port "+port);
var httpsClient = CustomEasySSLSocketFactory.getIgnoreSSLClient(ip,port);
httpsClient.getParams().setCookiePolicy("default");
var loginURL = "/api/aaaLogin.json";
/*
{
"aaaUser" : {
"attributes" : {
"name" : "georgewa",
"pwd" : "paSSword1"
}
}
}
*/
var buf = new StringBuffer();
buf.append("{");
buf.append("\"aaaUser\" : {");
buf.append("\"attributes\" : {");
buf.append("\"name\" : "+username+",");
buf.append("\"pwd\" : "+password+"");
buf.append("}");
buf.append("}");
buf.append("}");
var loginPayload = buf.toString();
logger.addInfo("loginPayload :"+loginPayload);
var httpMethod = new PostMethod(loginURL);
var requestEntity = new StringRequestEntity(loginPayload,"application/json","UTF-8");
httpMethod.setRequestEntity(requestEntity);
httpsClient.executeMethod(httpMethod);
var statuscode = httpMethod.getStatusCode();
logger.addInfo("statuscode :"+statuscode);
logger.addInfo("Status message : "+httpMethod.getStatusText());
logger.addInfo("Response body: "+httpMethod.getResponseBodyAsString());
}
var accountName = "apic185";//apic account name
apicLogin(accountName);
Additional Links: