ポリシーベースの APIC-EM と使い方について学ぶ。
Python を使ったカスタムスクリプトを書く。
前提条件
APIC-EM 1.3 もしくはそれより後のバージョンを使います。
Python バージョン 3.x がサンプルスクリプトを実行するために必要です。
Python について詳しくない場合はパート1のベーシックから始めてください。
Python について詳しい場合はパート2 から始めてください。
開始する
シスコのイベントでシスコから提供されたハードウェアを使っている場合、
ラボファイルは C:\apicem-apis-with-python-sample-codes\policy-labs にあります。
mkdir \apicem-apis-with-python-sample-codes\policy-labs\<UniqueName> を入力してご自身の作業用ディレクトリを作成してください。
ご自身の PC で作業をしている場合は、下記のステップに従ってください。
Python3 と Git をご自身のコンピュータにインストールしてください。
Download and install Git from https://git-scm.com/downloads.
GitHub からラボファイルをダウンロードし、エンターを押してください。
cd <your working directory>
シスコライブイベントで DevNet Zone にいる場合、Git コマンドウィンドウを開いてください。下記のうちの1つを行ってください。
タスクバーで Git コマンドアイコンをクリックしてください。
実行バーに git cmd と入力してください。
Git コマンドウィンドで、下記のコマンドを入力してください。
git clone https://github.com/CiscoDevNet/apicem-apis-with-python-sample-codes
git clone を完成すると、ここの説明で必要なファイル全てを取得したことになります。
シスコイベントにいない場合、Python スクリプトを実行するために、コールを行うためにほしいスクリプトのシスコ APIC-EM の IP アドレスに設定する必要があります。
この変数は apiem_config.py ファイルにあります。
例えば下記のように使われています。
ip = 'https://sandboxapicem.cisco.com'
サンプルを実行してみましょう
スクリプトを実行するために、下記のステップを行ってください。
1.ターミナルを開いて、サンプルコードが置いているディレクトリに移動してください。
基本的には、作業ディレクトリは \apicem-apis-with-python-sample-codes\policy-labs です。
Python3 を呼び出す
mac OS か Linux 上で、 python3 <programName> を入力します。
Windows 上では、py –3 <programName> か python <programName> と入力します。
下記のとおり、Python IDE と IDLE のどちらか好きなほうを使うことができます。
Mac では、ターミナル内で Python3 向けの IDLE を開くために idle3 と入力してください。
Windows 上では、スタートメニューから IDLE を開始してください。
ステップ1: EasyQoS と API に関することを理解する
前のセッションのとおり、全ての Python サンプルスクリプトはフラットディレクトリ内で実行されます。apicem\_config.py ファイルは普段異なる環境向けにパラメータを設定するために使われています。
それらのパラメータは APIC-EM IP (ポート番号を含む)、username, password と apic-em API バージョンナンバーです。
ご自身の APIC-EM を使うときに、これは修正が必要なファイルです。全てのスクリプトは apicem.py をインポートしてなければなりません。
しかしながら、このステップのために、apicem.py を異なる方法で使います。
apicem.py スクリプト:
apicem.pyークリックして展開してください。
ステップ2:ポリシータグの作成
ご自身のネットワークにおいて、デバイス上の QoS を設定するためにまず初めに QoS ポリシーを適用したいデバイスの範囲を定義してください。
このためのポリシータグを使います。そして、その範囲の QoS ポリシーを定義します。シスコ APIC-EM はご自身の選んだものを取得し、それらを適切なデバイス設定用に変換しますし、スコープ内で定義されたデバイス上に QoS 設定としてそれらを展開します。
ポリシーエレメンツ
ポリシーエレメンツは下記のエレメンツを含みます。
ポリシースコープーポリシーで設定された同じポリシータグとデバイスのグループ
ご自身のネットワークで使われているアプリケーションーソフトウェアプログラムかネットワークシグナリングプロトコル。EasyQoS はネットワークベースのアプリケーション認識と
およそ 1400 のアプリケーションとサブアプリケーションを含む第二世代アプリケーションライブラリを含みます。このセッションでは、ポリシーを作成するために使われてたカスタムアプリケーションを作成します。
Traffic Classes ー同様のトラフィックが必要なアプリケーションを含むグループであるため、簡単にポリシーを設定するアプリケーションのグループ。
Business-relevance ーご自身のビジネスとオペレーションにどのように関連するのかということによって与えられたアプリケーションを分別する属性。その属性は、ビジネス関連、デフォルトとビジネス以外です。
目的
ポリシータグを作成するための API に関する EasyQoS をどのように使うのか学びます。
以下は APIC-EM API を使用したポリシーを作成するステップです。
1.ポリシータグを作成する。
POST /policy/tag
2.ポリシースコープ向けのネットワークデバイスにポリシータグを添付します。(利用可能な状態にした EasyQoS が欲しい場所)
POST /policy/tag/association
3.ポリシー内で使われているアプリケーションを1つかそれ以上選択します。必要な場合、カスタムアプリケーションを作成します。
POST /application
4.ポリシーを作成し、適用します。
POST /policy
タスク1-ポリシータグを作成する
POST /policy/tag API を使うことは簡単です。:ポリシータグ属性にタグネームを割り当て、POST リクエスト向け
{
"policyTag": "put your policy tag name here"
}
コード―ーポリシータグを作成する
ソースコードファイル: lab1-1-post-policy-tag.py
下記を入力し、Python ファイルを実行してください。
Linux か MacOS では、: python3 lab1-1-post-policy-tag.py
Windows 上では: py -3 lab1-1-post-policy-tag.py か python lab1-1-post-policy-tag.py
コードリスティング: lab1-1-post-policy-tag.py
lab1-1-post-policy-tag.py ークリックして Output を展開してください。-クリックして展開してください。
ポリシータグが作成されたのか確認するために、GET /policy/tag API を使って下さい。
Executing GET 'https://sandboxapicem.cisco.com/api/v1/policy/tag'
GET 'policy/tag' Status: 200
{
"response": [
{
"policyTag": "devnet_tag"
}
],
"version": "1.0"
}
ステップ3: ポリシータグの割り当てを作成する
ポリシーエレメンツ
ポリシースコープ: ポリシーで設定された同じポリシータグとデバイスのグループ
アプリケーション: ご自身のネットワークで使われているソフトウェアプログラムかネットワークシグナリングプロトコル。EasyQoS は Cisco ネットワークベースアプリケーション、
第二世代 ( NBAR2 ) アプリケーションライブラリ(およそ1400にアプリケーションと)、サブアプリケーションを含みます。
このセッションにおいて、ポリシー作成のために使われるカスタムアプリケーションを作ります。
同様のトラフィックがあるアプリケーションを含んでいるそのグループで必要なため、トラフィッククラスーポリシーを簡単に設定するアプリケーションのグループです。
ビジネス関連ー与えられたアプリケーションをご自身のビジネスとオペレーションとの関連性によって分けられる属性
属性は、ビジネス関連、デフォルト、ビジネス関連以外です。
目的
ネットワークデバイスとポリシーを関連付ける EasyQos 関連の API の使い方を学ぶ
下記の APIC-EM API を使っているポリシーを作成する
1.ポリシータグを作成する
POST /policy/tag
2.ポリシースコープ向けのネットワークデバイスにポリシータグをつける。( 有効にした EasyQOS が欲しい場所に )
POST /policy/tag/association
3.ポリシー内で使われる1つかそれ以上のアプリケーションを選択する。必要であれば、カスタムアプリケーションを作成する。
POST /application
4.ポリシーの作成と適用
POST /policy
タスク2-ポリシースコープ向けのネットワークデバイスにポリシータグをつける。
ポリシースコープは、ポリシーを設定するデバイスのグループです。このステップでは、下記の事項を認識しておく必要があります。
どのデバイスが含まれるか。
デバイスに割り当てられるネットワークデバイス ID。
どのポリシータグを使うか。
このケースでは、ステップ1でご自身が作成したポリシータグを使います。今、これらの最小限の2つの属性を持っており、POST /policy/tag/association のための JSON オブジェクトを作成する準備が整いました。
{
"policyTag":"name of policy tag",
"networkDevices":[{"deviceId":"put the network device id here"}]
}
ソースコードの要約
1. GET '/network-device' を使って、IP アドレス/デバイスネームのリストを作成します。
2. ユーザがリストからネットワークデバイスを選択するよう促します。
3. GET '/policy/tag' を使って、ポリシータグリストをビルドします。
4. ユーザにポリシータグを選択するよう促します。
5. POST '/policy/tag/association' を使ってデバイスをタグ付けします。
Python ファイルを実行するために、下記を入力してください。
Linux か MacOS では、: python3 lab2-1-post-policy-tag-association.py
Windows では: py -3 lab2-1-post-policy-tag-association.py か python lab2-1-post-policy-tag-association.py
コードリスティング:lab2-1-post-policy-tag-association.py
lab2-1-post-policy-tag-association.py -Output をクリックして展開 - クリックして展開
注意:アソシエーションが作成されたか確認するために、lab2-2-get-policy-tag-association.py スクリプトを実行できます。
次のステップ
ステップ4:カスタム NBAR2 アプリケーションを作成する
ポリシーエレメンツ
ポリシースコープ: ポリシーで設定された同じポリシータグのデバイスグループ
アプリケーション: ご自身のネットワーク内で使われているソフトウェアプログラムかネットワークシグナリングプロトコル。EasyQos は Cisco Network-Based Application Recognition、
およそ 1400 のアプリケーションを含む second generation ( NBAR2 ) アプリケーションライブラリとサブアプリケーションを含んでいます。
このセッションでは、ポリシー作成に使うカスタムアプリケーションを作成します。
トラフィッククラス: ポリシー設定を簡単にするアプリケーションのグループ
ビジネス関連: ご自身のビジネスとオペレーションにどのように関連しているかによって与えられたアプリケーションをクラス分けする属性。その属性は、ビジネス関連、デフォルト、非ビジネス関連です。
目的
アプリケーションを作成する API に関連する EasyQos をどのように使うか学ぶ。
APIC-EM API を使ったポリシーを作成する下記のステップを使います。
1.ポリシータグを作成する。
2.ポリシースコープ用のネットワークデバイスのポリシータグを添付する。(利用可能にしたい EasyQOS が欲しい場所)
3.ポリシーで使われるアプリケーションを1つかそれ以上選択する。必要な場合、カスタムアプリケーションを作成する。
4.ポリシーを作成し、適用する。
タスク3- NBAR2 アプリケーションを選択するかカスタム NBAR2 アプリケーションを作成する。
カスタムアプリケーションを作成するために必要に最低限の情報を開示したい場合、ポリシーを作成するアプリケーションを選択できます。
NBAR2 についてのさらなる情報は、NBAR2 か次世代の NBAR をご覧ください。
POST /application の JSON オブジェクトの例について、
より詳しい情報については、APIC-EM API リファレンスドキュメントをご覧ください。
[{"trafficClass":"BULK_DATA",
"helpString":testApp,
"name":testApp,
"appProtocol": "tcp/udp",
"udpPorts": "8888",
"tcpPorts": "8888",
"pfrThresholdJitter":1,
"pfrThresholdLossRate":50,
"pfrThresholdOneWayDelay":500,
"pfrThresholdJitterPriority":1,
"pfrThresholdLossRatePriority":2,
"pfrThresholdOneWayDelayPriority":3,
"category":"other",
"subCategory":"other",
"categoryId":"",
"longDescription": "custom application",
"ignoreConflict":True
}]
ソースコードの要約
1.POST /application API の JSON オブジェクトをロードする。
2.JSON オブジェクト内のカテゴリネームによってカテゴリ ID を取得する。
3.ユーザにアプリケーションネームを入力するよう促す。
4.ユーザが入力したい内容を基に、JSON オブジェクトを設定する。
5. POST リクエストを実行する。
ソースコードファイル: lab3-1-post-application.py
下記の内容を入力し、Python ファイルを実行する。
Linux か MacOS では、 python3 lab3-1-post-application.py
Windows では、 py -3 lab3-1-post-application.py か python lab3-1-post-application.py
このコードを試してみる際に、さらに一意のアプリケーション名を使うため、リソースの競合を防ぐためにポートナンバーとカテゴリ ID のような他のパラメータを変更する必要があります。
コードリスティング:lab3-1-post-application.py
lab3-1-post-application.py - Output をクリックして展開 - クリックして展開
GET /application を呼び出すことで UI で結果を確認できます。 ( lab3-2-get-custom-application.py をご覧ください。)
通常は、これは APIC-EM がおよそ1400のアプリケーションを含んでいるため、ある程度の時間がかかります。
しかしながら、GET /application API 内で利用可能なフィルターがあります。もしご自身がこの GET リクエスト内で {"isCustom":True} パラメータを設定する場合、カスタムアプリケーションのみをすぐに返します。
ステップ5: ポリシーのプレビュー
今までのところで、ポリシーの作成方法とネットワークデバイスへの送り方を学びました。このラボでは、ご自身でポリシーを作成/適用をする前に、ネットワークデバイスへ何がプッシュされるのか見ます。
ポリシーエレメンツ
ポリシーエレメンツは下記のエレメンツを含みます。
ポリシースコープ:ポリシーで設定された同じポリシータグとデバイスのグループ
アプリケーション: ご自身のネットワークで使われているソフトウェアプログラムかネットワークシグナリングプロトコル。EasyQoS は Cisco Network-Based Application Recognition、およそ1400のアプリケーションとサブアプリケーションを含む次世代 ( NBAR2 ) アプリケーションライブラリを含んでいます。
トラフィッククラス: 同様のトラフィックニーズをもつアプリケーションを含むグループのため、ポリシーの設定を簡単にするアプリケーションのグループ
ビジネス関連:
目的
プレーンテキストフォーマット ( IOS コンフィグ ) 内でポリシープレビューを作成する方法を学びます。
APIC-EM API を使っているポリシーを作成するためにこれらのステップを使いました。これらのステップはさらにポリシープレビューを適用します。
1. ポリシータグの作成
POST /policy/tag
2.ポリシースコープのためのネットワークデバイス用のポリシータグを添付する。 (利用可能な EasyQoS が欲しい場所)
POST /policy/tag/association
3.ポリシー内で使われる1つかそれ以上のアプリケーションを選択する。必要であれば、カスタムアプリケーションを作成する。
POST /application
4.ポリシープレビューの作成
POST /policy/preview
このステップとプレビューの作成の JSON オブジェクトはポリシーの作成のために使われているステップと同じですが、2つの追加の属性( networkDeviceIds と state )とは異なります。下記の特徴をご確認ください。
新しい機能 ( get\_file\_with\_id( ) ) を除き、全ての機能は lab5-1-post-policy.py という次のセッションで実験するを作成するために使われているものと同じです。
これらの機能は POST policy/preview の JSON オブジェクトを設定するためのパラメータを与えます。
プレビューのコンテンツはファイルに保存されます。GET file/{fileId} API を使っているファイルコンテンツを取得するための機能である get\_file\_with\_id( ) を使うことになります。
ソースコード要約
1.ユーザにポリシー名を入力するよう促します。
2. ユーザにポリシータグを選択するよう促します。
3.ユーザにアプリケーションを1つ選択するよう促します。
4.ポリシープレビューを作成します。
ソースコードファイル: lab4-1-policy-preview.py
Python ファイルを実行するために、下記を入力してください。
Linux か macOS: python3 lab4-1-policy-preview.py
Windows の場合: py -3 lab4-1-policy-preview.py か python lab4-1-policy-preview.py
コードリスティング: lab4-1-policy-preview.py
lab4-1-policy-preview.py - クリックして展開
下記の機能は policy/preview API からのリーズンを表示jします。
下記のコードスニペットは前機能からレスポンスを取得する方法を表示しています。
1行目の For ループは ”response” 属性全体を反復しています。preview = response_json["response"]
2行目の for ループは ”policy” 属性を反復しています。
3行目にあるコードはポリシープレビューが作成されたかという確認をしており、プレビューが作成されていない場合、”policyName” を確認することができません。
1つの目的のためだけにコードのたくさんの行を作成しました。ー例えば ”field” を取得するため。一旦、この ID を持つと、GET /file/<id> API を使い、ポリシープレビューを取得することができます。
POST policy/preview のステータスが実行されていない時にさらに field を取得するかもしれませんが、前のコンテンツは完了してないでしょう。
lab4-1-policy-preview.py のアウトプットは下記と同様に見えるでしょう。
Output - クリックして展開
セッションサマリ
これは、ラボセッションをプリビューするポリシーを結論づけます。次のラボセッションでは、ポリシータグ、ポリシータグアソシエーション、アプリケーションとポリシーを作成、削除する方法を実験します。
注意:DB オンリーの sandbox を使っているというような場合、いくつかのシチュエーションにおいてポリシーをプレビューできないかもしれません。
もしご自身がポリシープレビューを取得できない場合、ポリシーの競合があると考えられます。GET task/<id> API を適用した POST policy/preview から返ってきたタスク ID を使っている場合、下記のようなレスポンスを取得すると考えられます。
{
"response": {
"startTime": 1481755856924,
"endTime": 1481755857448,
"progress": "Policy Conflict",
"version": 1481755856924,
"errorCode": "ResourceConflict",
"serviceType": "Policy Service",
"rootId": "45067ecd-d6d4-4542-90bb-e8b23b1f325f",
"failureReason": "Policy Conflict Detected: Application [id: d3a4b24c-5f71-451a-8578-45b4ef9ee324, name: devnet_app] occurs in multiple Policies: [id: 9cf9ec9b-5259-4333-93fe-b9103839d466, name: devnet_policy], [id: f1d52e2c-31a0-4546-8071-cdb82739a6fa, name: test].",
"isError": true,
"operationIdList": [
"2ea2d6fe-132a-4cae-b5c4-37229d0a64e1"
],
"id": "45067ecd-d6d4-4542-90bb-e8b23b1f325f"
},
"version": "1.0"
}
ポリシープレビュースクリプトは、ユーザにコンテンツを表示した後、ポリシープレビューコンテンツを削除します。もしポリシープレビューが止まった場合、lab4-2-delete-policy-preview.py スクリプトを使って、それを削除することができます。
ステップ6:
ポリシーの作成と適用はポリシー作成の最後のステップです。
ポリシーエレメンツ
ポリシースコープ:ポリシーで設定されたのと同じポリシータグのデバイスグループ
アプリケーション:ご自身のネットワーク内で使われているソフトウェアプリグラムやネットワークシグナリングプロトコル。EasyQoS
およそ 1400 のアプリケーションとサブアプリケーションを含む第二世代アプリケーションライブラリを含みます。このセッションでは、ポリシーを作成するために使われてたカスタムアプリケーションを作成します。
Traffic Classes ー同様のトラフィックが必要なアプリケーションを含むグループであるため、簡単にポリシーを設定するアプリケーションのグループ。
Business-relevance ーご自身のビジネスとオペレーションにどのように関連するのかということによって与えられたアプリケーションを分別する属性。その属性は、ビジネス関連、デフォルトとビジネス以外です。
目的
ポリシー作成のための API に関連する EasyQoS の使い方
APIC-EM APIs を使ったポリシーを作成するため、下記のステップに従ってください。
1.ポリシータグの作成
POST /policy/tag
2.ポリシースコープ向けのネットワークデバイスにポリシータグを添付します。( 利用可能な状態にした EasyQoS が欲しい場所 )
POST /policy/tag/association
3.ポリシー内で使われる1つかそれ以上のアプリケーションを選択する。必要であれば、カスタムアプリケーションを作成する。
POST /application
4.ポリシーを作成し、適用します。
POST /policy
最初の3つのラボセッションでは、ポリシースコープとアプリケーションを取得しました。今、ポリシー作成の準備が整いました。
このセッションではポリシーをどのように作成するのかひとまず説明するだけとなっています。
DB-onlyのラボを使っており、NBAR アプリケーション中の有効化されていないパラメータを使っているため、ポリシーは作成できますが、デバイスへそのポリシーの適用ができません。
POST /policyの JSON オブジェクトの例です。これは "networkDeviceIds" と "state" 属性のないポリシー JSON をプレビューするのと同じです。
より詳細については、
APIC-EM API Reference Docs をご確認ください。
[{
"policyName": "testPolicy",
"policyOwner": "admin",
"policyPriority": 4095,
"resource": {
"applications": [
{
"appName": "testApp",
"id": "ce6dc820-c2b5-456d-b648-5cf559e794b7"
}]
},
"actions": [
"SET_PROPERTY"
],
"policyScope": "test_Policy_tag",
"actionProperty": {
"relevanceLevel": "Business-Relevant"
}
}]
ソースコード要約
1.ユーザにポリシー名を入力するよう促します。
2.ユーザにポリシータグを選択するよう促します。
3.ユーザにアプリケーションを1つ選択するよう促します。
4.ポリシープレビューを作成します。
APIC-EM API Reference Docs
ソースコードファイル: lab5-1-post-policy.py
python ファイルを実行するために、下記を入力してください。
Linux もしくは macOS の場合: python3 lab5-1-post-policy.py
Windows の場合: py -3 lab5-1-post-policy.py か python lab5-1-post-policy.py
コードリスティング: lab5-1-post-policy.py
lab5-1-post-policy.py - Output をクリックして展開 - クリックして展開
ポリシーが作成されたか確認するために、下記のコードを使えます。これはポリシーが作成されたかどうかが確認できるだけということに注意してください。ポリシーが適用されたということやアクティベートされたかということについては、確認できません。
ソースコードファイル: lab5-2-get-policy.py
python ファイルを実行するために、下記を入力してください。
Linux もしくは macOS の場合: python3 lab5-2-get-policy.py
Windows: py -3 lab5-2-get-policy.py か python lab5-2-get-policy.py
コードリスティング: lab5-2-get-policy.py
lab5-2-get-policy.py - Output をクリックし、展開 - クリックして展開
ステップ7: Delete ポリシー、カスタム NBAR2 アプリケーション、ポリシータグアソシエーションとポリシータグ
UI や API からカスタム NBAR2 アプリケーションを作成し、これからそれを削除しようとしています。下記のステップに従ってポリシーを作成した前項を思い出してください。
1. ポリシータグの作成
POST /policy/tag
2. ポリシースコープ向けのネットワークデバイスのポリシータグを添付する。 ( EasyQoS を利用可能にしたい場所で )
POST /policy/tag/association
3. ポリシー内で1つかそれ以上のアプリケーションを選択し、必要であればカスタムポリシーを作成します。( カスタムアプリケーションの作成は必須ではありません。 )
POST /application
4. ポリシーの作成と適用
POST /policy
このセッションでは、表示されたステップをどのように取り消すのか学びます。このプロセスは ”Las In First Out” スタックオペレーションと同じです。ポリシーの削除から開始します。
1. ポリシーの削除
DELETE /policy
2. ポリシー内で使用されているカスタムアプリケーションを削除します。
DELETE /application (optional)
3. タグとネットワークデバイス間の割り当てを削除します。
DELETE /policy/tag/association
4. ポリシータグを削除する。
DELETE /policy/tag
目的
ポリシーとカスタム NBAR2 アプリケーション、ポリシータグアソシエーションとポリシータグを削除する方法を学びます。
DELETE API はシンプルに見えますが、削除ポリシーやアプリケーションはポリシーが作成された方法のために APIC-EM デフォルト NBAR2 アプリケーションという理由で単純ではありません。
このセッションは、これらの API を利用するときに注意を払うべき事項を取り上げています。
削除ポリシー
BUSINESS_RELEVANT_CVD_Policy,DEFAULT_CVD_Policy と BUSINESS_IRRELEVANT_CVD_Policy はデフォルトポリシーで削除することができません。
ソースコードの要約
1. 全てのポリシーをリストするための "GET /policy" API を使う
2. "DELETE /policy" API を使って削除するポリシーを選択する。
APIC-EM API リファレンスドキュメント
ソースコードファイル: lab6-1-delete-policy.py
Python file を実行し、下記を入力する。
Linux もしくは macOS:python3 lab6-1-delete-policy.py
Windows: py -3 lab6-1-delete-policy.py や python lab6-1-delete-policy.py
コードリスティング: lab6-1-delete-policy.py
lab6-1-delete-policy.py - クリックして Output を展開- クリックして展開
カスタム NBAR2 アプリケーションを削除する。
NBAR2 アプリケーションを削除する API は delete /application/{id} です。全てのアプリケーションをリストするGET /application を使い、削除したいアプリケーション名を見つけることができ、その ID を取得できます。
しかしながら、APIC-EM は通常何千ものデフォルト NBAR2 アプリケーションを含んでいます。
これはご自身が作成したカスタムアプリケーションを発見するのを難しくしています。
その代わり、カスタムアプリケーションのみをリストすることができます。そうするために、GET /application リクエスト内の {"isCustom":True} にパラメータをセットするとカスタムアプリケーションのみを返します。
ソースコード要約
1.リスト作成する {"isCustom":True} フィルターと "GET /application" API を使う。
2.カスタムアプリケーションリストを表示する。
3.ユーザにリストからアプリケーションを選択するよう促す。
4.ユーザが選択したアプリケーションを削除する。
コードー DELETE /application (カスタムアプリケーション)
APIC-EM API リファレンスドキュメント
このコードでは、削除のため選択するユーザ向けのカスタムアプリケーションを取得するだけです。
ソースコードファイル:lab6-2-delete-custom-application.py
Python ファイルを実行するため、下記を入力してください。
Linux か Mac OS で: python3 lab6-2-delete-custom-application.py
Windows で: py -3 lab6-2-delete-custom-application.py や python lab6-2-delete-custom-application.py
コードリスティング : lab6-2-delete-custom-application.py
lab6-2-delete-custom-application.py - クリックして Output を展開する - クリックして展開する
Delete ポリシータグアソシエーション
This is to undo POST /policy/tag/association ネットワークデバイスに現在割り当てられているポリシータグを削除することができません。
ポリシータグを削除する前に、ポリシータグアソシエーションを確認する必要があります。
(GET policy/tag/association)
ポリシータグアソシエーションを削除するための API は DELETE /policy/tag/association
しかしながら、この DELETE リクエストは単純な DELETE リクエストとは異なります。 さらに2つのパラメータが必要です。: policyTag と deviceId
これらの2つの値は GET policy/tag/association から取得可能です。
ソースコード要約
1. GET /policy/tag/association API を使い、リストを作成する。
2. ポリシータグアソシエーションを表示する。
3. ユーザがリストからタグアソシエーションを選択するよう促す。
4. ユーザが選択したものを基準に policyTag と deviceId の値を取得する。
5. 2つのパラメータで DELETE /policy/tag/association API を適用する。
コード―ー DELETE /policy/tag/association
APIC-EM API リファレンスドキュメント
ソースコードファイル: lab6-3-delete-policy-tag-association.py
python ファイルを実行するために、下記を入力してください。
Linux もしくは macOS の場合: python3 lab6-3-delete-policy-tag-association.py
Windows の場合: py -3 lab6-3-delete-policy-tag-association.py もしくは python lab6-3-delete-policy-tag-association.py
コードリスティング : lab6-3-delete-policy-tag-association.py
lab6-3-delete-policy-tag-association.py - クリックして Output を展開する - クリックして展開する。
Delete ポリシータグ
これは POST /policy/tag を取り消します。削除する前にどのネットワークデバイスにも割り当てられていないタグであることを確認してください。
ポリシータグを削除する API は DELETE /policy/tag です。
ソースコードファイル要約
1. リストを作成する GET /policy/tag/association API を使う。
2. ポリシータグの割り当てリストを表示すると、ユーザはどのタグが現在使われているのか確認することができます。
3. ユーザにリストから割り当てられていないタグを選択するよう促します。
4. DELETE /policy/tag API を適用します。
コード--DELETE /policy/tag/association
APIC-EM API リファレンスドキュメント
ソースコードファイル: lab6-4-delete-policy-tag.py
Python ファイルを実行するために、下記を入力してください。
Linux もしくは macOS の場合: python3 lab6-4-delete-policy-tag.py
Windows の場合: py -3 lab6-4-delete-policy-tag.py か python lab6-4-delete-policy-tag.py
コードリスティング: lab6-4-delete-policy-tag.py
lab6-4-delete-policy-tag.py - クリックして Output を展開 - クリックして展開
セッションサマリ
DELETE API を実行する際に、独立性を考える必要があります。例えば、アプリケーションを削除する前に、どのポリシーにも使われていないことを確認しなければいけません。
もしデバイスに割り当てられているポリシータグを削除する場合、エラーが表示されることはありません。レスポンスステータスとして 202 ( Accepted ) を取得します。
もしクエリで GET /task/taskId を使う場合、レスポンスで下記のエラーメッセージを取得します。
"progress": "An error occurred while deleting policy tag myTag. Policy tag myTag is currently associated with device(s). Remove the association(s) before deleting the policy tag."
ユーザがポリシータグを削除する実際の出力を知らずに DELETE /policy/tag API を実行してしまうことを避けるためにスクリプト内でこの確認を行います。
コメント
0件のコメント
サインインしてコメントを残してください。