EELCO NIEUWSTAD | I have written some functions in perl to retrieve all kind of info. Let me know if interested.
Op 9 feb. 2012 om 17:11 heeft "Cisco Developer Community Forums" <cdicuser@developer.cisco.com> het volgende geschreven:
> Sage Harvey has created a new message in the forum "Technical Discussions": > > -------------------------------------------------------------- > Hi Vamsi, > > I had the need for something similar so I ended up using the XML API from a PHP script running on linux. This is what I use: > 1 > 2<?php > 3 require_once 'HTTP/Request2.php'; > 4 $ucsDomains = array(); > 5 $myLogin = "ucs-AD\\someuser"; // Using AD authentication, local accounts would work too. > 6 $myPassword = "somepassword"; > 7 > 8// Load up all the UCSM's > 9 array_push($ucsDomains, array("url" => "http://ucs01/")); > 10 array_push($ucsDomains, array("url" => "http://ucs02/")); > 11 array_push($ucsDomains, array("url" => "http://ucs03/")); > 12 > 13 foreach($ucsDomains as $ucsDomain){ > 14 generateData($ucsDomain, $myLogin, $myPassword); > 15 } > 16 > 17 function generateData($details, $myLogin, $myPassword) { > 18 $chassisTypes = array( > 19 "N20-C6508" => "5108"); > 20 $Blades = array( > 21 "N20-B6620-1" => "B200 M1", > 22 "N20-B6625-1" => "B200 M2", > 23 "N20-B6625-2" => "B250 M2", > 24 "N20-B6730-1" => "B230 M1", > 25 "B230-BASE-M2" => "B230 M2", > 26 "N20-B6620-1" => "B200 M1", > 27 "N20-B6740-2" => "B440 M1"); > 28 $fabricInterconnects = array( > 29 "N10-S6100" => "6120XP", > 30 "N10-S6200" => "6140XP"); > 31 $url = $details['url']."nuova"; > 32 $aaaLogin = "<aaaLogin inName='{$myLogin}' inPassword='{$myPassword}' />"; > 33 $results = httpPost($url, $aaaLogin); > 34 $outCookie = $results->attributes()->outCookie; > 35 > 36// Get Cluster name > 37 $xmlQuery = "<configResolveClass cookie='$outCookie' classId='topSystem' />"; > 38 $results = httpPost($url, $xmlQuery); > 39 $clusterName = $results->outConfigs->topSystem['name']; > 40 > 41 > 42 $xmlQuery =<<<EOD > 43<configResolveClasses cookie='$outCookie' inHierarchical="true"> > 44 <inIds> > 45 <classId value="firmwareBootUnit"/> > 46 </inIds> > 47</configResolveClasses> > 48EOD; > 49 $results = httpPost($url, $xmlQuery); > 50 $firmwareBootUnit = $results->outConfigs->firmwareBootUnit; > 51 > 52 $fwResults = ""; > 53 foreach($firmwareBootUnit as $datum) { > 54 if ($datum['dn'] == "sys/mgmt/fw-boot-def/bootunit-system") { > 55// Found UCSM > 56 $fwResults .= "<tr><td>$clusterName,</td><td>UCSM,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>_".$datum['dn']."</td></tr><br />\n"; > 57 } > 58 if (preg_match("/^sys\/(switch-)\/mgmt\/fw-boot-def\/bootunit-kernel/", $datum['dn'])) { > 59// Found a Fabric Interconnect > 60 $fwResults .= "<tr><td>$clusterName,</td><td>Fabric Interconnect,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>_".$datum['dn']."</td></tr><br />\n"; > 61 } > 62 if (preg_match("/^sys\/(chassis-[0-9]\/slot-[0-9])\/mgmt\/fw-boot-def\/bootunit-combined/", $datum['dn'])) { > 63// Found an IOM > 64 $fwResults .= "<tr><td>$clusterName,</td><td>Fabric Extender,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>".$datum['dn']."</td></tr><br />\n"; > 65 } > 66 if (preg_match("/^sys\/(chassis-[0-9]\/blade-[0-9])\/mgmt\/fw-boot-def\/bootunit-combined/", $datum['dn'])) { > 67// Found a CIMC > 68 $fwResults .= "<tr><td>$clusterName,</td><td>CIMC,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>".$datum['dn']."</td></tr><br />\n"; > 69 } > 70 if (strpos($datum['dn'], "bios")) { > 71// Found a blade's BIOS > 72 $fwResults .= "<tr><td>$clusterName,</td><td>Blade BIOS,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>".$datum['dn']."</td></tr><br />\n"; > 73 } > 74 if (preg_match("/^sys\/(chassis-[0-9]\/blade-[0-9]\/adaptor-[0-9])\/mgmt\/fw-boot-def\/bootunit-combined/", $datum['dn'])) { > 75// Found an Interface Card > 76 $fwResults .= "<tr><td>$clusterName,</td><td>Interface Card,</td><td>".$datum['version'].",</td><td>".$datum['prevVersion'].",</td><td>".$datum['dn']."</td></tr><br />\n"; > 77 } > 78 } > 79 echo "<th>Cluster,</th><th>Type,</th><th>Current Version,</th><th>Prev/Backup Version,</th><th>Node</th><br/>"; > 80 > 81 $fwResults = str_replace ("/fw-boot-def/bootunit-system", "", $fwResults); > 82 $fwResults = str_replace ("/mgmt/fw-boot-def/bootunit-kernel", "", $fwResults); > 83 $fwResults = str_replace ("/mgmt/fw-boot-def/bootunit-combined", "", $fwResults); > 84 $fwResults = str_replace ("/bios/fw-boot-def/bootunit-combined", "", $fwResults); > 85 echo $fwResults; > 86 echo "</table>"; > 87 echo "<hr />\n"; > 88 > 89// Logout > 90 $aaaLogout = "<aaaLogout inCookie='$outCookie' />"; > 91 $results = httpPost($url, $aaaLogout); > 92 $outStatus = $results->attributes()->outStatus; > 93 } > 94 > 95 function httpPost($url, $package){ > 96 $request = new HTTP_REQUEST2($url, HTTP_REQUEST2::METHOD_POST); > 97 $request->setHeader("Content-type: text/xml"); > 98 $request->setBody($package); > 99 $response = $request->send(); > 100 $xml = new SimpleXMLElement($response->getBody()); > 101 return $xml; > 102 } > 103?> > > > The output would end up looking something like this: > 1 > 2Cluster,Type,Current Version,Prev/Backup Version,Node > 3ucs01,UCSM,2.0(1q),1.4(1j),_sys/mgmt > 4ucs01,Fabric Interconnect,5.0(3)N2(2.1q),4.2(1)N1(1.4j),_sys/switch-B > 5ucs01,Fabric Interconnect,5.0(3)N2(2.1q),4.2(1)N1(1.4j),_sys/switch-A > 6ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-4/slot-1 > 7ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-1/slot-1 > 8ucs01,CIMC,2.0(1q),1.4(1j),sys/chassis-1/blade-1 > 9ucs01,CIMC,2.0(1q),1.4(1j),sys/chassis-1/blade-3 > 10ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-1/slot-2 > 11ucs01,CIMC,2.0(1q),1.4(1j),sys/chassis-4/blade-1 > 12ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-2/slot-1 > 13ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-3/slot-1 > 14ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-3/slot-2 > 15ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-4/slot-2 > 16ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-1/blade-3/adaptor-2 > 17ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-1/blade-3/adaptor-1 > 18ucs01,Fabric Extender,2.0(1q),1.4(1j),sys/chassis-2/slot-2 > 19ucs01,CIMC,2.0(1q),1.4(1j),sys/chassis-3/blade-3 > 20ucs01,CIMC,2.0(1q),1.4(1j),sys/chassis-2/blade-1 > 21ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-1/blade-1/adaptor-2 > 22ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-1/blade-1/adaptor-1 > 23ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-4/blade-1/adaptor-2 > 24ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-4/blade-1/adaptor-1 > 25ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-2/blade-1/adaptor-2 > 26ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-2/blade-1/adaptor-1 > 27ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-3/blade-3/adaptor-2 > 28ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-3/blade-3/adaptor-1 > 29ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-1/blade-1 > 30ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-4/blade-1 > 31ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-1/blade-3 > 32ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-2/blade-1 > 33ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-3/blade-3 > 34ucs01,Blade BIOS,B440.2.0.1c.0.100520111754,B440M1.1.4.1b.0.120820101442,sys/chassis-3/blade-1 > 35ucs01,CIMC,2.0(1q),,sys/chassis-3/blade-1 > 36ucs01,Interface Card,2.0(1q),1.3(0.841),sys/chassis-3/blade-1/adaptor-2 > 37ucs01,Interface Card,2.0(1q),1.4(1j),sys/chassis-3/blade-1/adaptor-1 > > > Hope that helps. > > Sage > -- > To respond to this post, please click the following link: > > <http://developer.cisco.com/web/unifiedcomputing/forums/-/message_boards/view_message/5124593> > > or simply reply to this email. |