UCS Management APIs A Technical Deep Dive

Preview:

Citation preview

UCS Management APIsA Technical Deep Dive

John McDonough – Technical Marketing EngineerDEVNET-3003

© 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

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

Introduction – UCS ManagementA Technical Deep Dive

DEVNET-3003 3

© 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

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

Structure / Features / Model / FlowSuccess or Failure

DEVNET-3003 5

© 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

© 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

© 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

© 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

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

Methods / Sessions / Queries & Filters / Configurations / Events

DEVNET-3003 10

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

Methods – Sessions

DEVNET-3003 11

© 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

© 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

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

Methods – Queries & Filters

DEVNET-3003 14

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

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

Methods – Configurations

DEVNET-3003 25

© 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

© 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="jomcdono@cisco.com" 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

© 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="jomcdono@cisco.com" 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

© 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="jomcdono@cisco.com" 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

© 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

© 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

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

Methods – Events and Statistics

DEVNET-3003 32

© 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

© 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

© 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

© 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

© 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

© 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

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

Tools – Embedded / External

DEVNET-3003 39

© 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

© 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

© 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

© 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

© 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

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

Conclusion

DEVNET-3003 45

© 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

© 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

© 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

© 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

© 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

Thank you

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

© 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 ask-edu-pm-dcv@cisco.com

DEVNET-3003

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

Appendix

DEVNET-3003 54

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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="jomcdono@cisco.com" 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

© 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

© 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

© 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

© 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

Recommended