cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1034
Views
1
Helpful
0
Comments
Orf Gelbrich
Cisco Employee
Cisco Employee
Task Name

Godd Powershell coding example with try and catch powershell concept

Description

Prerequisites

Tested on UCSD 6.0.1.1

CategoryWorkflow
ComponentsvSphere 5.x
User Inputs


Instructions for Regular Workflow Use:

  1. Download the attached .ZIP file below to your computer. *Remember the location of the saved file on your computer.
  2. Unzip the file on your computer. Should end up with a .WFD file.
  3. Log in to UCS Director as a user that has "system-admin" privileges.
  4. Navigate to "Policies-->Orchestration" and click on "Import".
  5. Click "Browse" and navigate to the location on your computer where the .WFD file resides. Choose the .WFD file and click "Open".
  6. Click "Upload" and then "OK" once the file upload is completed. Then click "Next".
  7. Click the "Select" button next to "Import Workflows". Click the "Check All" button to check all checkboxes and then the "Select" button.
  8. Click "Submit".
  9. 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.

This was inspired by Jeremiah! Thank you.

The workflow:

Screen Shot 2017-03-08 at 11.01.49 AM.png

The task content:

Screen Shot 2017-03-08 at 10.31.15 AM.png

The code in the Powershell task as ASCII:

Try {

echo "do something good" > c:\\myGoodFile.txt

echo "do something good" > c:\\myGoodFile.txt

echo "do something good" > c:\\myGoodFile.txt

badcommand

}

Catch {

   $reportFile = "c:\\Error_ErrorLog.txt"

   $report = @("####################")

   $report += "Error Date: $(get-date -format G)"

   $report += "_________________________"

   $report += $error

   $report += "###################"

   $report | out-file -FilePath $reportFile -Append

   #throw $error[0]

    type $reportFile

}

The workflow execution:

Screen Shot 2017-03-08 at 10.32.32 AM.png

The resulting log files on the Windows server:

Screen Shot 2017-03-07 at 4.00.59 PM.png

Screen Shot 2017-03-07 at 4.01.15 PM.png

Screen Shot 2017-03-07 at 4.01.25 PM.png

Workflow execution if there is no error:

Screen Shot 2017-03-08 at 10.33.35 AM.png

The If statement:

Screen Shot 2017-03-08 at 10.34.26 AM.png

Screen Shot 2017-03-08 at 10.34.42 AM.png

Custom Logger Code:

//Sometimes if the string may contain passwords then it does not write to the logger

logger.addInfo(">----------------------------------------------------------------<");

var a = input.LogFileEntry;

logger.addInfo(">"+ a +"<");

logger.addInfo(">----------------------------------------------------------------<");

// Created this section to write to log file anywhay

// Disable thei section when not debugging

var b = a.split("<");

logger.addInfo("b : " + b.length);

for ( var i=0; i < b.length; i++ ) {

  logger.addInfo(">"+ b[i] +"<");

}

logger.addInfo(">----------------------------------------------------------------<");

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links