この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章の内容は、次のとおりです。
C シリーズ XML API には、すべてのモデル用の入力 XML スキーマ定義(xsd)ファイルと出力用のスキーマ定義ファイルが用意されています。
RACK-IN.xsd:このドキュメントでは、Cisco IMC XML API で受け入れられる有効な XML 要求の XML ドキュメント構造を定義しています。また、XML API configConfMo(設定)要求に指定できるクラスと属性も指定しています。
RACK-OUT.xsd:このドキュメントでは、Cisco IMC XML API で表示できる有効な XML 応答の XML ドキュメント構造を定義しています。また、XML API 応答に含まれていなければならないクラスと属性も指定しています。
これらのファイルは、Cisco IMC から入手できます。
RACK-IN.xsd:https://<Cisco IMC-IP>/visore/RACK-IN.xsd
RACK-OUT:https://<Cisco IMC-IP>/visore/RACK-OUT.xsd
また、これらのファイルを Cisco Developer Network(http://developer.cisco.com/web/unifiedcomputing/c-series-cimc-xml-api)からダウンロードすることもできます。
XML ドキュメントを XML スキーマ ファイルに照らし合わせて検証するには、使用可能ないずれかのオープン ソース ツールを使用できます。この項で使用している例では、検証用ツールとして、www.xmlsoft.org からダウンロードできる xmllint を使用しています。この検証には、プログラミング言語の XML スキーマ検証機能(たとえば、Java では xerces)を使用することもできます。
無効な configResolveClass 要求に対する RACK-IN.xsd の使用例
要求:
$cat myXMLRequest.xml <configResolveClass cookie="1360626069/7189c2b0-d57b-157b-8002-f4759de53d50" inHierarchical="false"/>
要求の検証:
/usr/bin/xmllint –schema ./RACK-IN.xsd myXMLRequest.xml <configResolveClass cookie="1360626069/7189c2b0-d57b-157b-8002-f4759de53d50" inHierarchical="false"/>
応答:
myXMLRequest.xml:1: element configResolveClass: Schemas validity error : Element 'configResolveClass': The attribute 'classId' is required but missing.前の例では、要求に「classId」が欠けているため、XML 要求の検証が失敗し、エラーが表示されます。
有効な configResolveClass 要求に対する RACK-IN.xsd の使用例
要求:
$cat myXMLRequest.xml <configResolveClass cookie="1360626069/7189c2b0-d57b-157b-8002-f4759de53d50" inHierarchical="false" classId="topSystem"/>
要求:
/usr/bin/xmllint -schema ./RACK-IN.xsd myXMLRequest.xml <configResolveClass cookie="1360626069/7189c2b0-d57b-157b-8002-f4759de53d50" inHierarchical="false" classId="topSystem"/>
前の例では、classResolveClass に対する XML 要求の検証が成功し、応答が表示されます。
無効な configConfMo 要求に対する RACK-IN.xsd の使用例
要求:
$cat setRackUnit.xml <configConfMo cookie="1300242644/ad04d239-d1aa-498d-b074-ccb923066003" dn="sys/rack-unit-1" inHierarchical="false"> <inConfig> <computeRackUnit adminPower="down" usrLbl="UCS server For Demo" availableMemory="16384" dn="sys/rack-unit-1"/> </inConfig> </configConfMo>
要求の検証:
/usr/bin/xmllint -schema ./RACK-IN.xsd /setRackUnit.xml <configConfMo cookie="1300242644/ad04d239-d1aa-498d-b074-ccb923066003" dn="sys/rack-unit-1"inHierarchical="false"> <inConfig> <computeRackUnit adminPower="down" usrLbl="UCS server For Demo" availableMemory="16384" dn="sys/rack-unit-1"/> </inConfig> </configConfMo>
応答:
/setRackUnit.xml:3: element computeRackUnit: Schemas validity error : Element 'computeRackUnit', attribute 'availableMemory': The attribute 'availableMemory' is not allowed. /setRackUnit.xml fails to validate
availableMemory 属性は、computeRackUnit クラスでは読み取り専用です。configCongMo XML を使用して設定できる computeRackUnit の読み取り/書き込み属性を確認するには、RACK-IN.xsd で computeRackUnit 定義を調べてください。サンプル スニペットを次に示します。
<!--computeRackUnit--> <xs:element name="computeRackUnit" type="computeRackUnit" substitutionGroup="managedObject"/> <xs:complexType name="computeRackUnit" mixed="true"> <xs:attribute name="adminPower"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="up"/> <xs:enumeration value="down"/> <xs:enumeration value="soft-shut-down"/> <xs:enumeration value="cycle-immediate"/> <xs:enumeration value="hard-reset-immediate"/> <xs:enumeration value="bmc-reset-immediate"/> <xs:enumeration value="bmc-reset-default"/> <xs:enumeration value="cmos-reset-immediate"/> <xs:enumeration value="diagnostic-interrupt"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="usrLbl"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[ !#$%&\(\)\*\+,\-\./:;\?@\[\]_\{\|\}~a-zA-Z0-9]{0,64}"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dn" type="referenceObject"/> <xs:attribute name="rn" type="referenceRn"/> <xs:attribute name="status" type="objectStatus"/> </xs:complexType>
無効な configConfMo 要求に対する RACK-IN.xsd の使用例
要求:
$ cat setBootOrder.xml <configConfMo cookie="1360205300/79c672f0-d519-1519-8004-30339ee53d50" inHierarchical="true" dn="sys/rack-unit-1/boot-policy"> <inConfig> <lsbootDef dn="sys/rack-unit-1/boot-policy" name="boot-policy" purpose="operational" rebootOnUpdate="no"> <lsbootVirtualMedia access="read-only" order="2" type="virtual-media" rn="vm-read-only"/> <lsbootVirtualMedia access="read-write" order="3" type="virtual-media" rn="vm-read-write"/> <lsbootLan rn="lan-read-only" access="read-only" order="4" prot="pxe" type="lan"/> <lsbootStorage rn="storage-read-write" access="read-write" order="1" type="storage"> <lsbootLocalStorage rn="local-storage"/> </lsbootStorage> <lsbootEfi rn="efi-read-only" access="read-only" order="5" type="efi"/> </lsbootDef> </inConfig> </configConfMo>
要求の検証:
/usr/bin/xmllint -schema ./RACK-IN.xsd ./setBootOrder.xml <configConfMo cookie="1360205300/79c672f0-d519-1519-8004-30339ee53d50" inHierarchical="true" dn="sys/rack-unit-1/boot-policy"> <inConfig> <lsbootDef dn="sys/rack-unit-1/boot-policy" name="boot-policy" purpose="operational" rebootOnUpdate="no"> <lsbootVirtualMedia access="read-only" order="2" type="virtual-media" rn="vm-read-only"/> <lsbootVirtualMedia access="read-write" order="3" type="virtual-media" rn="vm-read-write"/> <lsbootLan rn="lan-read-only" access="read-only" order="4" prot="pxe" type="lan"/> <lsbootStorage rn="storage-read-write" access="read-write" order="1" type="storage"> <lsbootLocalStorage rn="local-storage"/> </lsbootStorage> <lsbootEfi rn="efi-read-only" access="read-only" order="5" type="efi"/> </lsbootDef> </inConfig> </configConfMo>
応答:
./setBootOrder.xml:3: element lsbootDef: Schemas validity error : Element 'lsbootDef', attribute 'name': The attribute 'name' is not allowed. ./setBootOrder.xml:3: element lsbootDef: Schemas validity error : Element 'lsbootDef', attribute 'purpose': The attribute 'purpose' is not allowed. ./setBootOrder.xml fails to validate
lsBootDef クラスの name および purpose 属性は読み取り専用のため、configConMo/set 要求で使用できません。
有効な configConfMo 要求に対する RACK-IN.xsd の使用例
要求:
usr/bin/xmllint -schema ./RACK-IN.xsd /setRackUnit.xml <configConfMo cookie="1300242644/ad04d239-d1aa-498d-b074-ccb923066003" dn="sys/rack-unit-1" inHierarchical="false"> <inConfig> <computeRackUnit adminPower="down" usrLbl="UCS server For Demo" dn="sys/rack-unit-1"/> </inConfig> </configConfMo>
xsd ファイルにより要求が検証され、設定が完了します。
configResolveClass 要求に対する RACK-OUT.xsd の使用例
要求:
<configResolveClass cookie="1360632361/e892fa10-d57c-157c-8003-f4759de53d50"
inHierarchical="false" classId="computeRackUnit"/>'
https://172.xx.219.xx/nuova | xmllint -format - | xmllint -schema ./RACK-OUT.xsd -
応答:
<configResolveClass cookie="1360632361/e892fa10-d57c-157c-8003-f4759de53d50" response="yes" classId="computeRackUnit"> <outConfigs> <computeRackUnit dn="sys/rack-unit-1" adminPower="policy" availableMemory="16384" model="UCSC-server-name" memorySpeed="1333" name="UCS server_name" numOfAdaptors="1" numOfCores="16" numOfCoresEnabled="16" numOfCpus="2" numOfEthHostIfs="2" numOfFcHostIfs="3" numOfThreads="32" operPower="on" originalUuid="2E5D2295-F32D-48C9-BE8E-BAD36BE174FB" presence="equipped" serverId="1" serial="FCH1551V030" totalMemory="16384" usrLbl="SL2_=+@#$-;,./\" uuid="2E5D2295-F32D-48C9-BE8E-BAD36BE174FB" vendor="Cisco Systems Inc"/> </outConfigs> </configResolveClass>
RACK-OUT.xsd により出力の検証が正常に完了します。
configResolveClass 要求に対する RACK-OUT.xsd の使用例
要求:
$ /usr/bin/curl -k -d'<configResolveClass cookie="1361150931/a5bacff0-d5f5-15f5-8007-f4759de53d50" inHierarchical="true" classId="topSystem"/>' https://172.29.219.74/nuova > Cxxx_complete_MIT.xml real 0m35.065s user 0m0.016s sys 0m0.044s
応答の検証:
$ ls -l Cxxx_complete_MIT.xml -rw-r--r--. 1 sajaffer eng58 64905 Feb 17 17:46 Cxxx_complete_MIT.xml $ /usr/bin/xmllint -schema RACK-OUT.xsd Cxxx_complete_MIT.xml 1>/dev/null Cxxx_complete_MIT.xml validates
上記の XML 要求は、C シリーズ サーバの完全な管理情報ツリーを取得し、RACK-OUT.xsd に照らし合わせて応答を検証します。