importPackage(org.apache.commons.httpclient);
importPackage(org.apache.commons.httpclient.methods);
importPackage(java.io);
importPackage(org.w3c.dom);
importPackage(com.cloupia.lib.cIaaS.ucs);
importPackage(java.lang);
importPackage(java.util);
importPackage(com.cloupia.lib.cIaaS.ucs);




var strURL = "http://10.101.216.33/arsys/services/ARService?server=nvm1815pdv&webService=WIP_CISCO_POC_SubmitCI";
var strURL2 = "http://nvm1815pdv/arsys/WSDL/public/nvm1815pdv/WIP_CISCO_POC_SubmitCI";
var strSoapAction2 = "http://nvm1815pdv/arsys/WSDL/public/nvm1815pdv/WIP_CISCO_POC_SubmitCI";
var strSoapAction = "urn:WIP_CISCO_POC_SubmitCI/New_Create_Operation_0";
var userName = input.userName;
var password = input.password;
var Host_Name = input.Host_Name;
var Serial_Number = input.Serial_Number;
var Model = input.Model;
var Domain = input.Domain;
var IsVirtual = input.IsVirtual;
var Physical_Memory_c = input.Physical_Memory_c;

var vmid = input.vmid

var FIELD_INSTANCE_ID = "INSTANCE_ID:";
var FIELD_XML_REQUEST = "XML_REQUEST:";
var FIELD_XML_RESPONSE = "XML_RESPONSE:";
var FIELD_VM_ID = "VM_ID:";
var DIR_NAME = "/opt/infra/file_storage";
var content = new StringBuffer(); 
var lineSeparator = java.lang.System.getProperty("line.separator");  


logger.addInfo("DEBUG userName = " + userName);

var msgXML =""
  +""
     +""
        +""+userName+""
         +""+password+""
         +""
         +""
         +""
         +""
         +""
         +""
      +""
   +""
   +""
     +""
        +""
         +""+Host_Name+""
         +""
         +""+Serial_Number+""
         +""
         +""+Model+""
         +""
         +""+Domain+""
         +""
         +""+IsVirtual+""
         +""
         +""+Physical_Memory_c+""
      +""
   +""
+""

logger.addInfo(msgXML);

var post = new PostMethod(strURL);

var entity = new StringRequestEntity(msgXML, "text/xml", "ISO-8859-1");
post.setRequestEntity(entity);
post.setRequestHeader("SOAPAction", strSoapAction);
var httpclient = new HttpClient();

var result = httpclient.executeMethod(post);
logger.addInfo("Response status code: " + result);
logger.addInfo("Status message : "+post.getStatusText());
logger.addInfo("Response body: "+post.getResponseBodyAsString());

var response = post.getResponseBodyAsString();
var is = new ByteArrayInputStream(response.getBytes());
var doc =XMLUtil.parseXMLDocument(is);
var element = XMLUtil.getElementByTagName(doc.getDocumentElement(),"ns0:InstanceID");
logger.addInfo("Instance Id : "+XMLUtil.getText(element));
var instanceId = XMLUtil.getText(element);
output.instanceId = instanceId;

var absoluteFilePath = DIR_NAME + File.separator + vmid;
//writing the content to the file


				
//append field key and Value
content.append(FIELD_INSTANCE_ID+instanceId);
content.append(lineSeparator);
content.append(FIELD_XML_REQUEST+msgXML);
content.append(lineSeparator);
content.append(FIELD_XML_RESPONSE+response);
content.append(lineSeparator);
content.append(FIELD_VM_ID+vmid);
content.append(lineSeparator);

var file = new File(absoluteFilePath);
var absolutePath = file.getAbsolutePath();
logger.addInfo("File Path "+absolutePath);
var dirName = absolutePath.substring(0,absolutePath.lastIndexOf(File.separator));
var dir = new File(dirName);
if (!file.exists()) {			
 dir.mkdirs();
}
// if file doesnt exists, then create it
if (!file.exists()) {
	file.createNewFile();
}

var fw = new FileWriter(file.getAbsoluteFile());
var bw = new BufferedWriter(fw);
bw.write(content.toString());
bw.close();

registerUndoTask(absolutePath,strURL,strSoapAction,msgXML);

function registerUndoTask(filePath,strURL,strSoapAction,msgXML) {
     // register undo task
     var undoHandler = "custom_rollback_file_storage";
     var undoContext = ctxt.createInnerTaskContext(undoHandler);
     var undoConfig = undoContext.getConfigObject();
     undoConfig.absolute_file_path = filePath;
	 undoConfig.strURL = strURL;
	 undoConfig.strSoapAction = strSoapAction;
	 undoConfig.msgXML = msgXML;
     
     ctxt.getChangeTracker().undoableResourceModified("Delete file", 
                ""+filePath, 
                 "Deleted file from the directory ", 
                  "Deleted file from the directory successfully",  
                undoHandler,
                undoConfig);
}

Additional Links: