ucs management apis a technical deep dive

76
UCS Management APIs A Technical Deep Dive John McDonough – Technical Marketing Engineer DEVNET-3003

Upload: cisco-devnet

Post on 14-Apr-2017

317 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: UCS Management APIs A Technical Deep Dive

UCS Management APIsA Technical Deep Dive

John McDonough – Technical Marketing EngineerDEVNET-3003

Page 2: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

• Introduction – UCS Management APIs - A Technical Deep Dive• Structure / Features / Model / Flow / Success or Failure• Methods / Sessions / Queries & Filters / Configurations / Events &

Statistics • Tools - Embedded / External• Conclusion

Agenda

DEVNET-3003 2

Page 3: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Introduction – UCS ManagementA Technical Deep Dive

DEVNET-3003 3

Page 4: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 4

Introduction

• Underneath the Python SDK, PowerTool PowerShell Libraries, VMware, Microsoft, OpenStack and Puppet integrations there is the UCS XML API itself.

• This session will go deep into the API and explain how the SDK, Libraries and integrations actually communicate with UCS components.

• This session will cover API session management, methods, queries and query filters, configurations and event subscription.

• Understanding the low-level UCS APIs and Object Model will enable you to build your own programmatic interface into your UCS environments in the language you like on the platform of your choosing.

DEVNET-3003

Page 5: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Structure / Features / Model / FlowSuccess or Failure

DEVNET-3003 5

Page 6: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 6

• Files – 69 Thousand• Comments – 6.8 Million Lines• Actual Code – 32 Million Lines

• HTML, XML, XSD, CSS, XSLT, MXML, DAL, DTD, IDL, SQL• C/C++, Java, JavaScript, PHP, Python, Ruby, Perl, Pascal,

ASP.Net, Visual Basic• Ant, make, Cmake, Teamcenter def• awk, expect, lex, yacc, sed, Korn Shell, bash, DOS Batch, Tcl/Tk,

ActionScript

Lines of code & Languages – May 2016

Structure – UCS Manager

DEVNET-3003

Page 7: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 7

• Communicates over HTTP/HTTPS• XML Based• Standard HTTP/HTTPS Request / Response cycle• Role Based Authentication• Object Model Hierarchy• Built-in Object Browser• Published Schema• Transactional• High Availability – out of the box!• EventStream

UCS API Features

XML API

Structure – XML API Features

DEVNET-3003

Page 8: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 8

Root

sys org-root

Managed Object Tree

switch-Achassis-1

fabric

ls-prodsrv

org-prod

blade-1 slot-2

ether fc

port-5port-1

adaptor-1

eth0

compute board

fc0 temp stats

power stats

macPool

mac poolblock

lsPowerlsBinding

boot policy

bios policyLAN

cloudSAN cloud

vlan10 vsan10

Structure – XML API Model

DEVNET-3003

Page 9: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco PublicApplication

DownDown

Admin Power State

Oper Power State

Up

Structure – XML API Flow

Up

1. Req. Turn On2. Queue Req.3. Mutate MO4. Transact5. Replicate6. Persist7. Reply8. Apply9. Instruct10. Reply11. Reply

DEVNET-3003 9

Page 10: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Methods / Sessions / Queries & Filters / Configurations / Events

DEVNET-3003 10

Page 11: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Methods – Sessions

DEVNET-3003 11

Page 12: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 12

Methods - Sessions

• aaaLogin – Get a cookie, start a session

• aaaRefresh – Get a new cookie, maintain the session

• aaaLogout – Deactivate the cookie, release the session resources

• aaaGetComputeAuthTokens – Get tokens for token based login (e.g. KVM)

• aaaTokenLogin – Get a cookie, start a session with tokens

• aaaTokenRefresh – Get a new cookie, maintain the session with tokens

• aaaChangeSelfPassword – Change the connected user’s password

DEVNET-3003

Page 13: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Session ManagementLogin - Get a Cookie<aaaLogin inName="admin" inPassword="cisco123" />

<aaaLogin cookie="" response="yes" outCookie="1316708245/442fcb48-51b5-4cd7-b51a-114ff0d9fb6d" outRefreshPeriod="600" outPriv="admin,read-

only" outDomains="" outChannel="noencssl" outEvtChannel="noencssl" outSessionId="web_5076_A" outVersion="1.4(3m)"/>

Stay Active - Refresh your Cookie<aaaRefresh inName="admin" inPassword="cisco123" inCookie="1316708245/442fcb48-51b5-4cd7-b51a-

114ff0d9fb6d" />

<aaaRefresh cookie="" response="yes" outCookie="1316708493/24b45597-4737-4cf2-aa57-b05e8c62df7a" outRefreshPeriod="600" outPriv="admin,read-only" outDomains="" outChannel="noencssl" outEvtChannel="noencssl">

</aaaRefresh>

Logout – Deactivate your Cookie<aaaLogout inCookie="1316708493/24b45597-4737-4cf2-aa57-b05e8c62df7a" />

<aaaLogout cookie="" response="yes" outStatus="success"></aaaLogout>

Methods – aaaLogin / aaaRefresh / aaaLogout

DEVNET-3003 13

Page 14: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Methods – Queries & Filters

DEVNET-3003 14

Page 15: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 15

Methods – Queries & Filters• configResolveDn / configResolveDns – query by distinguished name/s

• configResolveClass / configResolveClasses – query by classId/s

• configFindDnsByClassId – query for all Dns of a particular class

• configResolveChildren – query all children of an object or a specific child class

• configResolveParent – query an object’s parent

• configScope – query from a place in the tree

• Property Filters – eq, ne, gt, ge, lt, le, wcard, bw, anybit, allbits

• Composite Filters – and, or, xor

• Modifier Filter – not

DEVNET-3003

Page 16: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveDns<configResolveDns cookie="1253731066/6e75af90-66c2-4f56-9c9f-fc7167d793bd" inHierarchical="false"> <inDns> <dn value="sys/chassis-1" /> <dn value="sys/chassis-1/blade-1/board/cpu-1" /> <dn value="sys/chassis-1/blade-1/board/t-stats" /> <dn value="sys/chassis-7/blade-8" /> </inDns></configResolveDns>

Methods – Queries – configResolveDns

DEVNET-3003 16

Page 17: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveDns<configResolveDns cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"><outConfigs> <processorUnit

arch="Xeon" cores="4" coresEnabled="4" dn="sys/chassis-1/blade-1/board/cpu-1...voltage="not-supported"/>

<equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" ... thermal="ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/></outConfigs>

<outUnresolved> <dn value="sys/chassis-1/blade-1/board/t-stats"/> <-- Not a real dn <dn value="sys/chassis-7/blade-8"/> <-- This blade is not present </outUnresolved></configResolveDns>

Methods – Queries – configResolveDns - continued

DEVNET-3003 17

Page 18: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveClass<configResolveClass classId="equipmentChassis" cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false"/>

<configResolveClass cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes" classId="equipmentChassis"><outConfigs> <equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" connPath="A,B" connStatus="A,B" dn="sys/chassis-1" . . . thermal="ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/>

<equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" connPath="A,B" connStatus="A,B" dn="sys/chassis-2" . . . thermal=”ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/>

</outConfigs></configResolveClass>

Methods – Queries – configResolveClass

DEVNET-3003 18

Page 19: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveClasses<configResolveClasses cookie="1250544347/36ab394f-8680-44b5-ab5f-2fb037b39b72" inHierarchical="false"> <inIds> <classId value="computeBlade"/><classId value="equipmentChassis"/> </inIds></configResolveClasses>

<configResolveClasses cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"><outConfigs> <computeBlade dn="sys/chassis-1/blade-1" . . . /> <computeBlade dn="sys/chassis-3/blade-8" . . . /> <equipmentChassis dn="sys/chassis-1" . . . /> <equipmentChassis dn="sys/chassis-2" . . . /> <equipmentChassis dn="sys/chassis-3" . . . /> </outConfigs></configResolveClasses>

Methods – Queries – configResolveClasses

DEVNET-3003 19

Page 20: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configScope<configScope dn="sys/chassis-1/blade-1/board" inClass="memoryUnit" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" inHierarchical="false" />

<configScope dn="sys/chassis-1/blade-1/board" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"> <outConfigs> <memoryUnitbank="0" capacity="2048" clock="1067" dn="sys/chassis-1/blade-1/board/memarray-1/mem-12" . . . />

<memoryUnitbank="0" capacity="2048" clock="1067" dn="sys/chassis-1/blade-1/board/memarray-1/mem-11" . . . />

</outConfigs></configScope>

Methods – Queries – configScope

DEVNET-3003 20

Page 21: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <eq> <ne>Equal To <configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="lsServer">

<inFilter> <eq class="lsServer" property="assocState" value="associated" /> </inFilter></configResolveClass> Not Equal<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="lsServer">

<inFilter> <ne class="lsServer" property="assocState” value="associated" /> </inFilter></configResolveClass>

Methods – Queries – Filters <eq> / <ne>

DEVNET-3003 21

Page 22: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <wcard> <bw>Wildcard<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="adaptorUnit">

<inFilter> <wcard class="adaptorUnit" property="serial" value="QCI1*" /> </inFilter></configResolveClass> Between – This is inlcusive of the upper and lower bounds<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="memoryArray">

<inFilter> <bw class="memoryArray" property="populated" firstValue="1” secondValue="6"/>

</inFilter></configResolveClass>

Methods – Queries – Filters <wcard> / <bw>

DEVNET-3003 22

Page 23: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <and> <or> <not>

And (Or Not)<configResolveClass inHierarchical="false" cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" classId="computeBlade">

<inFilter> <and> <or> <eq class="computeBlade" property="slotId" value="1"/> <eq class="computeBlade" property="slotId" value="8"/> </or> <not> <eq class="computeBlade" property="chassisId" value="5"/> </not> </and> </inFilter></configResolveClass>

Methods – Queries – Filters <and> / <or> / <not>

DEVNET-3003 23

Page 24: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <xor>

Exclusive Or<configResolveClass inHierarchical="false" cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" classId="computeBlade">

<inFilter> <xor> <eq class="computeBlade" property="slotId" value="6"/> <eq class="computeBlade" property="operPower" value="on"/> </xor> </inFilter></configResolveClass>

Methods – Queries – Filters <xor>

DEVNET-3003 24

Page 25: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Methods – Configurations

DEVNET-3003 25

Page 26: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 26

Methods – Configurations• configConfMo – manage a specific object

• configConfMos – manage multiple objects of the same or different type

• configConfMoGroup – manage multiple objects of the same type

• faultAckFault / faultAckFaults – acknowledge a single or multiple faults

• lsInstantiateTemplate – instantiate a service profile from a template

• lsInstantiateNTemplate – instantiate multiple service profiles from a template

• lsClone – clone a service profile or service profile template

• lsTemplatise – create a template from a service profile

• There are a few more… read the guide!

DEVNET-3003

Page 27: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMos cookie="1241537386/74c123ec-1659-4f39-b292-4316beb61dcd" inHierarchical="yes">

<inConfigs> <pair key="sys/user-ext/jomcdono_user"> <aaaUser descr="" dn="sys/user-ext/jomcdono_user" email="[email protected]" expires="no" name="jomcdono" firstName="John" lastName="McDonough" phone="212-555-1212" pwd="cisco!123" status="created"> <aaaSshAuth data="" strType="none"></aaaSshAuth> <aaaUserRole name="admin"></aaaUserRole> </aaaUser> </pair> <pair key="org-root/org-IT" > <orgOrg dn="org-root/org-IT" name="IT" status="created" /> </pair> </inConfigs></configConfMos>

Methods – configConfMos – User and Org

DEVNET-3003 27

Page 28: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMos cookie="1241537386/74c123ec-1659-4f39-b292-4316beb61dcd" inHierarchical="yes">

<inConfigs> <pair key="sys/user-ext/jomcdono_user"> <aaaUser descr="" dn="sys/user-ext/jomcdono_user" email="[email protected]" expires="no" name="jomcdono" firstName="John" lastName="McDonough" phone="212-555-1212" pwd="cisco!123" status="created"> <aaaSshAuth data="" strType="none"></aaaSshAuth> <aaaUserRole name="admin"></aaaUserRole> </aaaUser> </pair> <pair key="org-root/org-IT" > <orgOrg dn="org-root/org-IT" name="IT" status="created" /> </pair> </inConfigs></configConfMos>

Methods – configConfMos – User and Org

DEVNET-3003 28

Page 29: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMos cookie="1241537386/74c123ec-1659-4f39-b292-4316beb61dcd" inHierarchical="yes">

<inConfigs> <pair key="sys/user-ext/jomcdono_user"> <aaaUser descr="" dn="sys/user-ext/jomcdono_user" email="[email protected]" expires="no" name="jomcdono" firstName="John" lastName="McDonough" phone="212-555-1212" pwd="cisco!123" status="created"> <aaaSshAuth data="" strType="none"></aaaSshAuth> <aaaUserRole name="admin"></aaaUserRole> </aaaUser> </pair> <pair key="org-root/org-IT" > <orgOrg dn="org-root/org-IT" name="IT" status="created" /> </pair> </inConfigs></configConfMos>

Methods – configConfMos – User and Org

UCS Manager Transactions are ACID compliant

A – AtomicityC – ConsistencyI – IsolationD – Durability

These properties guarantee that UCSMdatabase transactions are processed reliably

DEVNET-3003 29

Page 30: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMoGroup cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700" inHierarchical="false">

<inDns> <dn value="sys/chassis-1/blade-1"/> <dn value="sys/chassis-1/blade-3"/> <dn value="sys/chassis-1/blade-5"/> <dn value="sys/chassis-1/blade-7"/> </inDns> <inConfig> <computeBlade usrLbl="jomcdono"/> </inConfig></configConfMoGroup>

Methods – configConfMoGroup – User Label

DEVNET-3003 30

Page 31: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMoGroup cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700" inHierarchical="false">

<inDns> <dn value="sys/chassis-1/blade-1"/> <dn value="sys/chassis-1/blade-3"/> <dn value="sys/chassis-1/blade-5"/> <dn value="sys/chassis-1/blade-7"/> </inDns> <inConfig> <computeBlade usrLbl="jomcdono"/> </inConfig></configConfMoGroup>

Methods – configConfMos – User Label

DEVNET-3003 31

Page 32: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Methods – Events and Statistics

DEVNET-3003 32

Page 33: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 33

Methods – Events and Statistics• The Event Stream is a stream of XML that comes from UCS Manager.

• Users / Applications can Subscribe to the Event Stream

• Every Object Instantiation / Mutation / Deletion is in the event stream• Except Statistics – UCSM statistics need to be queried.• Stats Objects in UCSM

• Many UCSM objects have statistics• Up to six statistical objects are maintained by UCSM, one current and five historical spaced at the

collection interval for the particular object type.• statsCurr object is a collection of all the current statistic objects in the system• statsHist object is a collection of all the historical statistic objects in the system, typicall five times

larger than statsCurr

• <configResolveClass cookie="1234" inHierarchical="false" classId="statsCurr"/>

DEVNET-3003

Page 34: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 34

Methods – Events and Statistics• The Event Stream is a stream of XML that comes from UCS Manager.

• Users / Applications can Subscribe to the Event Stream

• Every Object Instantiation / Mutation / Deletion is in the event stream• Except Statistics – UCSM statistics need to be queried.• Stats Objects in UCSM

• Many UCSM objects have statistics• Up to six statistical objects are maintained by UCSM, one current and five historical spaced at the

collection interval for the particular object type.• statsCurr object is a collection of all the current statistic objects in the system• statsHist object is a collection of all the historical statistic objects in the system, typicall five times

larger than statsCurr

• <configResolveClass cookie="1234" inHierarchical="false" classId="statsCurr"/>

DEVNET-3003

Page 35: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 35

Methods – Events and Statistics• The Event Stream is a stream of XML that comes from UCS Manager.

• Users / Applications can Subscribe to the Event Stream

• Every Object Instantiation / Mutation / Deletion is in the event stream• Except Statistics – UCSM statistics need to be queried.• Stats Objects in UCSM

• Many UCSM objects have statistics• Up to six statistical objects are maintained by UCSM, one current and five historical spaced at the

collection interval for the particular object type.• statsCurr object is a collection of all the current statistic objects in the system• statsHist object is a collection of all the historical statistic objects in the system, typicall five times

larger than statsCurr

• <configResolveClass cookie="1234" inHierarchical="false" classId="statsCurr"/>

<etherRxStats broadcastPackets="136484562" broadcastPacketsDelta="54" broadcastPacketsDeltaAvg="54" broadcastPacketsDeltaMax="55" broadcastPacketsDeltaMin="54" childAction="deleteNonPresent" intervals="58982460" jumboPackets="214285182580" jumboPacketsDelta="33" jumboPacketsDeltaAvg="31" jumboPacketsDeltaMax="33" jumboPacketsDeltaMin="31" multicastPackets="37946767" multicastPacketsDelta="17" multicastPacketsDeltaAvg="17" multicastPacketsDeltaMax="21" multicastPacketsDeltaMin="17" rn="rx-stats" suspect="no" thresholded="" timeCollected="2016-06-01T13:21:03.079" totalBytes="463402286303635" totalBytesDelta="98446" totalBytesDeltaAvg="90473" totalBytesDeltaMax="98446" totalBytesDeltaMin="86701" totalPackets="299056720849" totalPacketsDelta="184" totalPacketsDeltaAvg="165" totalPacketsDeltaMax="184" totalPacketsDeltaMin="155" unicastPackets="298882289520" unicastPacketsDelta="113" unicastPacketsDeltaAvg="93" unicastPacketsDeltaMax="113" unicastPacketsDeltaMin="83" update="131080"></etherRxStats>

DEVNET-3003

Page 36: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 36

Methods – Subscribe to the Event Stream• <eventSubscribe cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" />

• The very first thing UCSM GUI does when it starts is subscribe to the event stream. This is why configurations that happen in another UCS session GUI, CLI or API will immediately appear in every other session.

DEVNET-3003

Page 37: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 37

Methods – Subscribe to the Event Stream• <eventSubscribe cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" />

• The very first thing UCSM GUI does when it starts is subscribe to the event stream. This is why configurations that happen in another UCS session GUI, CLI or API will immediately appear in every other session.

DEVNET-3003

Page 38: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 38

<methodVessel cookie=""> <inStimuli> <configMoChangeEvent cookie="" inEid="1787883"><inConfig> <aaaModLR affected="sys/user-ext/user-jomcdono4" cause="65537" created="2009-03-09T22:44:36" descr="user jomcdono4

modified" dn="aaa-log/394229" id="394229" ind="modification" severity="info" status="created" trig="admin" txId="2032198" user="admin"/></inConfig>

</configMoChangeEvent> <configMoChangeEvent cookie="" inEid="1787884"><inConfig> <eventRecord affected="sys/user-ext" cause="65537" created="2009-03-09T22:44:36" descr="[FSM:BEGIN]: user

configuration(FSM:sam:dme:AaaUserEpUpdateUserEp)" dn="event-log/394230" id="394230" ind="state-transition" severity="info" status="created" trig="special" txId="2032198" user="admin"/></inConfig>

</configMoChangeEvent> <configMoChangeEvent cookie="" inEid="1787885"><inConfig> <eventRecord affected="sys/user-ext" cause="65537" created="2009-03-09T22:44:36" descr="[FSM:STAGE:END]: (FSM-

STAGE:sam:dme:AaaUserEpUpdateUserEp:begin)" dn="event-log/394231" id="394231" ind="state-transition" severity="info" status="created" trig="special" txId="2032198" user="admin"/></inConfig>

</configMoChangeEvent> <configMoChangeEvent cookie="" inEid="1787886"><inConfig> <eventRecord affected="sys/user-ext" cause="65537" created="2009-03-09T22:44:36" descr="[FSM:STAGE:ASYNC]: user

configuration to primary(FSM-STAGE:sam:dme:AaaUserEpUpdateUserEp:SetUserLocal)" dn="event-log/394232" id="394232" ind="state-transition" severity="info" status="created" trig="special" txId="2032198" user="admin"/></inConfig>

</configMoChangeEvent> </inStimuli></methodVessel>

Methods – Listen to the Event Stream

DEVNET-3003

Page 39: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Tools – Embedded / External

DEVNET-3003 39

Page 40: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 40

Tools – Embedded – Object Browser (Visore)• Search By Class

• Search By Dn

• Create single action filters

• View the query XML code

• Navigate the Object Model Tree

• View ***UNCHANGED*** object attribute values

• http/https://<ucs-manger-ip>/visore.html

DEVNET-3003

Page 41: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 41

Tools – Embedded – Object Browser (Visore)• Search By Class

• Search By Dn

• Create single action filters

• View the query XML code

• Navigate the Object Model Tree

• View ***UNCHANGED*** object attribute values

• http/https://<ucs-manger-ip>/visore.html

DEVNET-3003

Page 42: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 42

Tools – Embedded – Object Browser (Visore)• Search By Class

• Search By Dn

• Create single action filters

• View the query XML code

• Navigate the Object Model Tree

• View ***UNCHANGED*** object attribute values

• http/https://<ucs-manger-ip>/visore.html

DEVNET-3003

Page 43: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 43

Tools – Embedded – Object Browser (Visore)• Search By Class

• Search By Dn

• Create single action filters

• View the query XML code

• Navigate the Object Model Tree

• View ***UNCHANGED*** object attribute values

• http/https://<ucs-manger-ip>/visore.html

DEVNET-3003

Page 44: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 44

Tools – External• UCS Platform Emulator

• Latest hardware / import from live UCS / export and import saved configurations• Program against UCS PE as if it were a real UCS• Object Model Documentation / XML Schema Download

• UCS PowerTool• Cmdlets to manage every user/admin manageable object and operation in UCS• PowerTool Code creation from UCS GUI• XML and Metadata Inspection

• UCS Python SDK• Classes to manage every user/admin manageable object and operation in UCS• Python Code creation from UCS GUI• XML and Metadata Inspection

DEVNET-3003

Page 45: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Conclusion

DEVNET-3003 45

Page 46: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Complete Your Online Session Evaluation

Don’t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online

• Give us your feedback to be entered into a Daily Survey Drawing. A daily winner will receive a $750 Amazon gift card.

• Complete your session surveys through the Cisco Live mobile app or from the Session Catalog on CiscoLive.com/us.

46DEVNET-3003

Page 47: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 47

Opportunities for Follow-up• SDK, API, Sample code downloads

• Blog, Forum, or Social media feed to follow

• YouTube video to view

• Learning Labs and Sandbox available on DevNet

• Upcoming trainings, hackathons, events

DEVNET-2002

Become a DevNet Community member:www.developer.cisco.com

DEVNET-3003

Page 48: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 48

Continue Your Education in the DevNet Zone• Take the DevNet « Coding Track »

• DEVNET-1001: Coding 101, Introduction to REST APIs • DEVNET-1060: Intro to API Authentication Types (Oauth, token HTTP Basic)• DEVNET-1080: Introduction to Git• DEVNET-2002: Coding 102, REST API Basics using Spark• DEVNET-2003: Coding 102, REST API Basics using APIC-EM• DEVNET-2006: Coding 103, Deep Dive on JSON & more Python

• UCS Programmability in DEVNET• UCS PowerTool Learning Labs• UCS Python SDK Learning Labs• UCS Python and PowerTool Workbench Sessions

• Meet the Experts at the Demo Pods

DEVNET-2002DEVNET-3003

Page 49: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 49

Continue Your Education• Demos in the Cisco campus

• Walk-in Self-Paced Labs

• Lunch & Learn

• Meet the Engineer 1:1 meetings

• Related sessions

DEVNET-3003

Page 50: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Please join us for the Service Provider Innovation Talk featuring:

Yvette Kanouff | Senior Vice President and General Manager, SP BusinessJoe Cozzolino | Senior Vice President, Cisco Services

Thursday, July 14th, 201611:30 am - 12:30 pm, In the Oceanside A room

What to expect from this innovation talk• Insights on market trends and forecasts• Preview of key technologies and capabilities • Innovative demonstrations of the latest and greatest products• Better understanding of how Cisco can help you succeed

Register to attend the session live now or watch the broadcast on cisco.com

DEVNET-3003 50

Page 51: UCS Management APIs A Technical Deep Dive

Thank you

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-3003 51

Page 52: UCS Management APIs A Technical Deep Dive
Page 53: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public 53

Data Center / Virtualization Cisco Education OfferingsCourse Description Cisco Certification

Introducing Cisco Data Center Networking (DCICN); Introducing Cisco Data Center Technologies (DCICT)

Learn basic data center technologies and skills to build a data center infrastructure.

CCNA® Data Center

Implementing Cisco Data Center Unified Fabric (DCUFI);Implementing Cisco Data Center Unified Computing (DCUCI)Designing Cisco Data Center Unified Computing (DCUDC)Designing Cisco Data Center Unified Fabric (DCUFD)Troubleshooting Cisco Data Center Unified Computing (DCUCT)Troubleshooting Cisco Data Center Unified Fabric (DCUFT)

Obtain professional level skills to design, configure, implement, troubleshoot data center network infrastructure.

CCNP® Data Center

Product Training Portfolio: DCNMM, DCAC9K, DCINX9K, DCMDS, DCUCS, DCNX1K, DCNX5K, DCNX7K

Gain hands-on skills using Cisco solutions to configure, deploy, manage and troubleshoot unified computing, policy-driven and virtualized data center network infrastructure.

Designing the FlexPod® Solution (FPDESIGN); Implementing and Administering the FlexPod® Solution (FPIMPADM)

Learn how to design, implement and administer FlexPod solutions

Cisco and NetApp Certified FlexPod® Specialist

For more details, please visit: http://learningnetwork.cisco.comQuestions? Visit the Learning@Cisco Booth or contact [email protected]

DEVNET-3003

Page 54: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Appendix

DEVNET-3003 54

Page 55: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveDn<configResolveDn dn="sys/chassis-1" cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false"/>

Response<configResolveDn dn="sys/chassis-1" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"><outConfig> <equipmentChassis

ackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" connPath="A,B" connStatus="A,B" dn="sys/chassis-1" fabricEpDn="fabric/server/chassis-1" fltAggr="0" fsmDescr="" fsmPrev="PsuPolicyConfigSuccess" fsmProgr="100" fsmRmtInvErrCode="none" fsmRmtInvErrDescr="" fsmRmtInvRslt="" fsmStageDescr="" fsmStamp="2011-05-03T15:26:19.431" fsmStatus="nop" fsmTry="0" id="1" lcTs="1969-12-31T19:00:00.000" licGP="0" licState="license-ok" managingInst="A" model="N20-C6508" operQualifier="fan-perf" operState="operable" operability="operable" power="ok" presence="unknown" revision="0" seepromOperState="operable" serial="FOX1327G4VY" thermal="ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/>

</outConfig></configResolveDn>

What if inHierarchical="true" ? Lots of information

Methods – Queries - configResolveDn

DEVNET-3003 55

Page 56: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveDns<configResolveDns cookie="1253731066/6e75af90-66c2-4f56-9c9f-fc7167d793bd" inHierarchical="false"> <inDns> <dn value="sys/chassis-1" /> <dn value="sys/chassis-1/blade-1/board/cpu-1" /> <dn value="sys/chassis-1/blade-1/board/t-stats" /> <dn value="sys/chassis-7/blade-8" /> </inDns></configResolveDns>

Methods – Queries – configResolveDns

DEVNET-3003 56

Page 57: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveDns<configResolveDns cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"><outConfigs> <processorUnit

arch="Xeon" cores="4" coresEnabled="4" dn="sys/chassis-1/blade-1/board/cpu-1...voltage="not-supported"/>

<equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" ... thermal="ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/></outConfigs>

<outUnresolved> <dn value="sys/chassis-1/blade-1/board/t-stats"/> <-- Not a real dn <dn value="sys/chassis-7/blade-8"/> <-- This blade is not present </outUnresolved></configResolveDns>

Methods – Queries – configResolveDns - continued

DEVNET-3003 57

Page 58: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveClass<configResolveClass classId="equipmentChassis" cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false"/>

<configResolveClass cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes" classId="equipmentChassis"><outConfigs> <equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" connPath="A,B" connStatus="A,B" dn="sys/chassis-1" . . . thermal="ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/>

<equipmentChassisackProgressIndicator="ack-not-in-progress" adminState="acknowledged" configState="ok" connPath="A,B" connStatus="A,B" dn="sys/chassis-2" . . . thermal=”ok" usrLbl="" vendor="Cisco Systems Inc" versionHolder="yes"/>

</outConfigs></configResolveClass>

Methods – Queries – configResolveClass

DEVNET-3003 58

Page 59: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveClasses<configResolveClasses cookie="1250544347/36ab394f-8680-44b5-ab5f-2fb037b39b72" inHierarchical="false"> <inIds> <classId value="computeBlade"/><classId value="equipmentChassis"/> </inIds></configResolveClasses>

<configResolveClasses cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"><outConfigs> <computeBlade dn="sys/chassis-1/blade-1" . . . /> <computeBlade dn="sys/chassis-3/blade-8" . . . /> <equipmentChassis dn="sys/chassis-1" . . . /> <equipmentChassis dn="sys/chassis-2" . . . /> <equipmentChassis dn="sys/chassis-3" . . . /> </outConfigs></configResolveClasses>

Methods – Queries – configResolveClasses

DEVNET-3003 59

Page 60: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configFindDnsByClassId

<configFindDnsByClassId classId="computeBlade" cookie="1250701677/6c33eda7-f74e-4b5e-a545-ff5d4deb9f6e"/>

<configFindDnsByClassId cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes" classId="computeBlade"> <outDns> <dn value="sys/chassis-1/blade-8"/> <dn value="sys/chassis-2/blade-8"/> <dn value="sys/chassis-1/blade-7"/> <dn value="sys/chassis-2/blade-7"/> <dn value="sys/chassis-1/blade-4"/> <dn value="sys/chassis-3/blade-4"/> </outDns></configFindDnsByClassId>

**** Notice no inHierarchical attribute *****

Methods – Queries – configFindDnsByClassId

DEVNET-3003 60

Page 61: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveChildren

<configResolveChildren classId="adaptorExtEthIf" inDn="sys/chassis-1/blade-1/adaptor-1” cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false" />

<configResolveChildren cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes" classId="adaptorExtEthIf"><outConfigs>

<adaptorExtEthIfadapterId="1" adminState="enabled" chassisId="N/A" discovery="absent" dn="sys/chassis-1/blade-1/adaptor-1/ext-eth-2" epDn="" fsmDescr="" . . . type=""/>

<adaptorExtEthIfadapterId="1" adminState="enabled" chassisId="N/A" discovery="absent" dn="sys/chassis-1/blade-1/adaptor-1/ext-eth-1" epDn="" fsmDescr="" . . . type=""/>

</outConfigs></configResolveChildren>

Methods – Queries – configResolveChildren – Class

DEVNET-3003 61

Page 62: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveChildren

<configResolveChildren inDn="sys/chassis-1/blade-1/adaptor-1” cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false" />

<configResolveChildren cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes" classId="adaptorExtEthIf">

<outConfigs> <all children objects /> </outConfigs></configResolveChildren>

Methods – Queries – configResolveChildren

DEVNET-3003 62

Page 63: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configResolveParent<configResolveParent dn="sys/chassis-1/blade-1/adaptor-1" cookie="1237436975/f9f68f50-6d52-45b4-839c-1a905126c0af" inHierarchical="false"/>

<configResolveParent dn="sys/chassis-1/blade-1/adaptor-1" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"> <outConfig> <computeBlade parent object /> </outConfig></configResolveParent>

Methods – Queries – configResolveParent

DEVNET-3003 63

Page 64: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

configScope<configScope dn="sys/chassis-1/blade-1/board" inClass="memoryUnit" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" inHierarchical="false" />

<configScope dn="sys/chassis-1/blade-1/board" cookie="1316708615/a86c94ad-9e03-44ae-8d6b-88d8c653610b" response="yes"> <outConfigs> <memoryUnitbank="0" capacity="2048" clock="1067" dn="sys/chassis-1/blade-1/board/memarray-1/mem-12" . . . />

<memoryUnitbank="0" capacity="2048" clock="1067" dn="sys/chassis-1/blade-1/board/memarray-1/mem-11" . . . />

</outConfigs></configScope>

Methods – Queries – configScope

DEVNET-3003 64

Page 65: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <gt> <ge>Greater Than <configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="memoryArray">

<inFilter> <gt class="memoryArray" property="currCapacity" value="1024" /> </inFilter></configResolveClass>

Greater Than or Equal<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="memoryArray">

<inFilter> <ge class="memoryArray" property="currCapacity" value="2048" /> </inFilter></configResolveClass>

Methods – Queries – Filters <gt> / <ge>

DEVNET-3003 65

Page 66: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <lt> <le>Less Than <configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false"

classId="memoryArray"> <inFilter> <lt class="memoryArray" property="currCapacity" value="12288" /> </inFilter></configResolveClass> Less Than or Equal<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="memoryArray">

<inFilter> <le class="memoryArray" property="currCapacity" value="12288" /> </inFilter></configResolveClass>

Methods – Queries – Filters <lt> / <le>

DEVNET-3003 66

Page 67: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <eq> <ne>Equal To <configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="lsServer">

<inFilter> <eq class="lsServer" property="assocState" value="associated" /> </inFilter></configResolveClass> Not Equal<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="lsServer">

<inFilter> <ne class="lsServer" property="assocState” value="associated" /> </inFilter></configResolveClass>

Methods – Queries – Filters <eq> / <ne>

DEVNET-3003 67

Page 68: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <wcard> <bw>Wildcard<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="adaptorUnit">

<inFilter> <wcard class="adaptorUnit" property="serial" value="QCI1*" /> </inFilter></configResolveClass> Between – This is inlcusive of the upper and lower bounds<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="memoryArray">

<inFilter> <bw class="memoryArray" property="populated" firstValue="1” secondValue="6"/>

</inFilter></configResolveClass>

Methods – Queries – Filters <wcard> / <bw>

DEVNET-3003 68

Page 69: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <anybit> <allbits>

Anybit<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="computeBlade">

<inFilter> <anybit class="computeBlade" property="connStatus" value="A,B" /> </inFilter></configResolveClass> Allbits<configResolveClass cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" inHierarchical="false" classId="lsServer">

<inFilter> <allbits class="lsServer" property="configQualifier” value="vnic-capacity,vhba-capacity" />

</inFilter></configResolveClass>

Methods – Queries – Filters <wcard> / <bw>

DEVNET-3003 69

Page 70: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <and> <or> <not>

And (Or Not)<configResolveClass inHierarchical="false" cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" classId="computeBlade">

<inFilter> <and> <or> <eq class="computeBlade" property="slotId" value="1"/> <eq class="computeBlade" property="slotId" value="8"/> </or> <not> <eq class="computeBlade" property="chassisId" value="5"/> </not> </and> </inFilter></configResolveClass>

Methods – Queries – Filters <and> / <or> / <not>

DEVNET-3003 70

Page 71: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Query Filters - <xor>

Exclusive Or<configResolveClass inHierarchical="false" cookie="1254230563/fe98cf5c-7113-4d57-b208-e5d8141e72e8" classId="computeBlade">

<inFilter> <xor> <eq class="computeBlade" property="slotId" value="6"/> <eq class="computeBlade" property="operPower" value="on"/> </xor> </inFilter></configResolveClass>

Methods – Queries – Filters <xor>

DEVNET-3003 71

Page 72: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMos cookie="1241537386/74c123ec-1659-4f39-b292-4316beb61dcd" inHierarchical="yes">

<inConfigs> <pair key="sys/user-ext/jomcdono_user"> <aaaUser descr="" dn="sys/user-ext/jomcdono_user" email="[email protected]" expires="no" name="jomcdono" firstName="John" lastName="McDonough" phone="212-555-1212" pwd="cisco!123" status="created"> <aaaSshAuth data="" strType="none"></aaaSshAuth> <aaaUserRole name="admin"></aaaUserRole> </aaaUser> </pair> <pair key="org-root/org-IT" > <orgOrg dn="org-root/org-IT" name="IT" status="created" /> </pair> </inConfigs></configConfMos>

Methods – configConfMos – User and Org

DEVNET-3003 72

Page 73: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

<configConfMoGroup cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700" inHierarchical="false">

<inDns> <dn value="sys/chassis-1/blade-1"/> <dn value="sys/chassis-1/blade-3"/> <dn value="sys/chassis-1/blade-5"/> <dn value="sys/chassis-1/blade-7"/> </inDns> <inConfig> <computeBlade usrLbl="jomcdono"/> </inConfig></configConfMoGroup>

Methods – configConfMoGroup – User Label

DEVNET-3003 73

Page 74: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Ack a Single fault<faultAckFault inHierarchical="false" cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700" inId="10120" />

Ack Multiple faults<faultAckFaults cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700"> <inIds> <id value="10656"/> <id value="10660"/> </inIds></faultAckFaults>

Methods – faultAckFault /faultAckFaults

DEVNET-3003 74

Page 75: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Instantiate a template<lsInstantiateTemplate dn="org-root/ls-service-templ-001" cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700" inTargetOrg="org-root" inServerName="SP1" inHierarchical="no"></lsInstantiateTemplate>

Instantiate several templates<lsInstantiateNTemplate dn="org-root/ls-service-templ-001" cookie=" 1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700"

inTargetOrg="org-root" inServerNamePrefixOrEmpty="SP" inNumberOf="2" inHierarchical="no"></lsInstantiateNTemplate>

Methods – lsInstantiateTemplate & lsInstantiateNTemplate

DEVNET-3003 75

Page 76: UCS Management APIs A Technical Deep Dive

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public

Clone a service profile or service profile template<lsClone dn="org-root/ls-SP1" cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700"

inTargetOrg="org-root" inServerName="CP-1" inHierarchical="no"></lsClone>

Create a template from a Service Profile<lsTemplatise dn="org-root/ls-SP1" cookie="1316718600/21cd19fe-1a95-4bb7-87b7-c2846c8ff700"

inTargetOrg="org-root" inTemplateName="tempate-2" inTemplateType="initial-template" inHierarchical="no"></lsTemplatise>

Methods – lsClone & lsTemplatise

DEVNET-3003 76