Task Name | This example shows how to filter UCSD screens by a regex |
Description | - Get PSA report and find PSA agent name
|
Prerequisites | - Tested on 6.0
|
Category | Workflow |
Components | vSphere 5.x |
User Inputs | - redex PSA agent name .*106.*
|
Output | ID |
Instructions for Regular Workflow Use:
- Download the attached .ZIP file below to your computer. *Remember the location of the saved file on your computer.
- Unzip the file on your computer. Should end up with a .WFD file.
- Log in to UCS Director as a user that has "system-admin" privileges.
- Navigate to "Policies-->Orchestration" and click on "Import".
- Click "Browse" and navigate to the location on your computer where the .WFD file resides. Choose the .WFD file and click "Open".
- Click "Upload" and then "OK" once the file upload is completed. Then click "Next".
- Click the "Select" button next to "Import Workflows". Click the "Check All" button to check all checkboxes and then the "Select" button.
- Click "Submit".
- A new folder should appear in "Policies-->Orchestration" that contains the imported workflow. You will now need to update the included tasks with information about the specific environment.
Here are a few examples on how to search for a PSA agent name:
The workflow:
The key in the search in the code:
The UCSD PSA screen that is searched:
The Code:
mportPackage(java.util);
importPackage(java.lang);
importPackage(java.io);
importPackage(com.cloupia.model.cEvent.notify);
importPackage(com.cloupia.model.cIM);
importPackage(com.cloupia.lib.util.mail);
importPackage(com.cloupia.fw.objstore);
importPackage(com.cloupia.lib.util.managedreports);
function getMailSettings()
{
return ObjStoreHelper.getStore((new MailSettings()).getClass()).getSingleton();
}
function getReport(reportContext, reportName)
{
var report = null;
try
{
report = ctxt.getAPI().getConfigTableReport(reportContext, reportName);
} catch(e)
{
}
if (report == null)
{
return ctxt.getAPI().getTabularReport(reportName, reportContext);
} else
{
var source = report.getSourceReport();
return ctxt.getAPI().getTabularReport(source, reportContext);
}
}
function getReportView(reportContext, reportName)
{
var report = getReport(reportContext, reportName);
if (report == null)
{
logger.addError("No such report exists for the specified context "+reportName);
return null;
}
return new TableView(report);
}
var name = input.Name;
logger.addInfo("Looking for Power Shell Agent Partial Name : " + name);
var buffer = new StringWriter();
var printer = new PrintWriter(buffer);
// Formatter exists in multiple packages, so it needs fully qualified name
var formatter = new com.cloupia.lib.util.managedreports.Formatter(new File("."), printer);
var reportName = "PowershellAgentController.powershellagent.table_config";
var repContext = util.createContext("global_admin", null, null);
var report = getReportView(repContext, reportName);
logger.addInfo("Looking/Filtering for Power Shell Agent Name..............: " + name);
// false exact match
// ture = regex
//report = report.filterRowsByColumn("Name", name, false);
report = report.filterRowsByColumn("Name", name , true);
var numRowsFound = report.rowCount();
if (numRowsFound == 1 )
{
logger.addInfo("Number of Rows found...............: " + numRowsFound);
var id = report.getColumnValue(0, "Name");
logger.addInfo("Power Shell Agent Name...............: " + id);
formatter.printTable(report);
printer.close();
output.ReturnStatus = id;
// ctxt.setFailed("Number of Rows found......greater then zero PSA exists:" + name);
}
else
{
logger.addInfo("Zero or Less...............: ");
logger.addInfo("Number of Rows found...............: " + numRowsFound);
formatter.printTable(report);
printer.close();
output.ReturnStatus = -1;
ctxt.setFailed("Number of Rows found......greater then zero more then one PSA exists:" + name);
}
//output.ReturnStatus = -1;
//ctxt.exit();