この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章は、次の項で構成されています。
グループの管理
Cisco UCS Director に指定されたデータ(グループ名、説明、連絡先の詳細)で新しいグループを作成します。
サービス エンドユーザまたはグループ管理者を Cisco UCS Director に追加する前にグループを作成する必要があります。サービス エンドユーザまたはグループ管理者はグループに割り当てられます。グループ内のユーザは、権限に基づいて、リソースに対する読み取り/書き込み権限を継承します。
REST API は管理者のユーザ ID を使用して呼び出す必要があります。
/app/api/rest?formatType=json&opName=userAPICreateGroup&opData= {param0:{"groupId":8,"groupName":"SDK_Demo_Group","description":"testgroup", "parentGroupId":-1,"parentGroupName":"any","emailAddress":"sdk@cisco.com", "lastName":"sdk","firstName":"ay","phoneNumber":"2344566","address":"SanJose", "groupType":0,"enableBudget":true}}
int groupId:グループの一意の ID。
String groupName:グループまたは顧客組織の名前。
String description:オプション。グループまたは顧客組織の説明(必要な場合)。
int parentGroupId:親グループ ID が 0 より大きい場合、作成したグループ名は親グループ ID にマップされます。グループが親グループまたは組織に属している場合、parentId および parentGroupName パラメータは必須です。グループ タイプが 0 として設定されている場合、グループ名および電子メールアドレスは必須です。
String emailAddress:この電子メールは、必要に応じてサービス リクエストおよびリクエスト承認のステータスをグループ所有者に通知する目的で使用されます。
String lastName:オプション。グループ所有者の姓。
String firstName:オプション。グループ所有者の名。
String phoneNumber:オプション。グループ所有者の電話番号。
String address:オプション。グループ所有者の住所。
int groupType:グループ タイプは、管理者またはエンド ユーザに対しては 0、マネージド サービス プロバイダー(MSP)組織ユーザに対しては 1 と設定されます。
boolean enableBudget:予算監視を使用するグループの作成では、True に設定します。
import com.cisco.cuic.api.client.APIGroup; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.UserAPIGlobal; public class UserAPIGlobalExample { public static void main(String[] args)throws Exception { CuicServer server = CuicServer.getAPI("192.0.110.241","49B39356003846FFB5162C3E12F3DD07", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APIGroup apiGroup=new APIGroup(); apiGroup.setFirstName("SDK"); apiGroup.setLastName("cisco"); apiGroup.setGroupName("SDKGroup"); apiGroup.setEmailAddress("sdk@cisco.com"); apiGroup.setEnableBudget(false); int obj = instance.userAPICreateGroup(apiGroup); System.out.println(obj); } }
また、userAPIGroupcreate という XML ベースの API を使用してグループを作成することもできます。
GroupCode:グループの短い名前またはコード名。この名前は、VM とホスト名テンプレートで使用されます。
GroupSharePolicyId:このグループのユーザのグループ共有ポリシーの ID。
public class userAPIGroupExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207","1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); AddGroupConfig instance = new AddGroupConfig(server); instance.setGroupName("SDK Grp XML"); instance.setGroupDescription("SDK group XML "); //Parent group is empty.Optional not required. instance.setParentGroup(""); //Group code is also empty.Optional not required. instance.setGroupCode(""); instance.setGroupContact("sdk@example.com"); instance.setFirstName("SDK "); instance.setLastName("XML"); instance.setPhone("1234567"); instance.setAddress("SanJose"); instance.setGroupSharePolicyId(""); instance.setAllowPrivateUsers(false); AddGroupConfigResponse groupReponse = instance.execute(); System.out.println(“Group id = ”+groupReponse.getOUTPUT_GROUP_ID()); } }
Cisco UCS Director サーバでグループが正常に作成された後、一意のグループ ID が返されます。
userAPICreateGroup API または userAPIGroupcreate API を使用してグループを作成できます。XML 形式のデータを使用してグループを作成する場合は、userAPIGroupcreate API を使用します。
Cisco UCS Director 内のすべてのグループをリストとして取得します。
Cisco UCS Director 内のグループのリストを取得します。
要求ユーザは、グループのリストを取得する権限を持っている必要があります。
/app/api/rest?formatType=json&opName=userAPIGetGroups&opData={}
なし
public class userAPIGetGroupsExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); List<APIGroup> groupsList = instance.userAPIGetGroups(); for (Iterator iterator = groupsList.iterator(); iterator.hasNext();) { APIGroup apiGroup = (APIGroup) iterator.next(); System.out.println("Group id = "+apiGroup.getGroupId()); System.out.println(" Group Name = "+apiGroup.getGroupName()); } } }
コードが Cisco UCS Director 内のグループのリストを返します。
実装は必要ありません。
特定の詳細でグループを更新します。グループ ID およびグループ名は編集できません。
グループの連絡先情報および説明を更新します。
ログイン ユーザには、グループを変更する権限が必要です。
/app/api/rest?formatType=json&opName=userAPIUpdateGroup&opData={param0: {"groupId":2,"groupName":"SDKTest","description":"testing","parentGroupId":9,"parentGroupName":"Test", "emailAddress":"test@cisco.com","lastName":"","firstName":"","phoneNumber":"","address":"","groupType":0}}
apiGroup APIGroup
APIGroup は、グループ名、説明、電子メール アドレスなどのグループ情報を保持するグループ オブジェクトです。グループを更新するにはグループ名を渡す必要があります。
public class userAPIUpdateGroupExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APIGroup apiGroup = new APIGroup(); apiGroup.setGroupName("SDK"); apiGroup.setEmailAddress("sdkTest@example.com"); apiGroup.setDescription("Update test"); boolean isUpdated = instance.userAPIUpdateGroup(apiGroup); System.out.println("is updated " + isUpdated); } }
グループが正常に更新された場合、結果は true となります。
更新する必要があるグループ名を渡して、必要なグループ プロパティを設定します。
特定のグループ ID に基づいて Cisco UCS Director からグループを削除します。
グループに属しているユーザが Cisco UCS Director サーバのリソースにアクセスしないことを確認します。
グループ ID が Cisco UCS Director で使用できる必要があります。userAPIGetGroups API を使用してグループ ID を取得できます。
/app/api/rest?formatType=json&opName=userAPIDeleteGroup&opData={param0:2}
int groupId:削除する必要があるグループの一意の ID。
public class userAPIDeleteGroupExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); //Get the Group id by executing List<APIGroup> groupsList = instance.userAPIGetGroups(); boolean obj = instance.userAPIDeleteGroup(2); System.out.println("is Deleted successfully ? " + obj); } }
グループが正常に削除された場合、結果は true となります。
グループ ID を渡すことで、グループを削除します。
カタログの管理
システム管理者がカタログ項目を作成します。
/app/api/rest?formatType=json&opName=userAPICreateCatalogItem&opData= {param0:{"catalogType":"Standard","catalogItemName":"standardCatalog1", "catalogItemDescription":"Api crated it","catalogIcon":"VM: SUSE Linux", "isAppliedToAllGroups":false,"groups":"Default Group","publishToEndUsers":true, "folderName":"Standard","standardCatalog":{"cloudName":"vmware117","image":"CentOSTiny", "category":"Generic VM","supportEmail":"sdk@cisco.com","os":"Windows Server 2012", "otherOS":"Linux Server","appLists":"Apache Web Server","otherApps": "Glass Fish web server","applicationCode":"sdk","credentialOption":"Do not share", "userId":"admin","password":"root","isAutomaticGuestCustomization":false, "enablePostProvisioningCustomActions":false,"workflowName":"Print Number", "parameters":[{"name":"Name1","value":"Value1"},{"name":" Name2","value":" Value2"}]}, "advancedCatalog":{"workflowName":"Create Vdc","parameters":[{"name":"Name1","value":"Value1"}, {"name":"Name2","value":"Value2"}]},"ServiceContainerCatalog":{"serviceContainerTemplateName": "servicecontainertemp1","parameters":[{"name":"Name1","value":"Vlue1"}, {"name":"Name2","value":"Value2"}]},"vdiCatalog":{"cloudName":"Cloud1","imageId":"image1", "xenDesktopCatalog":"catalog1","category":"category1","supportEmail":"sdk@cisco.com", "allowEndUserToOverrideCategory":true,"parameters":[]}}}
APICatalogItem 項目
import java.util.ArrayList; import java.util.List; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.UserAPIGlobal; import com.cisco.cuic.api.models.catalog.APICatalogItem; import com.cisco.cuic.api.models.catalog.StandardCatalogParameters; import com.cisco.cuic.api.models.catalog.NameValuePair; public class UserAPICreateCatalogItemSdkSample { public static void main(String[] args) { CuicServer server = CuicServer.getAPI("172.29.110.194", "5AD45F2DC5ED441A9A743F1B219CC302", "http", 80); UserAPIGlobal instance = new UserAPIGlobal(server); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); StandardCatalogParameters standardCatalogParameters = new StandardCatalogParameters(); standardCatalogParameters.setCloudName("vmware117"); standardCatalogParameters.setImage("CentOSTiny"); standardCatalogParameters.setCategory("Generic VM"); standardCatalogParameters.setSupportEmail("sdk@cisco.com"); standardCatalogParameters.setOs("Windows Server 2012"); standardCatalogParameters.setOtherOS("Linux Server"); standardCatalogParameters.setAppLists("Apache Web Server"); standardCatalogParameters.setOtherApps("Glass Fish web server"); standardCatalogParameters.setApplicationCode("sdk"); standardCatalogParameters.setCredentialOption("Do not share"); standardCatalogParameters.setUserId("admin"); standardCatalogParameters.setPassword("root"); standardCatalogParameters.setAutomaticGuestCustomization(false); standardCatalogParameters.setEnablePostProvisioningCustomActions(false); standardCatalogParameters.setWorkflowName("Print Number"); standardCatalogParameters.setParameters(nameValuePairs); APICatalogItem apiCatalogItem = new APICatalogItem(); apiCatalogItem.setCatalogType("Standard"); apiCatalogItem.setCatalogItemName("standardCatalog2"); apiCatalogItem.setCatalogItemDescription("created through client code"); apiCatalogItem.setCatalogIcon("VM: SUSE Linux"); apiCatalogItem.setAppliedToAllGroups(false); apiCatalogItem.setGroups("Default Group"); apiCatalogItem.setPublishToEndUsers(true); apiCatalogItem.setFolderName("Standard"); apiCatalogItem.setStandardCatalog(standardCatalogParameters); boolean isCatalogItemCreated = false; try { isCatalogItemCreated = instance.userAPICreateCatalogItem(apiCatalogItem); } catch (Exception e) { System.out.error(e.getMessage()); System.out.error("Exception occured while creating a catalog."); } System.out.println("Is Catalog Item Got Created ?"+isCatalogItemCreated); } }
カタログ項目が正常に作成された場合、結果は true となります。
必要な情報を渡すことで APICatalogItem を作成し、userAPICreateCatalogItem API を呼び出してカタログ項目を作成します。
カタログ名を使用してカタログの詳細を取得します。
カタログの詳細は、システム管理者またはエンド ユーザによって取得されます。
/app/api/rest?formatType=json&opName=userAPIGetAllCatalogs&opData={}
なし
public class userAPIGetCatalogDetailsExampe { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APIProvisionParams params = instance.userAPIGetCatalogDetails("SDKCat"); System.out.println(" Catalog name "+params.getCatalogName()); System.out.println(" vDC name "+params.getVdcName()); } }
カタログの詳細が正常に取得された場合、結果は true となります。
カタログ名を渡して、カタログ項目を削除します。
カタログ項目はシステム管理者が削除できます。
削除するカタログ項目が存在する必要があります。
/app/api/rest?formatType=json&opName=userAPIDeleteCatalogItem&opData={param0:"sdkCatalog"}
catalogItemName:削除する必要のあるカタログ項目の名前。
public class userAPIDeleteCatalogItemExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); boolean isDeleted = instance.userAPIDeleteCatalogItem("SDKCat"); System.out.println("is Deleted ?"+isDeleted); } }
カタログ項目が正常に削除された場合、結果は true となります。
既存のカタログ項目を削除するには、カタログ名を渡して userAPIDeleteCatalogItem API を呼び出します。
物理アカウントの管理
Cisco UCS Director で物理的資産のアカウントを作成します。XML ベースの API を使用してアカウントを作成する場合は、有効な値を渡すために、[コンポーネント(Components)] セクションのアカウント カテゴリおよびアカウント タイプ パラメータの使用可能な値を参照してください。
物理インフラストラクチャ リソースを管理します。
/app/api/rest?formatType=json&opName=accounts:userAPICreateInfraAccount&opData={param0: {"accountName":"Test Vmware82","podName":"Default Pod","accountCategory":-1,"accountType": "VMWare","deviceCategory":"","description":"sample","contact":"sample","destinationIPAddress": "172.29.109.82","login":"administrator","password":"cloupia123","enablePassword":"","protocol": "https","port":443,"infraAccountSupportDetailsInfo":null}}
InfraAccountDetails infraAccountDetails
InfraAccountDetails には、次のパラメータが含まれます。
String accountName:アカウントに割り当てる一意の名前。
String podName:アカウントが属するポッド。
整数 |
アカウント カテゴリ |
---|---|
1 |
コンピューティング |
2 |
ストレージ |
3 |
ネットワーク |
4 |
マルチドメイン マネージャまたはその他 |
5 |
クラウド |
String accountType:アカウントのタイプ。"11" のように引用符で囲まれた値を渡す必要があります。
整数 |
アカウントの種類 |
---|---|
2 |
VMware |
6 |
HYPERV |
9 |
REDHAT_KVM |
10 |
XENDESKTOP |
11 |
UCSM |
12 |
NETAPP |
14 |
NETAPP_DFM |
15 |
HP |
16 |
CISCO_CIMC |
17 |
EMC_VNX |
18 |
IPMI |
19 |
LOAD_BALANCERS |
20 |
EMC_VMAX |
24 |
EMC_VPLEX |
22 |
WHIPTAIL |
23 |
EMC_ISILON |
25 |
EMC_NEW_VNX |
26 |
EMC_NEW_VNX_BLOCK |
27 |
EMC_NEW_VNX_UNIFIED |
28 |
HP_OA |
29 |
CAT_LDAP |
30 |
CAT_LDAP_CLEANUP |
31 |
VCE_VISION_IO |
32 |
EMC_RECOVERPOINT |
33 |
UCS_INVICTA_APPLIANCE |
34 |
UCS_INVICTA_SCALING |
35 |
EMC_NEW_VNX_BLOCK_HTTP |
36 |
EMC_VNXE |
String deviceCategory:コンピューティング、ストレージ、ネットワークなどのデバイスのカテゴリ。
String description:オプション。このアカウントの説明。
String contact:オプション。管理者またはアカウント責任者の連絡先に使用できる電子メール アドレスです。
String destinationIPAddress:このアカウントの宛先 IP アドレス。引用符で囲まれた IP アドレスを渡す必要があります。
String login:このアカウントがエレメント マネージャにアクセスするために使用するログイン ID。たとえば、Cisco UCS Manager のアカウントはこのログイン ID を使用して Cisco UCS Manager にアクセスします。このユーザ名は Cisco UCS Manager の有効なアカウントである必要があります。
String password:ログイン ID に関連付けられるパスワード。
String enablepassword:オプション。このアカウントにパスワードをイネーブルにするには値を true として渡します。
String protocol:アカウントとの通信に使用するプロトコル。有効な値は Telnet および SSH です。
int port:エレメント マネージャにアクセスするために使用するポート。
infraAccountSupportDetailsInfo:インフラ アカウントの詳細。infraAccountSupportDetailsInfo には、次のパラメータが含まれます。
String spAIpAddress:オプション。VNX デバイスのストレージ プロセッサ A の IP アドレス。
String spBIpAddress:オプション。VNX デバイスのストレージ プロセッサ B の IP アドレス。
String blockAccessUserName:オプション。VNX デバイスのブロック アクセスのユーザ名。
String blockAccessPwd:オプション。VNX デバイスのブロック アクセスのパスワード。
String sshIpAddress:オプション。SSH サーバの IP アドレス。引用符で囲まれた IP アドレスを渡す必要があります。
String sshUsername:オプション。このアカウントが SSH サーバにアクセスするために使用するユーザ名。
String sshPassword:オプション。SSH ユーザ名に関連付けられたパスワード。
int sshPort:オプション。SSH サーバへのアクセスに使用されるポート。
String domain:オプション。アカウントに関連付けられたドメイン。
String serviceProvider:オプション。このアカウントに関連付けられたサービス プロバイダーの名前(ある場合)。
public class UserAPICreateInfraAccountExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.187", "6C6416AD90704DF495A6B4D0A75A0BB1", "https", 443); UserAPIAccounts instance = new UserAPIAccounts(server); InfraAccountDetails infraAccountDetails = new InfraAccountDetails(); infraAccountDetails.setAccountName("AccName"); infraAccountDetails.setPodName("PodName"); infraAccountDetails.setAccountCategory(2); infraAccountDetails.setAccountType("11"); infraAccountDetails.setProtocol("http"); infraAccountDetails.setPort(80); infraAccountDetails.setDestinationIPAddress("172.29.32.14"); infraAccountDetails.setLogin("admin"); infraAccountDetails.setPassword("admin"); boolean isCreated = instance.userAPICreateInfraAccount(infraAccountDetails); System.out.println("is Account Created ?"+isCreated); } }
物理アカウントが作成されます。戻り値は作成が正常に行われた場合は true です。
アカウント情報を含む InfraAccountDetails オブジェクトのインスタンスを作成してから、userAPICreateInfraAccount を呼び出して物理アカウントを作成します。
Cisco UCS Director の物理アカウントおよび仮想アカウントを取得します。
Cisco UCS Director 内の既存のリソースまたはアカウントを特定します。
ユーザには、Cisco UCS Director 内のすべてのアカウントを表示する権限が必要です。
/app/api/rest?formatType=json&opName=accounts:userAPIGetAllPhysicalInfraAccounts&opData={}
なし
public class UserAPIGetAllAccountsExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIAccounts instance = new UserAPIAccounts(server); List<String> accountNameList = instance.userAPIGetAllAccounts(); for (int i = 0; i < accountNameList.size(); ++i) { System.out.println("Name "+accountNameList.get(i)); } } }
物理アカウントおよび仮想アカウントのリストが表示されます。
既存の物理アカウントおよび仮想アカウントの詳細を取得するには、userAPIGetAllAccounts API を呼び出します。
Cisco UCS Director から物理アカウントを削除します。
物理アカウントは、アカウントがマッピングされているグループに属しているユーザが削除できます。
物理アカウントが使用可能である必要があります。
/app/api/rest?formatType=json&opName=accounts:userAPIDeleteInfraAccount&opData={param0:"UCSM-150"}
String Account name:削除する必要がある物理アカウントの名前。
public class UserAPIDeleteInfraAccountExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIAccounts instance = new UserAPIAccounts(server); boolean isDeleted = instance.userAPIDeleteInfraAccount("UCSAccount"); System.out.println("Is the Account deleted ? :" + isDeleted); } }
物理アカウントが正常に削除された場合、結果は true となります。
既存の物理アカウントを削除するには、物理アカウント名を渡して userAPIDeleteInfraAccount API を呼び出します。
仮想データセンターの管理
VM がプロビジョニングされる仮想データセンター(VDC)を作成します。
VM をプロビジョニングする VDC を作成します。
クラウドとグループが存在する必要があります。
/app/api/rest?formatType=json&opName=userAPICreateVDC&opData={param0:{"vdcName":"Vdc" ,"vdcDescription":"VDC","cloudName":"VMware-Cloud","groupName":2,"approver1":"","approver2": "","vdcSupportEmail":"test@cisco.com","vdcCustomerNoticationEmail":"","systemPolicy": "VmwareCloudSysPolicy","deploymentPolicy":"","slaPolicy":"","computingPolicy":"","storagePolicy": "","networkPolicy":"","costModel":"","isLocked":false,"isDeletable":false, "inactivityPeriodForDeletion":1000}}
APIVDCDetails
public class CreateVDCExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APIVDCDetails vdcDetails = new APIVDCDetails(); vdcDetails.setVdcName("Vdc"); vdcDetails.setVdcDescription("VDC"); vdcDetails.setCloudName("VMware-Cloud"); vdcDetails.setGroupName(2); vdcDetails.setApprover1(""); vdcDetails.setApprover2(""); vdcDetails.setVdcSupportEmail("test@cisco.com"); vdcDetails.setVdcCustomerNoticationEmail(""); //System policy is optional vdcDetails.setSystemPolicy("VmwareCloudSysPolicy"); //System policy is optional vdcDetails.setSlaPolicy(""); //System policy is optional vdcDetails.setComputingPolicy(""); //netowrk policy is optional vdcDetails.setNetworkPolicy(""); //storage policy is optional vdcDetails.setStoragePolicy(""); //Cost model is optional vdcDetails.setCostModel(""); //vdc locked is optional vdcDetails.setLocked(false); //Deletable is optional vdcDetails.setDeletable(false); vdcDetails.setInactivityPeriodForDeletion(1000); boolean isVDCCreated = instance.userAPICreateVDC(vdcDetails); System.out.println("is VDC Created "+isVDCCreated); } }
VDC が正常に作成された場合、結果は true となります。
必要な情報を渡すことで APIVDCDetails を作成し、userAPICreateVDC を呼び出して VDC を作成します。
ユーザ グループ内の VDC のリストを取得します。
VM をプロビジョニングするときに必要な VDC を選択するために、グループ内の VDC のリストを取得します。
ログイン ユーザがグループに割り当てられている必要があります。
/app/api/rest?formatType=json&opName=userAPIGetAllVDCs&opData={}
なし
public class UserAPIGetAllVDCExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APITabularReport tabularReport = instance.userAPIGetAllVDCs(); System.out.println(“No. Of VDC :”+tabularReport.getRowCount()); System.out.println(“No. Of Column : ”+tabularReport.getColumnMetaData()); } }
ユーザ グループ内の VDC のリストが返されます。
ユーザ グループ内のすべての VDC を取得するには、userAPIGetAllVDCs API を呼び出します。
Cisco UCS Director サーバからローカル システムに VDC をエクスポートします。
別の Cisco UCS Director サーバに同じ VDC のセットを作成します。
エクスポートする VDC の名前。
/app/api/rest?formatType=json&opName=userAPIExportVDC&opData={param0:"vDCIT"}
vdcName:エクスポートする VDC の名前。
public class ExportVDCExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); String exportVDCString = instance.userAPIExportVDC("sample_VDC"); System.out.println("Export VDC as "+exportVDCString); } }
sample_VDC VDC がローカル システムにエクスポートされます。
ローカル システムに VDC をエクスポートするには、userAPIExportVDC API を使用して VDC 名を渡します。
ローカル システムから Cisco UCS Director に VDC をインポートします。
Cisco UCS Director に外部 VDC をインポートします。
インポートする必要がある VDC がローカル システムで使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPIImportVDC&opData={param0:"importvdcasstring"}
vdcName:インポートする VDC の名前。
public class ImportVDCExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); //You have to pass the exported VDC String as importVDC parameter VDC vdcObject = instance.userAPIImportVDC("exportVDCAsString" ); System.out.println("VDC Name = "+vdcObject.getVdcName()); } }
インポートされた VDC が Cisco UCS Director に表示されます。
Cisco UCS Director に VDC をインポートするには、userAPIImportVDC API を呼び出して VDC 名を渡します。
VDC のリソース制限を取得します。
VDC に使用されているリソース制限を特定します。
コンテナまたは VDC が定義されている必要があります。
/app/api/rest?formatType=json&opName=userAPIGetVDCResourceLimits&opData= {param0:"bmtest"}応答
{ "serviceResult":{"provisionedNoOfvCPUsLimit":0,"provisionedMemGBLimit":0.0, "provisionedDiskGBLimit":0.0,"halfWidthPhysicalServerLimit":0,"fullWidthPhysicalServerLimit":0}, "serviceError":null, "serviceName":"InfraMgr", "opName":"fenced:userAPIGetVDCResourceLimits" }
なし
public class GetVDCResourceLimits { public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.241", "EDDF69C4D9AA4E4FA8F14EFD57B90402", "http", 80); UserAPIFencedContainer fenced = new UserAPIFencedContainer(api); APIResourceLimitParams params = new APIResourceLimitParams(); params.setVdcName("bmtest"); APIResourceLimitResponse response = fenced.userAPIGetVDCResourceLimits(params); System.out.println( " Response is \n Full Width Limits"+response.getFullWidthPhysicalServerLimit()); System.out.println( " Half Width Limits"+response.getHalfWidthPhysicalServerLimit()); System.out.println( " Provisioned Disk GB "+response.getProvisionedDiskGBLimit()); System.out.println( " Provisioned Memory"+response.getProvisionedMemGBLimit()); System.out.println( " Provisioned vCPU Limits "+response.getProvisionedNoOfvCPUsLimit()); } }
VDC リソースに対する制限について、フル幅制限、ハーフ幅制限、プロビジョニング済みディスク、プロビジョニングされたメモリ、およびプロビジョニングされた vCPU の制限が表示されます。
userAPIGetVDCResourceLimits API を使用して、VDC 名を渡し、リソース制限の設定を表示します。
VDC で利用可能なリソースのコスト モデルを取得します。
指定したリソース(CPU、メモリ、ディスクなど)の VM と物理サーバについて、時間ごとと月ごとのコスト モデルを取得します。
VDC およびコスト モデルが存在している必要があります。
/app/api/rest?formatType=json&opName=chargeback:userAPIGetCostModel&opData= {param0:{"vdcName":"CostModel_Vdc","costModelResources":[{"name":"CPU","value":"1"}, {"name":"Memory","value":"1"},{"name":"Disk","value":"1"},{"name":"NetworkRx", "value":"1"},{"name":"NetworkTx","value":"1"},{"name":"BMCPU","value":"1"}, {"name":"BMMemory","value":"1"},{"name":"BMDisk","value":"1"}, {"name":"BladeType","value":"Half"}]}}応答
{ "serviceResult":{"costModelRequestedInfo":{"vDC Name":"CostModel_Vdc", "Memory (GB)":"1","Disk (GB)":"1","NetworkRx (GB)":"1","NetworkTx (GB)":"1", "CPU (GHz)":"1","BMMemory (GB)":"1","BMDisk (GB)":"1","Blade Type":"Half", "BMCPU (Cores)":"1"},"vmCostModel":{"oneTimeItemCost":100.0,"monthlyCost":2180.0, "cpuCostModel":{"cpuGhzCostPerHour":1.0,"cpuCostPerCore":0.0,"totalCPUCost":720.0}, "diskCostModel":{"diskGBCostPerHour":1.0,"totalDiskCost":720.0},"memoryCostModel": {"memoryGBCostPerHour":1.0,"totalMemoryCost":720.0},"networkCostModel": {"netRxCostPerGB":10.0,"netTxCostPerGB":10.0,"totalNetworkCost":20.0}}, "bMCostModel":{"oneTimeItemCost":100.0,"monthlyCost":2880.0,"cpuCostModel": {"cpuGhzCostPerHour":0.0,"cpuCostPerCore":1.0,"totalCPUCost":720.0}, "diskCostModel":{"diskGBCostPerHour":1.0,"totalDiskCost":720.0},"memoryCostModel": {"memoryGBCostPerHour":1.0,"totalMemoryCost":720.0},"bladeCostModel": {"fullBladeCostPerHour":0.0,"halfBladeCostPerHour":1.0,"totalBladeCost":720.0}}}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetCostModel" }
CPU:オプション。プロビジョニングされた CPU の上限(GHz 単位またはコア単位)。
Memory:オプション。プロビジョニングされたメモリの上限(GB 単位)。
NetworkRx:オプション。データ トラフィックの受信レート。
NetworkTx:オプション。データ トラフィックの送信レート。
Disk:オプション。プロビジョニングされたディスクの上限(GB 単位)。
BMCPU:オプション。プロビジョニングされた BM の CPU の上限(GHz 単位またはコア単位)。
BMMemory:オプション。プロビジョニングされた BM メモリの上限(GB 単位)。
BMDisk:オプション。プロビジョニングされた BM のディスクの上限(GB 単位)。
BladeType:オプション。ブレードのタイプ。
public class GetCostModel { public static void main(String[] args)throws Exception { CuicServer server = CuicServer.getAPI("<IP address>", "<REST Key>", "https", 443); UserAPIChargeBack instance = new UserAPIChargeBack(api); List<APINameValue> requestParam = new ArrayList<APINameValue>(); APIGetCostModelParams costParams = new APIGetCostModelParams(); costParams.setVdcName("CostModel_Vdc"); APINameValue value=new APINameValue(); value.setName("CPU"); value.setValue("1"); requestParam.add(value); value=new APINameValue(); value.setName("Memory"); value.setValue("1"); requestParam.add(value); value=new APINameValue(); value.setName("Disk"); value.setValue("1"); requestParam.add(value); value=new APINameValue(); value.setName("NetworkRx"); value.setValue("1"); requestParam.add(value); value=new APINameValue(); value.setName("NetworkTx"); value.setValue("1"); value=new APINameValue(); value.setName("BMCPU"); value.setValue("1"); requestParam.add(value); costParams.setCostModelResources(requestParam); APIGetCostModelResponse response = instance.userAPIGetCostModel(costParams); APIVMCostModel vmCostModel = response.getVmCostModel(); APIPhysicalServerCostModel bmCostModel = response.getBMCostModel(); if(vmCostModel != null){ System.out.println(vmCostModel.getOneTimeItemCost()); APICPUCostModel cpuModel = vmCostModel.getCpuCostModel(); System.out.println(cpuModel.getTotalCPUCost()); } if(bmCostModel != null){ System.out.println(bmCostModel.getOneTimeItemCost()); APICPUCostModel bmCPUModel = bmCostModel.getCpuCostModel(); System.out.println(bmCPUModel.getTotalCPUCost()); } } }
VM 内および物理サーバ内のリソースのコスト モデルが表示されます。
userAPIGetCostModel API を呼び出し、コスト モデルを表示させるリソースとともに VDC 名を渡します。
Cisco UCS Director から VDC を削除します。
Cisco UCS Director から使用されていない VDC を削除します。
ログイン ユーザに VDC を削除する権限が必要です。
Not Applicable
vdcName:削除する VDC の名前。
public class DeleteVDCExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); DeleteVDCConfig instance = new DeleteVDCConfig(server); instance.setVdcName(""); instance.setRollbackRequest(false); boolean isDeleted = instance.execute(); System.out.println(" is VDC Deleted "+isDeleted); } }
VDC が正常に削除された場合、結果は true となります。
VDC 名を渡すことで、VDC を削除します。
仮想インフラストラクチャ ポリシーの管理
Fenced 仮想アプリケーション コンテナの仮想インフラストラクチャ ポリシーを作成します。仮想インフラストラクチャ ポリシーは、使用する VM やプロビジョニングするコンテナのタイプを定義します。また、このポリシーは、この特定のアカウントに関連付ける PNSC アカウントも定義します。
仮想インフラストラクチャ ポリシーは、アプリケーション コンテナ テンプレートの作成に使用されます。このテンプレートでは、さまざまなネットワーク(DFA ネットワークを含む)で使用するアプリケーション コンテナを作成できます。
VMware バーチャル アカウントが存在する必要があります。
/app/api/rest?formatType=json&opName=fenced: userAPICreateServiceContainerVirtualInfraPolicy&opData={param0:{"policyName": "vipFenc","policyDescription":"","virtualAccountName":"vc117", "isGatewayRequired":false,"gatewayPolicyName":"","isF5LoadBalancerRequired": false,"f5LoadBalancerPolicyName":""}}
policyName:仮想インフラストラクチャ ポリシーの名前。
policyDescription:オプション。仮想インフラストラクチャ ポリシーの説明。
virtualAccountName:仮想インフラストラクチャ ポリシーを定義する仮想アカウントの名前。
isGatewayRequired:Fenced コンテナにゲートウェイが必要な場合、このパラメータを True に設定します。
gatewayPolicyName:isGatewayRequired パラメータが True に設定された場合に、ゲートウェイのポリシー名を指定します。
isF5LoadBalancerRequired:F5 ロードバランサ サービスが必要とされる場合、このパラメータを True に設定します。
f5LoadBalancerPolicyName:isF5LoadBalancerRequired パラメータが True に設定された場合に、F5 ロードバランサのポリシー名を指定します。
public class FencedContainerVirtualInfraPolicyCreateExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); FencedContainerVirtualInfrastructurePolicy policy = new FencedContainerVirtualInfrastructurePolicy(); policy.setPolicyName("VIPolicy"); policy.setPolicyDescription("VIPolicy1 Description"); policy.setVirtualAccountName("vm117"); policy.setGatewayRequired(false); policy.setF5LoadBalancerRequired(false); boolean obj = instance.userAPICreateServiceContainerVirtualInfraPolicy( policy ); System.out.println("Created Sucessfuly : "+obj); } }
仮想インフラストラクチャ ポリシーが正常に追加された後に、True を返します。
userAPICreateServiceContainerVirtualInfraPolicy API を呼び出し、必要な情報とともに仮想アカウント名を渡します。
ポリシー名を渡すことで、仮想インフラストラクチャ ポリシーの詳細情報を取得します。
設定されたポリシーの詳細を表示します。
仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName=fenced: userAPIGetServiceContainerVirtualInfraPolicy&opData={param0:"vipPolicy"}
policyName:仮想インフラストラクチャ ポリシーの名前。
public class retrieveAPI { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("10.23.210.118","ADFGLKJSHFJ23478234HJBFJGH", "https", 443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); List obj = instance.userAPIGetServiceContainerVirtualInfraPolicy( "x" ); System.out.println(obj); } }
ポリシーの詳細が正常に取得された場合、結果は true となります。
userAPIGetServiceContainerVirtualInfraPolicy API を呼び出し、仮想インフラストラクチャ ポリシー名を渡します。
指定された詳細の内容で Fenced コンテナの仮想インフラストラクチャ ポリシーを更新します。ポリシー名は編集できません。
コンテナに定義された仮想インフラストラクチャ ポリシーを更新します。更新されたポリシーは、新しいアプリケーション コンテナ テンプレートの作成に使用されます。
仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName=fenced: userAPIUpdateServiceContainerVirtualInfraPolicy&opData={param0: {"policyName":"Testing","policyDescription":"Testing Update Description ", "virtualAccountName":"VNX_Cloud169","isGatewayRequired":false, "gatewayPolicyName":"","isF5LoadBalancerRequired":false,"f5LoadBalancerPolicyName":""}}
policyName:仮想インフラストラクチャ ポリシーの名前。
policyDescription:オプション。仮想インフラストラクチャ ポリシーの説明。
virtualAccountName:仮想インフラストラクチャ ポリシーを定義する仮想アカウントの名前。
isGatewayRequired:Fenced コンテナにゲートウェイが必要な場合、このパラメータを Trueに設定します。
gatewayPolicyName:isGatewayRequired パラメータが True に設定された場合に、ゲートウェイのポリシー名を指定します。
isF5LoadBalancerRequired:F5 ロードバランサ サービスが必要とされる場合、このパラメータを True に設定します。
f5LoadBalancerPolicyName:isF5LoadBalancerRequired パラメータが True に設定された場合に、F5 ロードバランサのポリシー名を指定します。
public class FencedContainerVirtualInfraPolicyUpdateExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); FencedContainerVirtualInfrastructurePolicy policy = new FencedContainerVirtualInfrastructurePolicy(); policy.setPolicyName("VIPolicy"); policy.setPolicyDescription("VIPolicy1 Description modified"); policy.setVirtualAccountName("vm117"); policy.setGatewayRequired(false); policy.setF5LoadBalancerRequired(false); boolean obj = instance.userAPIUpdateServiceContainerVirtualInfraPolicy( policy ); System.out.println("Created Sucessfuly : "+obj); } }
仮想インフラストラクチャ ポリシーが正常に更新された場合、結果は True となります。
userAPIUpdateServiceContainerVirtualInfraPolicy API を呼び出し、更新の必要な詳細内容とともに仮想インフラストラクチャ ポリシー名と仮想アカウント名を渡します。
Cisco UCS Director から仮想インフラストラクチャ ポリシーを削除します。
グループに属しているユーザは、仮想インフラストラクチャ ポリシーを削除できます。
仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName=fenced: userAPIDeleteServiceContainerVirtualInfraPolicy &opData={param0:{"policyName":"vipFenc”}}
public class DeleteServiceContainerVirtualInfraPolicy { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); FencedContainerVirtualInfrastructurePolicy policy = new FencedContainerVirtualInfrastructurePolicy(); policy.setPolicyName("VIPolicy"); boolean obj = instance.userAPIDeleteServiceContainerVirtualInfraPolicy( policy ); System.out.println(obj); } }
仮想インフラストラクチャ ポリシーが正常に削除された場合、結果は True となります。
userAPIDeleteServiceContainerVirtualInfraPolicy API を呼び出し、仮想インフラストラクチャ ポリシー名を渡します。
APIC 仮想インフラストラクチャ ポリシーの管理
APIC コンテナの仮想インフラストラクチャ ポリシーを作成します。
仮想インフラストラクチャ ポリシーは、サービス コンテナ テンプレートの作成に使用されます。
バーチャル アカウントが存在する必要があります。
/app/api/rest?formatType=json&opName= apic:userAPICreateServiceContainerVirtualInfraPolicy&opData={param0: {"policyName":"VIPolicy1","policyDescription":"Create VIP Policy","containerType": "APIC","applicationProfileName":" appprofile"}}
public class APICContainerVirtualInfraPolicyCreateExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); APICContainerVirtualInfraStructurePolicy policy = new APICContainerVirtualInfraStructurePolicy(); policy.setPolicyName("VIPolicy1"); policy.setPolicyDescription("VIPolicy1 Description"); policy.setApplicationProfileName("applicationProfileName"); boolean obj = instance.userAPICreateServiceContainerVirtualInfraPolicy(policy); System.out.println("Created Sucessfuly : " + obj); /** * Update the service Container Virtual Infra Policy */ obj = instance.userAPIUpdateServiceContainerVirtualInfraPolicy(policy); System.out.println(obj); } }
仮想インフラストラクチャ ポリシーが正常に追加された場合、結果は true となります。
userAPICreateServiceContainerVirtualInfraPolicy API を呼び出し、必要な情報とともにアプリケーション プロファイル名を渡します。
Cisco UCS Director 内のすべての APIC 仮想インフラストラクチャ ポリシーを取得します。
Cisco UCS Director 内の APIC 仮想インフラストラクチャ ポリシーのリストを取得します。
要求ユーザは、APIC 仮想インフラストラクチャ ポリシーのリストを取得する権限を持っている必要があります。
/app/api/rest?formatType=json&opName= apic:userAPIGetAllServiceContainerVirtualInfraPolicies&opData={}
なし
public class GetAllAPICContainerVirtualInfraPolicies { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); List<APICContainerVirtualInfraStructurePolicy> list = instance.userAPIGetAllServiceContainerVirtualInfraPolicies(); for (Iterator iterator = list.iterator(); iterator.hasNext();) { APICContainerVirtualInfraStructurePolicy apicContainerVirtualInfraStructurePolicy = (APICContainerVirtualInfraStructurePolicy) iterator .next(); System.out.println(" Profile Name : "+apicContainerVirtualInfraStructurePolicy.getPolicyName()); System.out.println(" Profile Description : "+apicContainerVirtualInfraStructurePolicy.getPolicyDescription()); System.out.println(" Application Profile Name : "+apicContainerVirtualInfraStructurePolicy.getApplicationProfileName()); } }
API によって、Cisco UCS Director 内の APIC 仮想インフラストラクチャ ポリシーのリストが返されます。
実装は必要ありません。
ポリシー名を渡すことで、仮想インフラストラクチャ ポリシーの詳細情報を取得します。
設定されたポリシーの詳細を表示します。
仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName= apic:userAPIGetServiceContainerVirtualInfraPolicy&opData={param0:"testPolicy"}
public class GetAPICContainerVirtualInfraPolicyExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); List<APICContainerVirtualInfraStructurePolicy> list = instance.userAPIGetServiceContainerVirtualInfraPolicy("apicPolicy"); for (Iterator iterator = list.iterator(); iterator.hasNext();) { APICContainerVirtualInfraStructurePolicy apicContainerVirtualInfraStructurePolicy = (APICContainerVirtualInfraStructurePolicy) iterator .next(); System.out.println(" Profile Name : "+apicContainerVirtualInfraStructurePolicy.getPolicyName()); System.out.println(" Profile Description : "+apicContainerVirtualInfraStructurePolicy.getPolicyDescription()); System.out.println(" Application Profile Name : "+apicContainerVirtualInfraStructurePolicy.getApplicationProfileName()); } }
ポリシーの詳細が正常に取得された場合、結果は true となります。
userAPIGetServiceContainerVirtualInfraPolicy API を呼び出し、仮想インフラストラクチャ ポリシー名を渡します。
指定された詳細の内容で APIC コンテナの仮想インフラストラクチャ ポリシーを更新します。ポリシー名は編集できません。
APIC コンテナに定義された仮想インフラストラクチャ ポリシーを更新します。更新されたポリシーは、新しいサービス コンテナ テンプレートの作成に使用されます。
APIC 仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName=apic: userAPIUpdateServiceContainerVirtualInfraPolicy&opData={param0"policyName": "testPolicy","policyDescription":"updated testPolicy ","containerType":"APIC", "applicationProfileName":"appprofile"}}
public class APICContainerVirtualInfraPolicyUpdateExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); APICContainerVirtualInfraStructurePolicy policy = new APICContainerVirtualInfraStructurePolicy(); policy.setPolicyName("VIPolicy1"); policy.setPolicyDescription("VIPolicy1 Description"); policy.setApplicationProfileName("applicationProfileName"); /** * Update the service Container Virtual Infra Policy */ boolean obj = instance.userAPIUpdateServiceContainerVirtualInfraPolicy(policy); System.out.println(obj); } }
仮想インフラストラクチャ ポリシーが正常に更新された場合、結果は True となります。
userAPIUpdateServiceContainerVirtualInfraPolicy API を呼び出し、更新の必要な詳細内容とともに仮想インフラストラクチャ ポリシー名を渡します。
Cisco UCS Director から APIC 仮想インフラストラクチャ ポリシーを削除します。
仮想アカウントがマッピングされたグループに属しているユーザは、仮想インフラストラクチャ ポリシーを削除できます。
仮想インフラストラクチャ ポリシーが存在している必要があります。
/app/api/rest?formatType=json&opName= apic:userAPIDeleteServiceContainerVirtualInfraPolicy&opData={param0: {"policyName":"apicPolicy”}
public class APICContainerVirtualInfraPolicyDeleteExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.22.234.33","EF0FE312B5444E7B8DE4836DDC55F4A0", "https", 443); CuicServer server = CuicServer.getAPI("<IP address>", "<REST Key>", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); APICContainerVirtualInfraStructurePolicy policy = new APICContainerVirtualInfraStructurePolicy(); policy.setPolicyName("apicPolicy"); boolean isDeleted = instance.userAPIDeleteServiceContainerVirtualInfraPolicy(policy); System.out.println("is Policy Deleted ?"+isDeleted); } }
APIC 仮想インフラストラクチャ ポリシーが正常に削除された場合、結果は True となります。
userAPIDeleteServiceContainerVirtualInfraPolicy API を呼び出し、仮想インフラストラクチャ ポリシー名を渡します。
サービス コンテナの管理
テンプレートを使用してサービス コンテナを作成します。
VDC または VM をプロビジョニングするテンプレートを使用してコンテナを作成します。
/app/api/rest?formatType=json&opName=fenced:userAPICreateServiceContainerWithoutCatalog&opData= {param0:"SDKCont",param1:2,param2:"SDKContTemplate"}
コンテナ テンプレートが必要です。
public class CreateServiceContainerExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIAPICContainer instance = new UserAPIAPICContainer(server); int srId = instance.userAPICreateServiceContainerWithoutCatalog("SDKCont", 2, "SDKContTemplate"); System.out.println(" Service Container Request id "+srId); } }
サービス コンテナを作成するためのサービス リクエスト ID が返されます。
サービス コンテナを作成するには、userAPICreateServiceContainerWithoutCatalog API を呼び出して、コンテナ名、グループ ID およびコンテナ テンプレートを渡します。
Cisco UCS Director からサービス コンテナの詳細を取得します。
VDC または VM をプロビジョニングするコンテナの可用性を識別します。
サービス コンテナの ID が分かっている必要があります。
/app/api/rest?formatType=json&opName=fenced:userAPIGetServiceContainerData&opData={param0:2}
サービス container id:詳細を表示する必要があるサービス コンテナの ID。
public class GetServiceContainerDataExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207","1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); ContainerDataObjects containerDataObject = instance.userAPIGetServiceContainerData(2); System.out.println("Container Id = "+containerDataObject.getContainerId()); System.out.println("Gateway = "+containerDataObject.getVmRequestBundle().getGateway()); } }
特定の ID のサービス コンテナの詳細が返されます。
サービス コンテナの詳細を取得するには、サービス コンテナの ID を渡すことで、userAPIGetServiceContainerData API を呼び出します。
サービス コンテナの作成に使用されるカタログ項目とともにサービス コンテナの詳細を取得します。
VDC または VM をプロビジョニングするコンテナの可用性を識別します。
ログイン ユーザにサービス コンテナの詳細を取得する権限が必要です。
/app/api/rest?formatType=json&opName=fenced:userAPIGetServiceContainerDetails&opData={param0:2}
container id:詳細を表示する必要があるサービス コンテナの ID。
public class GetServiceContainerDetails { public static void main(String[] args) throws Exception { CuicAPIClient client = new CuicAPIClient("10.23.210.119", 80, "38B101A62AF14024964D6A87C23C09DE", "http"); List listObj = new ArrayList(); //Paas the container id listObj.add("4"); JsonElement jsonResponse = client.sendJSONRequest("fenced:userAPIGetServiceContainerDetails", listObj); JsonArray array = jsonResponse.getAsJsonObject().get("rows").getAsJsonArray(); for (int count = 0; count < array.size(); count++) { JsonElement jsonElement = array.get(count); JsonObject jsonObject = jsonElement.getAsJsonObject(); System.out.println("Overview_Group: " + jsonObject.get("Overview_Group").getAsString()); System.out.println("Overview_ID: " + jsonObject.get("Overview_ID").getAsString()); System.out.println("Overview_containerName: " + jsonObject.get("Overview_containerName").getAsString()); System.out.println("Overview_VM_Counts: " + jsonObject.get("Overview_VM_Counts").getAsString()); System.out.println("Overview_ServiceRequestStatus: " + jsonObject.get("Overview_ServiceRequestStatus").getAsString()); System.out.println("vInfraPolicyInfo_ContainerType: " + jsonObject.get("vInfraPolicyInfo_ContainerType").getAsString()); System.out.println("Policy_VirtualCompute: " + jsonObject.get("Policy_VirtualCompute").getAsString()); System.out.println("Policy_VirtualNetwork: " + jsonObject.get("Policy_VirtualNetwork").getAsString()); System.out.println("Policy_VirtualSystem: " + jsonObject.get("Policy_VirtualSystem").getAsString()); System.out.println("Policy_VirtualStorage: " + jsonObject.get("Policy_VirtualStorage").getAsString()); } } }
Overview_Group:Default Group
Overview_ID:4
Overview_containerName:cont1
Overview_VM_Counts:Container is Empty
Overview_ServiceRequestStatus:Complete
vInfraPolicyInfo_ContainerType:Fenced Virtual
Policy_VirtualCompute:VNX_CLOUD69 - Default Computing Policy
Policy_VirtualNetwork:VNX_CLOUD69 - Default Network Policy
Policy_VirtualSystem:Default System Policy
Policy_VirtualStorage:VNX_CLOUD69 - Default Storage Policy
サービス コンテナの詳細を取得するには、コンテナの ID を渡すことで、userAPIGetServiceContainerDetails API を呼び出します。
Cisco UCS Director で使用可能なすべてのサービス コンテナを取得して表示します。
Cisco UCS Director 内のサービス(APIC および Fenced)コンテナのリストを表示します。
サービス コンテナが Cisco UCS Director で使用できる必要があります。
/app/api/rest?formatType=json&opName=apic:userAPIGetAllServiceContainers&opData={}
なし
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import com.cisco.cuic.api.client.APITabularReport; import com.cisco.cuic.api.client.ContainerVirtualMachine; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.client.JSON; import com.cisco.cuic.api.models.UserAPIFencedContainer; import com.cisco.cuic.api.models.UserAPIGlobal; import com.cisco.cuic.api.models.servicecontainer.APIFencedVirtualContainerTemplateConfig; import com.cisco.cuic.api.models.servicecontainer.APIFencedVirtualMachineConfig; import com.cisco.cuic.api.models.servicecontainer.APIServiceContainerTemplate; import com.cisco.cuic.api.models.servicecontainer.ContainerDataObjects; import com.cisco.cuic.api.models.servicecontainer.DFAConfig; import com.cisco.cuic.api.models.servicecontainer.FencedContainerOptions; import com.cisco.cuic.api.models.servicecontainer.FencedContainerPolicies; import com.cisco.cuic.api.models.servicecontainer.FencedContainerWorkflowConfig; import com.cisco.cuic.api.models.servicecontainer.FencedNetwork; import com.cisco.cuic.api.models.servicecontainer.FencedVirtualMachineNetworkConfig; import com.cisco.cuic.api.models.servicecontainer.NetworkConfigProvisionedPortGroup; import com.cisco.cuic.api.models.servicecontainer.NetworkConfigRequest; import com.cisco.cuic.api.models.servicecontainer.NetworkConfigResult; import com.cisco.cuic.api.models.servicecontainer.NetworkTopology; import com.cisco.cuic.api.models.servicecontainer.OutboundACL; import com.cisco.cuic.api.models.servicecontainer.OwnerInfo; import com.cisco.cuic.api.models.servicecontainer.PortMapping; import com.cisco.cuic.api.models.servicecontainer.ServiceContainer; import com.cisco.cuic.api.models.servicecontainer.ServiceContainervInfraPolciyDef; import com.cisco.cuic.api.models.servicecontainer.ServiceContainervInfraPolicy; import com.cisco.cuic.api.models.servicecontainer.VirtualSwitch; import com.cloupia.sdk.api.CloupiaClient; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class TestApplicationContainer { private static final String REST_SERVER_PROPERTIES = "rest-server.properties"; private static final String UCSM_CONTEXT_NAME = "ucsm"; private Properties props; private CloupiaClient client; private Map<String, String> reportLabelIdMap; private JsonObject obj; private JsonParser parser; public TestApplicationContainer() { } public static void main(String[] args) throws Exception { TestApplicationContainer obj = new TestApplicationContainer(); CuicServer server = CuicServer.getAPI("172.22.234.243", " CF87FA987C8F4BBF814F2BB68CA6A823", "https", 443); UserAPIFencedContainer fencedC = new UserAPIFencedContainer(server); executeGetServiceContainerDetails(fencedC); } public static void executeGetServiceContainerDetails(UserAPIFencedContainer fencedC) throws Exception { APITabularReport atr = new APITabularReport(); atr = fencedC.userAPIGetServiceContainerDetails(1); List<Map<String, Object>> listofMaps = atr.getRows(); // System.out.println("rows " + atr.getRowCount()); for (Map<String, Object> map : listofMaps) { for (Entry<String, Object> entry : map.entrySet()) { // System.out.println(entry.getKey() + ":"); String o = entry.toString(); System.out.println(o); } } }
コードによって Cisco UCS Director 内のサービス コンテナのリストが返されます。
実装は必要ありません。
APIC コンテナ内の VM に階層を追加します。
APIC コンテナ VM に階層を追加します。
/app/api/rest?formatType=json&opName= apic:userAPIAddTierToContainerVM&opData={param0:{"containerId":2,"tierName":"app", "tierLabel":"app","isIsolated":false,"parentTierName":""}}
import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.apic.APIAPICAddTierToContainerParams; import com.cisco.cuic.api.models.apic.APIAPICAddvNICToContainerVMParams; import com.cisco.cuic.api.models.apic.userAPIContainerandContract; public class userAPIAddTierToContainerVMTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); userAPIContainerandContract instance = new userAPIContainerandContract(api); APIAPICAddTierToContainerParams param=new APIAPICAddTierToContainerParams(); param.setContainerId(2); param.setIsolated(false); param.setParentTierName(""); param.setTierLabel("apps"); param.setTierName("apps"); int requestId=instance.userAPIAddTierToContainerVM(param); System.out.println(requestId); } }
APIC コンテナ VM に階層を追加できたときに、サービス リクエスト ID を返します。
userAPIAddTierToContainerVM API を使用して、APIC コンテナ VM に階層を追加します。
APIC コンテナ内の VM に仮想ネットワーク インターフェイス カード(vNIC)を追加します。
vNIC を APIC コンテナ VM に追加します。
/app/api/rest?formatType=json&opName= apic:userAPIAddvNICToContainerVM&opData={param0:{"containerId":"2","vmId":"1", "vmUsername":"root","vmPassword":"cloupia123","networkName":"Con"}}
import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.UserAPIVMware; import com.cisco.cuic.api.models.apic.APIAPICAddvNICToContainerVMParams; import com.cisco.cuic.api.models.apic.userAPIContainerandContract; public class userAPIAddvNICToContainerVMTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); userAPIContainerandContract instance = new userAPIContainerandContract(api); APIAPICAddvNICToContainerVMParams param=new APIAPICAddvNICToContainerVMParams(); param.setContainerId("2"); param.setNetworkName("Con"); param.setVmId("1"); param.setVmUsername("root"); param.setVmPassword("cloupia123"); int requestId=instance.userAPIAddvNICToContainerVM(param); System.out.println(requestId); } }
APIC コンテナ VM に vNIC を追加できたときに、サービス リクエスト ID を返します。
userAPIAddvNICToContainerVM API を使用して、APIC コンテナ VM に vNIC を追加します。
Cisco UCS Director からサービス コンテナを削除します。
コンテナ内のプロビジョニングされた VM によって使用されるリソースを再利用します。VM を使用すると、VM プロビジョニングがロールバックされます。次に、コンテナが削除され、VM に割り当てられているリソースが解放されます。
/app/api/rest?formatType=json&opName=fenced:userAPIDeleteServiceContainer&opData={param0:3}
containerId:削除するサービス コンテナの ID。
public class DeleteServiceContainerDataExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207","1A8DE698E2BF4C0B989476A369F0FC64", "https",443); UserAPIFencedContainer instance = new UserAPIFencedContainer(server); int srId = instance.userAPIDeleteServiceContainer(2); System.out.println(“Delete SR id "+srId); } }
サービス コンテナが削除され、サービス リクエスト ID が返されます。
サービス コンテナ ID を渡すことで、サービス コンテナを削除します。
コントラクトの管理
APIC コンテナ内に 2 つのネットワーク間のコントラクトを作成します。
2 つのネットワーク間のコントラクトを作成します。
Cisco UCS Director に APIC コンテナが存在している必要があります。
/app/api/rest?formatType=json&opName= apic:userAPICreateContract&opData={param0:{"containerId":2,"ruleName":"rule1", "ruleDescription":"sample","sourceNetwork":"web","destNetwork":"app", "createRule":true,"protocol":"TCP","applyBothDirections":true,"sourcePortStart":"10", "sourcePortend":"20","destinationPortStart":"30","destinationPortEnd":"40", "fireallAction":1000,"enableStatefull":true}}
int containerId:コントラクトが作成される APIC コンテナの一意の ID。
String ruleName:ルールの名前。ルールは、Cisco UCS Director により自分の参照用として内部的に使用されます。
String ruleDescription:ルールの説明。APIC 上で作成されるルール フィルタ名は、コンテナ名を使用して自動生成されます。
String sourceNetwork:コントラクト ルールを適用する送信元ネットワークを選択します。
String destNetwork:コントラクト ルールを適用する宛先ネットワークを選択します。
boolean createRule:ルールを作成するには True に設定します。
String protocol:通信プロトコル。
boolean applyBothDirections:送信元から宛先までのトラフィックに対して同じコントラクトを適用する場合に、True に設定します。
int sourcePortStart:送信元に指定するポート範囲の開始ポート番号です。
int sourcePortend:送信元に指定するポート範囲の終了ポート番号です。
int destinationPortStart:宛先に指定するポート範囲の開始ポート番号です。
int destinationPortEnd:宛先に指定するポート範囲の終了ポート番号です。
int fireallAction:このパラメータは空にしておきます。
boolean enableStatefull:ステートフルを有効化するには True に設定します。
import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.apic.APIAPICAddTierToContainerParams; import com.cisco.cuic.api.models.apic.APICCreateContractParams; import com.cisco.cuic.api.models.apic.userAPIContainerandContract; public class userAPICreateContractTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); userAPIContainerandContract instance = new userAPIContainerandContract(api); APICCreateContractParams param=new APICCreateContractParams(); param.setContainerId(2); param.setApplyBothDirections(true); param.setCreateRule(true); param.setDestinationPortEnd("40"); param.setDestinationPortStart("30"); param.setDestNetwork("app"); param.setSourceNetwork("web"); param.setEnableStatefull(true); param.setFireallAction(100); param.setProtocol("TCP"); param.setRuleDescription("sdk"); param.setRuleName("Rule123"); param.setSourcePortend("20"); param.setSourcePortStart("10"); int requestId=instance.userAPICreateContract(param); System.out.println(requestId); } }
Cisco UCS Director サーバでコントラクトが正常に作成された後、一意のコントラクト ID が返されます。
userAPICreateContract API を使用して、コントラクト作成に必要なデータを渡します。
APIC コンテナ内のネットワーク間のコントラクトを削除します。
カタログはシステム管理者が削除できます。
Cisco UCS Director に APIC コンテナが存在している必要があります。
/app/api/rest?formatType=json&opName= apic:userAPIDeleteContract&opData={param0:{"ruleId":"rule1","srcNetwork":"web", "destNetwork":"app"}}
import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.apic.APICCreateContractParams; import com.cisco.cuic.api.models.apic.APICDeleteContractParams; import com.cisco.cuic.api.models.apic.userAPIContainerandContract; public class userAPIDeleteContractTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); userAPIContainerandContract instance = new userAPIContainerandContract(api); APICDeleteContractParams param=new APICDeleteContractParams(); param.setDestNetwork("app"); param.setRuleId("Rule123"); param.setSrcNetwork("web"); int requestId=instance.userAPIDeleteContract(param); System.out.println(requestId); } }
送信元と宛先のネットワーク間でコントラクトの削除が成功したサービス リクエスト ID を返します。
userAPIDeleteContract API をコールし、ルール名、送信元ネットワークと宛先ネットワークを渡して、送信元と宛先ネットワーク間のコントラクトを削除します。
仮想マシンの管理
VM の電源をオンにします。
VDC で使用できる VM を管理します。
VM がアクセスに使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5, param1:"powerOn",param2:"Power On sample test"}
public class userAPIExecuteVMActionExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); String statusMsg = instance.userAPIExecuteVMAction(1,"powerOn","Testing"); System.out.println(" Response msg is "+statusMsg); } }
電源がオンにされた VM のステータスが表示されます。
VM の電源をオンにするには、VM ID を渡して、userAPIExecuteVMAction API でアクション名を電源オンとして設定します。
VM を再起動します。
VDC で使用できる VM を管理します。
VM がアクセスに使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5, param1:"reboot",param2:"Reboot VM"}
public class userAPIExecuteVMActionExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); String statusMsg = instance.userAPIExecuteVMAction(1, "Reboot", "Testing"); System.out.println(" Response msg is "+statusMsg);} }
リブートした VM のステータスが表示されます。
VM を再起動するには、VM ID を渡して、userAPIExecuteVMAction API でアクション名を再起動として設定します。
VM に仮想ネットワーク インターフェイス カード(vNIC)を追加してネットワークをブリッジします。APIC コンテナと Fenced コンテナの両方、および標準カタログ VM について、使用可能な vNIC が必要です。
ネットワークの仮想化。
portGroupIdentity、スタティック IP プール、有効なコンテナ テンプレート(APIC または Fenced)、および標準カタログ VM が使用可能であることを確認します。
app/api/rest?formatType=json&opName=genericvm: userAPIAddVMNICs&opData={param0:{"vmId":531,"vNICConfig": [{"portGroupIdentity":"vmware117@172.29.110.75@vSwitch0@VM Network@Virtual Machine Portgroup","isDHCP":false,"staticIpPool":"10.10.20.8","subnetMask": "255.255.255.0","gateway":"10.10.20.1"}]}}
vmId:vNIC の追加が必要な VM の ID。
vNICConfig:VM に追加される vNIC の構成。次のような VM 構成を設定する必要があります。
portGroupIdentity:vNIC に指定されるポートグループの ID。ポート グループのアイデンティティとして許可されている形式は、<cloudName>@<hostName>@<switchName>@<portGroupName>@<portGroupType> です。
isDHCP:True に設定して DHCP 構成を有効化します。
staticIpPool:isDHCP パラメータが True に設定された場合、このフィールドはオプションです。スタティック IP 設定の IP アドレスです。
subnetMask:isDHCP パラメータが True に設定された場合、このフィールドはオプションです。スタティック IP 設定のサブネット マスク アドレスです。
gateway:isDHCP パラメータが True に設定された場合、このフィールドはオプションです。スタティック IP 設定のゲートウェイ アドレスです。
public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("172.31.234.172", "E052D5B0D1BD4B3199DEB36620AA0004", "http", 80); UserAPIVMware instance = new UserAPIVMware(api); List<VMNICsInputConfig> vNICConfig = new ArrayList<VMNICsInputConfig>(); VMNICsInputConfig nicConfig = new VMNICsInputConfig(); nicConfig.setPortGroupIdentity("vmware169@172.31.232.176@vSwitch0@ctr-sdk-pg-lan0@Virtual Machine Portgroup"); nicConfig.setDHCP(true); nicConfig.setStaticIpPool(null); nicConfig.setSubnetMask(null); nicConfig.setGateway(null); vNICConfig.add(nicConfig); APIVMNICInputParams param = new APIVMNICInputParams(); param.setVmId(38); param.setvNICConfig(vNICConfig); APIVMNICOutputDetails output = instance.userAPIAddVMNICs(param); System.out.println("VM Id: "+output.getVmId()); for(VMNICOutputDetails details : output.getvNicDetails()){ System.out.println("Adaptor Name: "+details.getAdapterName()); System.out.println("MAC Address: "+details.getMacAddress()); System.out.println("Static IP: "+details.getStaticIpPool()); System.out.println("Subnet Mask: "+details.getSubnetMask()); System.out.println("Gateway: "+details.getGateway()); } }
vNIC が VM に追加されます。
{ "serviceResult":{"vmId":49,"vNicDetails":[{"adapterName":"eth1", "macAddress":"00:50:56:8b:73:8b","staticIpPool":"10.10.10.0", "subnetMask":"255.255.255.0","gateway":"10.10.10.1"}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"genericvm:userAPIAddVMNICs" }
DHCP 構成の場合、isDHCP を True に設定します。DHCP が設定されると、IP アドレスが動的に指定されます。
スタティック設定の場合、isDHCP パラメータを False に設定し、staticIPPool、subnetMask、およびゲートウェイ パラメータに値を指定します。
選択した VM がコンテナと関連付けられ、isDHCP パラメータが False に設定されていて、かつ staticIPPool、subnetMask、およびゲートウェイ パラメータが指定されていない場合、システムはコンテナ テンプレートのネットワーク設定をチェックしてスタティック IP 設定を取得します。
VM の電源をオフにします。
VDC で使用できる VM を管理します。
VM がアクセスに使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5, param1:"powerOff",param2:"Power off sample test"}
public class userAPIExecuteVMActionExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); String statusMsg = instance.userAPIExecuteVMAction(1,"powerOff","Testing"); System.out.println(" Response msg is "+statusMsg); } }
電源がオフにされた VM のステータスが表示されます。
VM の電源をオフにするには、VM ID を渡して、userAPIExecuteVMAction API でアクション名を電源オフとして設定します。
ターゲット VM で特定の操作(VM の電源オン、VM の電源オフ、VM 名の変更など)を実行するための VMware VM ゲストをセットアップします。
ターゲット VM で VIX スクリプトを実行します。
VMware ツールを VM にインストールする必要があります。
/app/api/rest?formatType=json&opName=genericvm:userAPIExecuteVIXScript&opData={param0:355, param1:"root",param2:"cloupia123",param3:"/bin/echo \"Hello\";/bin/echo 'NPROXY=\$1' "}
VM ID、クレデンシャル、および VIX スクリプトが必要です。
public class VIXScriptExecuteUsingGuestSetup { public static void main(String[] args) { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); GuestSetup instance = new GuestSetup(server); instance.setVmId(120); instance.setCredentialsOptions("Do not Share"); instance.setUserId("admin"); instance.setPassword("admin"); GuestSetupResponse obj = instance.execute(); System.out.println("userid " + instance.getUserId()); System.out.println("vm id " + instance.getVmId()); System.out.println("password " + instance.getPassword()); ExecuteVIXScript instancevix = new ExecuteVIXScript(server); instancevix.setAccountName("cloud123"); instancevix.setVmId(instance.getVmId()); instancevix.setCredentialType("Login"); instancevix.setLogin(instance.getUserId()); instancevix.setPassword(instance.getPassword()); instancevix.setScript("/bin/date"); instancevix.setUndoScript(""); instancevix.setUndoScriptTask(false); instancevix.setOutputDisplay(false); ExecuteVIXScriptResponse response = instancevix.execute(); System.out.println("Respose status Code "+response.getResponseErrorCode()); } }
応答コードが実行された VIX スクリプトに返されます。
VM で VIX スクリプトを実行するには、userAPIExecuteVIXScript API を使用して、VM ID、クレデンシャル、および VIX スクリプトを渡します。
VMware システム ポリシーの管理
VMware システム ポリシーを作成し、使用するテンプレート、タイム ゾーン、OS 情報など、仮想マシン(VM)に対してシステム固有の情報を定義します。
VM のシステム固有の情報を定義します。
なし
なし
public class CreateSystemPolicyTest { public static void main(String[] args)throws Exception{ CuicServer api = CuicServer.getAPI("172.29.110.194", "6BF80FA2C71E4844AFEB3877CFD60621", "http", 80); UserAPIVMware instance = new UserAPIVMware(api); ServiceDeliveryPolicyRequestParam service = new ServiceDeliveryPolicyRequestParam(); LinuxVMParams linux=new LinuxVMParams(); linux.setDnsDomain("testdomain"); linux.setLinuxTimeZone("US/Pacific"); linux.setLinuxVMmaxBootWaitTime(2); WindowsVMParams window=new WindowsVMParams(); window.setOrganizationName("testOrganization"); service.setPolicyName("test2"); service.setPolicyDescription("test"); service.setVmImageType("Linux Only"); service.setHostNameTemplate("sample1"); service.setLinuxVM(linux); service.setWindowsVM(window); boolean policy= instance.userAPICreateVMwareSystemPolicy(service); System.out.println(policy); }
VMware システム ポリシーが正常に作成された場合、結果が True になります。
userAPICreateVMwareSystemPolicy API を使用し、名前と値の形式でシステム固有情報を渡して、VMware システム ポリシーを作成します。
VMware システム ポリシーの詳細情報を取得します。
VMware システム ポリシーの詳細は、システム管理者またはエンド ユーザによって取得されます。
なし
なし
public class GetSystemPolicyTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.194", "6BF80FA2C71E4844AFEB3877CFD60621", "http", 80); UserAPIVMware instance = new UserAPIVMware(api); ServiceDeliveryPolicyRequestParam service = new ServiceDeliveryPolicyRequestParam(); service.setPolicyName("test2"); PrivateCloudSystemProfile policy= instance.userAPIGetVMwareSystemPolicy(service); System.out.println("policyName:" + policy.getPolicyName()); System.out.println("policyDescription:" +policy.getPolicyDescription()); System.out.println("ImageType:" + policy.getImageType()); System.out.println("maxBootTime :" + policy.getLinuxVMMaxBootTime()); }
有効なシステム ポリシー名を指定すると、VMware システム ポリシーの詳細が正常に取得されます。
VMware システム ポリシー名を渡すことで userAPIGetVMwareSystemPolicy API を呼び出し、VMware システム ポリシーの詳細を取得します。userAPIGetAllVmwareSystemPolicies API を呼び出して、すべての VMware システム ポリシーの詳細を取得します。
VMware システム ポリシーを更新します。
VM のシステム固有の情報を更新します。
なし
/app/api/rest?formatType=json&opName=genericvm: userAPIUpdateVMwareSystemPolicy&opData={param0:{"policyName":"test", "policyDescription":"sample","vmImageType":"Linux Only", "vmNameTemplate":"sample","vmnamevalidationPolicy":"sample", "hostNameTemplate":"sample","hostNameValidationPolicy":"sample","linuxVM": {"dnsDomain":"sample","dnsSuffix":"sample","dnsServer":"sample", "linuxTimeZone":"US/Arizona","maxBootWaitTime":4},"windowsVM": {"productId":"sample","licenseOwnerName":"sample","organizationName": "sample","licenseMode":"sample","noOfLicenseUsers":1000,"primaryWINs": "sample","secondaryWINS":"sample","maxBootTime":1000,"isSIDUnique":true, "isAutoLogon":true,"autoLogonCount":1000,"administratorPassword":"sample", "windowsTimezone":"sample","joinTypeDomain":"sample","workGroupName":"sample", "domain":"sample","domainAdmin":"sample","domainPassword":"sample", "defineAnnotation":true}}}
なし
public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.194", "6BF80FA2C71E4844AFEB3877CFD60621", "http", 80); UserAPIVMware instance = new UserAPIVMware(api); ServiceDeliveryPolicyRequestParam service = new ServiceDeliveryPolicyRequestParam(); service.setPolicyName("test2"); service.setVmImageType("Linux Only"); service.setHostNameTemplate("sample2"); LinuxVMParams linux=new LinuxVMParams(); linux.setDnsDomain("testdomain"); linux.setLinuxTimeZone("US/Pacific"); linux.setLinuxVMmaxBootWaitTime(2); WindowsVMParams window=new WindowsVMParams(); window.setOrganizationName("testOrganization"); service.setLinuxVM(linux); service.setWindowsVM(window); boolean policy= instance.userAPIUpdateVMwareSystemPolicy(service); System.out.println(policy); }
VMware システム ポリシーが正常に更新された場合、結果が True になります。
userAPIUpdateVMwareSystemPolicy API を使用し、名前と値の形式で更新の必要なシステム固有情報を渡して、VMware システム ポリシーを更新します。
ポリシー名を渡すことで、VMware システム ポリシーを削除します。
VMware システム ポリシーはシステム管理者が削除できます。
削除する VMware システム ポリシーが存在する必要があります。
/app/api/rest?formatType=json&opName=genericvm: userAPIDeleteVMwareSystemPolicy&opData={param0:{"policyName":"test", "policyDescription":"sample","vmImageType":"sample","vmNameTemplate": "sample","vmnamevalidationPolicy":"sample","hostNameTemplate":"sample", "hostNameValidationPolicy":"sample","linuxVM":{"dnsDomain":"sample", "dnsSuffix":"sample","dnsServer":"sample","linuxTimeZone":"sample", "maxBootWaitTime":0},"windowsVM":{"productId":"sample","licenseOwnerName": "sample","organizationName":"sample","licenseMode":"sample", "noOfLicenseUsers":1000,"primaryWINs":"sample","secondaryWINS":"sample", "maxBootTime":1000,"isSIDUnique":true,"isAutoLogon":true,"autoLogonCount":1000, "administratorPassword":"sample","windowsTimezone":"sample","joinTypeDomain": "sample","workGroupName":"sample","domain":"sample","domainAdmin":"sample", "domainPassword":"sample","defineAnnotation":true}}}
なし
public class DeleteSystemPolicyTest { public static void main(String[] args) throws Exception] { CuicServer api = CuicServer.getAPI("172.29.110.194", "6BF80FA2C71E4844AFEB3877CFD60621", "http", 80); UserAPIVMware instance = new UserAPIVMware(api); ServiceDeliveryPolicyRequestParam service = new ServiceDeliveryPolicyRequestParam(); service.setPolicyName("test23423"); boolean policy= instance.userAPIDeleteVMwareSystemPolicy(service); system.out.println(policy); }
VMware システム ポリシーが正常に削除された場合、結果が True になります。
削除するポリシー名を渡すことで、userAPIDeleteVMwareSystemPolicy API を呼び出し、既存の VMware システム ポリシーを削除します。
VMware スナップショットを削除します。
新しいスナップショット用により多くのディスク領域を提供します。VMware スナップショットは、管理者のみが削除できます。
VMware スナップショットが使用可能である必要があります。
N/A
スナップショット名は必須です。
public class DeleteVMSnapshotExample { public static void main(String[] args) { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); DeleteVMSnapshot instance = new DeleteVMSnapshot(server); instance.setVmId(168); instance.setSnapshotName("snapshot-2015-01-10"); instance.setDeleteChild(false); DeleteVMSnapshotResponse response = instance.execute(); System.out.println(" Deleted response "+response.getStatus()); } }
VM スナップショットが正常に削除された場合、結果は true となります。
実装は必要ありません。
ワークフロー オーケストレーションの管理
VM をプロビジョニングする VDC を選択するなど、リソースで一連の操作を実行するためのワークフローを実行するためのサービス要求を送信します。
一連のタスクを実行するためのワークフローを実行します。
ワークフローが Cisco UCS Director で使用できる必要があります。ユーザは、ワークフローを実行する権限を持っている必要があります。
/app/api/rest?formatType=json&opName=userAPISubmitServiceRequest&opData= {param0:"testCatalog",param1:"vdc1",param2:1,param3:-1,param4:1,param5:"provisioning vm"}
ワークフロー名は必須です。
public class UserAPISubmitServiceRequestExample { public static void main(String[] args) throws Exception{ CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); int srId = instance.userAPISubmitServiceRequest("testCatalog", "vdc", 1, -1, 1, "UCSD-5.4.0.0"); System.out.println("srId "+srId); } }
サービス リクエスト ID が返されます。
ワークフローを実行するには、userAPISubmitServiceRequest API を呼び出して、ワークフロー名を渡します。
詳細カタログ タイプおよび引数とともにサービス要求を送信します。
詳細カタログ タイプ用のワークフローを実行します。
詳細カタログが Cisco UCS Director で使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPISubmitVAppServiceRequest&opData={param0: "PjaCat",param1:{"list":[{"name":"Tenant Name","value":"Pja_27"},{"name":"Tenant Description", "value":"none"},{"name":"MSP Admin","value":"asa"},{"name":"MSP Admin Password","value":"asa"}, {"name":"MSP Admin Email","value":"asa"},{"name":"Datastore Size(GB)","value":"10"}, {"name":"Memory Reservation(MB)","value":"100"},{"name":"No of CPU","value":"5"},{"name": "No of VDCs","value":"5"},{"name":"L2 Or L3 External Network Configuration","value":"None"}, {"name":"L2 VLAN ID","value":""},{"name":"L2 IP Subnet (x.x.x.x/n)","value":""},{"name": "Tenant IP Subnet (x.x.x.x/n)","value":"10.12.18.0/16"},{"name":"Replication Required","value": "No"}]}}
詳細カタログ名
public class UserAPISubmitVAppServiceRequestExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APINameValueList list = new APINameValueList(); APINameValue nv = new APINameValue(); nv.setName("Tenant Name"); nv.setValue("Tenant1"); nv.setName("Tenant Description"); nv.setValue(""); nv.setName("Tenant Group"); nv.setValue("MSPGroup"); list.addNameValue(nv); int srId = instance.userAPISubmitVAppServiceRequest("ExecuteAdvanceCat", list); System.out.println("srId "+srId); } }
サービス リクエスト ID が返されます。
詳細カタログ タイプ向けのワークフローを実行するには、userAPISubmitVAppServiceRequest API を呼び出して、詳細カタログ名を渡します。
有効なサービス リクエスト ID を渡すことで、サービス リクエストの出力の詳細を取得します。
サービス リクエストの出力を確認します。
ワークフローの正常に実行されたサービス リクエスト ID が Cisco UCS Director で使用できる必要があります。
/app/api/rest?formatType=json&opName=servicerequest: userAPIGetServiceRequestOutputDetails&opData={param0:1}
param0:出力を表示させるサービス リクエストの ID。
import java.util.List; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.UserAPIServiceRequest; import com.cisco.cuic.api.models.UserAPIVMware; import com.cisco.cuic.api.models.servicerequest.APIWorkflowOutputDetails; import com.cisco.cuic.api.models.servicerequest.APIWorkflowOutputFieldDetails; import com.cisco.cuic.api.models.vmware.ServiceDeliveryPolicyRequestParam; public class ServiceRequestOutputDetailsTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); UserAPIServiceRequest instance = new UserAPIServiceRequest(api); APIWorkflowOutputDetails outputDetails = instance.userAPIGetServiceRequestOutputDetails(1); List<APIWorkflowOutputFieldDetails> outputList =outputDetails.getWorkflowOutputDetails(); String outputFieldName=outputList.get(0).getOutputFieldName(); String outputFieldType=outputList.get(0).getOutputFieldType(); String ouputFieldDescription=outputList.get(0).getOutputFieldDescription(); String ouputFieldValue=outputList.get(0).getOutputFieldValue(); System.out.println(outputFieldName); System.out.println(outputFieldType); System.out.println(outputFieldType); System.out.println(ouputFieldValue); } }
サービス リクエストの出力の詳細が表示されます。
userAPIGetServiceRequestOutputDetails API を呼び出し、サービス リクエスト ID を渡して、そのサービス リクエストの出力を表示します。
特定の操作を元に戻すためにワークフローをロールバックします。ワークフローのロールバックに成功すると、サービス リクエスト ID が生成されます。システム管理者またはエンド ユーザが、ワークフローをロールバックできます。エンド ユーザは、ユーザ ロールに Write - Group Service Request ユーザ権限がある場合にのみサービス リクエストをロールバックできます。
あるユーザが別のユーザによって開始されたサービス リクエストをロールバックする場合、サービス リクエストの開始ユーザから承認を得るためのロールバック ワークフロー承認が起動されます。ロールバック ワークフローは、サービス リクエストの開始ユーザから承認が得られた後に実行されます。
(注) | 1 つ以上の複合ワークフロー タスクを持つワークフローがロールバックされる場合でも、ロールバック サービス リクエスト ID は 1 つのみ生成されます。複合ワークフロー タスクに対する子サービス リクエストは生成されません。 |
ワークフローの操作を元に戻します。
ワークフローの正常に実行されたサービス リクエスト ID が Cisco UCS Director で使用できる必要があります。
/app/api/rest?formatType=json&opName=userAPIRollbackWorkflow&opData={param0:40}
int srId:ロールバックするワークフローのサービス リクエスト ID。
public class UserAPIRollbackWorkflowExample { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); int srId = instance.userAPIRollbackWorkflow(123); System.out.println("srId " + srId); } }
サービス リクエスト ID が返されます。
サービス要求をロールバックするには、userAPIRollbackWorkflow API を呼び出して、サービス リクエスト ID を渡します。
ワークフローのフィールドの取得
詳細カタログに関連付けられたワークフローの入力フィールドを取得します。ワークフローの入力ラベル、名前、説明、入力タイプ、フィールド タイプ、およびカタログ タイプなどの入力フィールドを表示できます。
詳細カタログに関連付けられたワークフローの入力フィールドを確認します。
カタログがワークフローに関連付けられている必要があります。
要求
/app/api/rest?formatType=json&opName=catalog: userAPIGetCatalogInputDefinition&opData={param0:{"catalogName":"AdvCatalog"}}
応答
{ "serviceResult":{"details":[{"name":"input_0_input1989","label":"input1", "description":"","type":"gen_text_input","catalogType":null,"isOptional":false, "inputFieldType":"text","isMultiSelect":false,"inputFieldValidator":null}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"catalog:userAPIGetCatalogInputDefinition" }
catalogName:詳細カタログの名前。
public class GetCatalogInputDef { public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("10.23.210.42", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPICatalog catalog = new UserAPICatalog(api); APICatalogParams params = new APICatalogParams(); params.setCatalogName("AdvCatalog"); APIWorkflowInputDetails details = catalog.userAPIGetCatalogInputDefinition(params); List<APIWorkflowInputDetail> list = null; if(details != null){ list = details.getDetails(); }else{ throw new Exception("No input defination found!"); } if(list != null && list.size() > 0){ for(int i=0;i<list.size();i++){ System.out.println("Field Name: "+list.get(i).getName()); System.out.println("Field Label: "+list.get(i).getLabel()); System.out.println("Field Description: "+list.get(i).getDescription()); System.out.println("Input Type: "+list.get(i).getType()); System.out.println("Field Type: "+list.get(i).getInputFieldType()); System.out.println("Catalog Type: "+list.get(i).getCatalogType()); } }else{ System.out.println("No catalog input defination found!"); } } }
カタログに関連付けられたワークフローの入力フィールドがリストされます。
userAPIGetCatalogInputDefinition API を使用し、ワークフローに関連付けられた詳細カタログの名前を渡して、ワークフローの入力フィールドを表示します。
詳細カタログに関連付けられたワークフローの出力フィールドを取得します。ワークフロー出力ラベル、名前、説明、およびワークフローのタイプなどの出力フィールドを表示できます。
詳細カタログに関連付けられたワークフローの出力フィールドを確認します。
カタログがワークフローに関連付けられている必要があります。
要求
/app/api/rest?formatType=json&opName=catalog:userAPIGetCatalogOutputDefinition&opData= {param0:{"catalogName":"AdvCatalog"}}応答
{ "serviceResult":{"workflowOutputFieldList":[{"outputFieldLabel":”name”,"outputFieldName": "output_0_output1534","outputFieldType":"gen_text_input","outputFieldDescription":""}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"catalog:userAPIGetCatalogOutputDefinition" }
catalogName:詳細カタログの名前。
public class GetCatalogOutput { public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.241", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPICatalog catalog = new UserAPICatalog(api); APICatalogParams params = new APICatalogParams(); params.setCatalogName("AdvCatalog"); APIWorkflowOutputFieldDefinitionList def = catalog.userAPIGetCatalogOutputDefinition(params); List<APIWorkflowOutputFieldDefinition> list; if(def != null){ list = def.getWorkflowOutputFieldList(); }else{ throw new Exception("No output defination found!"); } if(list != null && list.size() > 0){ for(int i=0;i< list.size();i++){ System.out.println("Field label: "+list.get(i).getOutputFieldLabel()); System.out.println("Field name: "+list.get(i).getOutputFieldName()); System.out.println("Field description: "+list.get(i).getOutputFieldDescription()); System.out.println("Field type: "+list.get(i).getOutputFieldType()); } }else{ throw new Exception("No workflow output field found!"); } //System.out.println("lisst = " + list.getWorkflowOutputFieldList().get(0)); } }
カタログに関連付けられたワークフローの出力フィールドがリストされます。
userAPIGetCatalogOutputDefinition API を使用し、ワークフローに関連付けられた詳細カタログの名前を渡して、ワークフローの出力フィールドを表示します。
ワークフローの入力フィールドを取得します。ワークフローの入力ラベル、名前、説明、タイプ、および isAdmin 入力タイプなど、ワークフローの入力フィールドを表示できます。
ワークフロー入力フィールドを確認します。
ワークフロー入力が Cisco UCS Director に存在している必要があります。
要求
/app/api/rest?formatType=json&opName=userAPIGetWorkflowInputs&opData= {param0:"Expand VSAN Cluster"}応答
{ "serviceResult":{"details":[{"name":"input_6_VSAN_Cluster915","label":"VSAN Cluster", "description":"Select VSAN Cluster","type":"vsanCluster","catalogType":null,"isOptional":false, "inputFieldType":"popup-table","isMultiSelect":false,"inputFieldValidator":null, "isAdminInput":false},{"name":"input_3_Host_Nodes50","label":"Host Nodes","description":"Host Nodes : Ex. 172.29.195.75,172.29.195.76,172.29.195.77","type":"gen_text_input", "catalogType":null,"isOptional":false,"inputFieldType":"text","isMultiSelect":false, "inputFieldValidator":null,"isAdminInput":false},{"name":"input_2_Host_User_ID924", "label":"Host User ID","description":"Enter User ID","type":"gen_text_input","catalogType":null, "isOptional":false,"inputFieldType":"text","isMultiSelect":false,"inputFieldValidator":null, "isAdminInput":false},{"name":"input_3_Host_Password766","label":"Host Password","description": "Enter Host Password","type":"password","catalogType":null,"isOptional":false, "inputFieldType":"password","isMultiSelect":false,"inputFieldValidator":null, "isAdminInput":false},{"name":"input_6_Host_License325","label":"Host License","description":"", "type":"gen_text_input","catalogType":null,"isOptional":true,"inputFieldType":"text", "isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_5_DVSwitch176","label":"DVSwitch","description":"Select DVSwitch","type": "VMwareDVSwitchIdentity","catalogType":null,"isOptional":false,"inputFieldType":"table", "isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_9_DVSwitch_Uplink_Portgroup885","label":"DVSwitch Uplink Portgroup", "description":"Select Uplink Portgroup,According to DVSwitch","type":"uplinkPortGroupLovList", "catalogType":null,"isOptional":false,"inputFieldType":"embedded-lov", "isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_10_Virtual_SAN_Portgroup153","label":"Virtual SAN Portgroup", "description":"Select Virtual SAN Portgroup","type":"VMwareDVPortgroupIdentity", "catalogType":null,"isOptional":false,"inputFieldType":"table","isMultiSelect":false, "inputFieldValidator":null,"isAdminInput":false},{"name":"input_11_VSAN_IP_Pool_Policy298", "label":"VSAN IP Pool Policy","description":"Select VSAN IP Pool Policy","type": "VMWareIPPoolPolicy","catalogType":null,"isOptional":false,"inputFieldType":"popup-table", "isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_11_vMotion_Portgroup289","label":"vMotion Portgroup", "description":"","type":"VMwareDVPortgroupIdentity","catalogType":null,"isOptional":true, "inputFieldType":"table","isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_10_vMotion_IP_Pool_Policy807","label":"vMotion IP Pool Policy","description":"", "type":"VMWareIPPoolPolicy","catalogType":null,"isOptional":true,"inputFieldType":"popup-table", "isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}, {"name":"input_7_MTU_Size697","label":"MTU Size","description":"Enter MTU Size, Ex : 1500 or 9000","type":"gen_text_input","catalogType":null,"isOptional":false, "inputFieldType":"text","isMultiSelect":false,"inputFieldValidator":null,"isAdminInput":false}]}, "serviceError":null, "serviceName":"InfraMgr","opName":"userAPIGetWorkflowInputs" }
param0:ワークフローの名前。
public class GetWorkflowInputs { public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("10.23.210.42", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPIGlobal instance = new UserAPIGlobal(api); APIWorkflowInputDetails details = instance.userAPIGetWorkflowInputs("Test1"); List<APIWorkflowInputDetail> list = null; if(details != null){ list = details.getDetails(); }else{ throw new Exception("No workflow input defination found!"); } if(list != null && list.size() > 0){ for(int i = 0;i < list.size();i++){ System.out.println("Field Name: "+list.get(i).getName()); System.out.println("Field Label: "+list.get(i).getLabel()); System.out.println("Field Description: "+list.get(i).getDescription()); System.out.println("Input Type: "+list.get(i).getType()); System.out.println("Field Type: "+list.get(i).getInputFieldType()); System.out.println("Is Admin Input Type :"+list.get(i).isAdminInput()); } }else{ System.out.println("No workflow input found!"); } } }
ワークフローの入力フィールドがリストされます。
userAPIGetWorkflowInputs API を使用して、ワークフローの名前を渡し、ワークフローの入力フィールドを表示します。
ワークフローの出力フィールドを取得します。出力ラベル、名前、説明、およびワークフローのタイプなどの出力フィールドを取得できます。
ワークフローの出力フィールドを確認します。
なし
要求
/app/api/rest?formatType=json&opName= workflow:userAPIGetWorkflowOutputDefinition&opData={param0:"Test1"}応答
{ "serviceResult":{"workflowOutputFieldList":[{"outputFieldLabel":"OUTPUT_NAME", "outputFieldName":"output_0_OUTPUT_NAME75","outputFieldType":"gen_text_input", "outputFieldDescription":"person's name"}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"workflow:userAPIGetWorkflowOutputDefinition" }
param0:出力フィールドを表示させるワークフローの名前。
public class GetWorkflowOutputDef { public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("10.23.210.42", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPIWorkflow instance = new UserAPIWorkflow(api); APIWorkflowOutputFieldDefinitionList def = instance.userAPIGetWorkflowOutputDefinition("Test1"); List<APIWorkflowOutputFieldDefinition> list =null; if(def != null){ list = def.getWorkflowOutputFieldList(); }else{ throw new Exception("No workflow output defination found!"); } if(list != null && list.size() > 0){ for(int i=0;i<list.size();i++){ System.out.println("Field Name: "+list.get(i).getOutputFieldName()); System.out.println("Field Label: "+list.get(i).getOutputFieldLabel()); System.out.println("Field Description: "+list.get(i).getOutputFieldDescription()); System.out.println("Field Type: "+list.get(i).getOutputFieldType()); } }else{ System.out.println("No workflow output field found!"); } } }
ワークフローの出力フィールドがリストされます。
userAPIGetWorkflowOutputDefinition API を使用して、ワークフローの名前を渡し、ワークフローの出力フィールドを表示します。
MSP の管理
Cisco UCS Director のマネージド サービス プロバイダー(MSP)モードを有効化または無効化します。
Cisco UCS Director で、MSP ユーザまたは MSP 組織へのアクセスに MSP モードが有効にされている必要があります。
なし
Cisco UCS Director サービスを再起動します。
/app/api/rest?formatType=json&opName=auth:userAPIToggleMspMode&opData={param0: {"action":true,"tenantName":"sample","orgName":"sample"}}
public static void main(String[] args) throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.241", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPIAuthConfig instance = new UserAPIAuthConfig(api); APIMSPModeParams params = new APIMSPModeParams(); params.setAction(true); params.setTenantName("MSP Users"); params.setOrgName("MSP Organization"); String result = instance.userAPIToggleMspMode(params); System.out.println("Result: "+result); }
設定された MSP モードに応じてステータス メッセージが表示されます。
MSP ユーザ名および MSP 組織名を渡し、userAPIToggleMspMode API で action を true に設定して、MSP モードを有効にします。
レポートの管理
userAPIGetAvailableReports API を使用して、指定した contextName と contextValue に対して Cisco UCS Director で利用可能なすべてのレポートのタイプ、ID およびラベルを表示できます。
指定した contextName と contextValue に対して利用可能なレポートの定義を表示します。
指定する contextName と contextValue が Cisco UCS Director で使用可能であることが必要です。
要求
/app/api/rest?formatType=json&opName=userAPIGetAvailableReports&opData ={param0:"22",param1:"Jha_VDC_VMware_82"}
レポート コンテキストの名前と値の詳細については、『Cisco UCS Director Open Automation Cookbook』の付録 B:「Report Context Types and Report Context Names」を参照してください。
import java.util.List; import com.cisco.cuic.api.models.UserAPIGlobal; import com.cisco.cuic.api.client.APIReportDefinition; import com.cisco.cuic.api.client.CuicServer; public class TestuserAPIGetAvailableReports { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.29.110.222","96408900345D40C0BC889E4F41C2E094", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); List<APIReportDefinition> apiReportDefinitionList=instance.userAPIGetAvailableReports("22", "Jha_VDC_VMware-82"); int i=0; for(APIReportDefinition apiReportDefinition: apiReportDefinitionList){ System.out.println("Report_"+i); System.out.println("reportLabel: "+apiReportDefinition.getReportLabel()); System.out.println("reportID: "+apiReportDefinition.getReportId()); System.out.println("reportType: "+apiReportDefinition.getReportType()); i++; } } }
指定した contextName と contextValue に対して利用可能なレポートのタイプ、ID、およびラベルが表示されます。
userAPIGetAvailableReports API を使用して、contextName と contextValue を渡し、指定した contextName と contextValue の API レポート定義のリストを表示します。
userAPIGetHistoricalReport API を使用して、特定の期間についての VDC CPU 使用傾向レポートなど、あるレポート コンテキストの履歴データを表示できます。レポート コンテキストでは、contextName、contextValue、および reportId が参照されます。
特定の期間のレポート コンテキストの履歴データが表示されます。
指定する contextName と contextValue が Cisco UCS Director で使用可能であることが必要です。期間は、Cisco UCS Director 内の指定された期間のいずれか、または Cisco UCS Director でサポートされているフォーマットに従ってカスタマイズされた時間帯であることが必要です。
要求
/app/api/rest?formatType=json&opName=userAPIGetHistoricalReport&opData= {param0:"22",param1:"2",param2:"TREND-VDC-CPU-USAGE-H0",param3:"hourly"}
レポート コンテキストの名前と値の詳細については、『Cisco UCS Director Open Automation Cookbook』の付録 B:「Report Context Types and Report Context Names」を参照してください。
import java.util.List; import com.cisco.cuic.api.client.APIHistoricalReport; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.client.DataSample; import com.cisco.cuic.api.client.HistoricalDataSeries; import com.cisco.cuic.api.models.UserAPIGlobal; public class TestuserAPIGetHistoricalReport { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.29.110.222","96408900345D40C0BC889E4F41C2E094", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APIHistoricalReport historicalReport=instance.userAPIGetHistoricalReport("22", "2", "TREND-VDC-CPU-USAGE-H0", "hourly"); List<HistoricalDataSeries> historicalDataSeriesList = historicalReport.getSeries(); int i=0; for(HistoricalDataSeries hds: historicalDataSeriesList){ System.out.println("****Series_"+i+"****"); System.out.println("paramName: "+hds.getParamName()); System.out.println("paramLabel: "+hds.getParamLabel()); DataSample[] dataSampleArr=hds.getValues(); for(DataSample ds:dataSampleArr ){ System.out.println("timestamp: "+ds.getTimestamp()); System.out.println("min: "+ds.getMin()); System.out.println("max: "+ds.getMax()); System.out.println("avg: "+ ds.getAvg()); } System.out.println("precision: "+hds.getPrecision()); System.out.println("units: "+hds.getUnits()); i++; } } }
特定の期間のレポートのコンテキストの履歴データが表示されます。
userAPIGetHistoricalReport API を使用して、contextName、contextValue、および期間を渡し、特定の期間中のレポート コンテキストの履歴データを表示します。
クラウド インフラストラクチャ管理に使用されるリソースのレポートは、userAPIGetResourceUsageCostSummary API を使用して表示できます。この API を使用して、管理者とエンド ユーザが、日単位、週単位、月単位のリソース使用レポートを確認できます。
日単位、週単位、月単位のリソースのインフラストラクチャ使用率やコスト レポートを表示します。
なし
例 1:resourceName のない仮想マシン(VM)の日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0:{"requestParam": [{"name":"vmid","value":"56"}],"fromTimeInMilliSeconds":1442946600000, "toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":"VM","duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"vmid","value":"56"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0, "applicationCost":23.0,"totalCost":5.0,"fixedCost":4.0,"catalogItemName": "SDK","cpuResourceUsageCost":{"cpu_GHz_Hours":111.99998388000004, "cpuCost":4.0,"reservedCpuGhzCost":9.0,"usedCpuGhzCost":65.0,"reservedCpuGhz":0.0, "usedCpuGhz":0.0,"cpuCores":40,"cpuCoreCost":56.0}],"diskResourceUsageCost": [{"committedDiskGB":40.60000000000001,"uncommittedDiskGB":1.4000000000000008, "committedDiskGBCost":56.0,"uncommittedDiskGBCost":567.0}],"memoryResourceUsageCost": [{"memory":67.0,"memoryCost":67.0,"reservedMemoryGBCost":7.0,"usedMemoryGBCost":12.0, "usedMemoryGB":0.0,"reservedMemoryGB":0.0}],"networkResourceUsageCost": [{"netRxUsageGB":0.0,"netTxUsageGB":76.0,"netRxUsageGBCost":0.00006389617919921875, "netTxUsageGBCost":0.00008296966552734375}],"physicalServerResourceUsageCost": [{"halfLengthBlade":false,"bladeType":"","fullBladeCost":67.0,"halfBladeCost":76.0, "serverCost":5.0}]}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
例 2:resourceName のないグループの日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0:{"requestParam": [{"name":"Group","value":"Default Group"}],"fromTimeInMilliSeconds":1442946600000, "toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":null,"duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"Group","value":"Default Group"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0,"applicationCost":23.0, "totalCost":5.0,"fixedCost":4.0,"catalogItemName":"SDK","cpuResourceUsageCost": [{"cpu_GHz_Hours":351.99997083999995,"cpuCost":4.0,"reservedCpuGhzCost":9.0, "usedCpuGhzCost":65.0,"reservedCpuGhz":0.0,"usedCpuGhz":0.0,"cpuCores":120, "cpuCoreCost":56.0}],"diskResourceUsageCost":[{"committedDiskGB":1225.1200000000001, "uncommittedDiskGB":3974.999999999999,"committedDiskGBCost":56.0, "uncommittedDiskGBCost":567.0}],"memoryResourceUsageCost":[{"memory":240.0, "memoryCost":67.0,"reservedMemoryGBCost":7.0,"usedMemoryGBCost":12.0, "usedMemoryGB":0.0,"reservedMemoryGB":0.0}],"networkResourceUsageCost": [{"netRxUsageGB":0.0,"netTxUsageGB":76.0,"netRxUsageGBCost":0.00006389617919921875, "netTxUsageGBCost":0.00008296966552734375}],"physicalServerResourceUsageCost": [{"halfLengthBlade":false,"bladeType":"","fullBladeCost":67.0,"halfBladeCost":76.0, "serverCost":5.0}]}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
例 3:resourceName のない仮想データセンター(VDC)の日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0: {"requestParam":[{"name":"vdcid","value":"1"}],"fromTimeInMilliSeconds":1442946600000, "toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":null,"duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"vdcName","value":"Default vDC"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0,"applicationCost":23.0, "totalCost":5.0,"fixedCost":4.0,"catalogItemName":"SDK","cpuResourceUsageCost": [{"cpu_GHz_Hours":351.99997083999995,"cpuCost":4.0,"reservedCpuGhzCost":9.0, "usedCpuGhzCost":65.0,"reservedCpuGhz":0.0,"usedCpuGhz":0.0,"cpuCores":120, "cpuCoreCost":56.0}],"diskResourceUsageCost":[{"committedDiskGB":1225.1200000000001, "uncommittedDiskGB":3974.999999999999,"committedDiskGBCost":56.0, "uncommittedDiskGBCost":567.0}],"memoryResourceUsageCost":[{"memory":240.0, "memoryCost":67.0,"reservedMemoryGBCost":7.0,"usedMemoryGBCost":12.0, "usedMemoryGB":0.0,"reservedMemoryGB":0.0}],"networkResourceUsageCost": [{"netRxUsageGB":0.0,"netTxUsageGB":76.0,"netRxUsageGBCost":0.00006389617919921875, "netTxUsageGBCost":0.00008296966552734375}],"physicalServerResourceUsageCost": [{"halfLengthBlade":false,"bladeType":"","fullBladeCost":67.0,"halfBladeCost":76.0, "serverCost":5.0}]}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
例 4:VM 内の CPU の日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0:{"requestParam": [{"name":"vmid","value":"56"},{"name":"resourceName","value":"CPU"}], "fromTimeInMilliSeconds":1442946600000,"toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":"VM","duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"vmid","value":"56"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0, "applicationCost":23.0,"totalCost":5.0,"fixedCost":4.0,"catalogItemName": "SDK","cpuResourceUsageCost":{"cpu_GHz_Hours":111.99998388000004,"cpuCost":4.0, "reservedCpuGhzCost":9.0,"usedCpuGhzCost":2.6,"reservedCpuGhz":0.0,"usedCpuGhz":0.0, "cpuCores":40,"cpuCoreCost":56.0}],"diskResourceUsageCost":null, "memoryResourceUsageCost":null,"networkResourceUsageCost":null, "physicalServerResourceUsageCost":null}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
例 5:グループ内のディスクの日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0: {"requestParam":[{"name":"Group","value":"Default Group"}, {"name":"resourceName","value":"disk"}],"fromTimeInMilliSeconds":1442946600000, "toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":null,"duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"Group","value":"Default Group"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0,"applicationCost":23.0, "totalCost":5.0,"fixedCost":4.0,"catalogItemName":"SDK","cpuResourceUsageCost":null, "diskResourceUsageCost":[{"committedDiskGB":1225.1200000000001, "uncommittedDiskGB":3974.999999999999,"committedDiskGBCost":56.0, "uncommittedDiskGBCost":567.0}],"memoryResourceUsageCost":null, "networkResourceUsageCost":null,"physicalServerResourceUsageCost":null}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
例 6:VDC 内の VM の日単位使用レポート
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0: {"requestParam":[{"name":"vdcid","value":"1"},{"name":"resourceName", "value":"VM"}],"fromTimeInMilliSeconds":1442946600000, "toTimeInMilliSeconds":1443032999000}}応答
{ "serviceResult":{"resourceType":null,"duration":"Daily_22_9_2015", "responseParamList":{"list":[{"name":"vdcName","value":"Default vDC"}]}, "resourceUsageCostSummary":[{"groupId":1,"groupName":"Default Group","vdcId":0, "onetimeCost":8.0,"activeCost":56.0,"inactiveCost":4.0,"applicationCost":23.0, "totalCost":5.0,"fixedCost":4.0,"catalogItemName":"SDK","cpuResourceUsageCost": [{"cpu_GHz_Hours":351.99997083999995,"cpuCost":4.0,"reservedCpuGhzCost":9.0, "usedCpuGhzCost":65.0,"reservedCpuGhz":0.0,"usedCpuGhz":0.0,"cpuCores":0, "cpuCoreCost":56.0}],"diskResourceUsageCost":[{"committedDiskGB":1225.1200000000001, "uncommittedDiskGB":3974.999999999999,"committedDiskGBCost":56.0, "uncommittedDiskGBCost":567.0}],"memoryResourceUsageCost":[{"memory":240.0, "memoryCost":67.0,"reservedMemoryGBCost":7.0,"usedMemoryGBCost":12.0, "usedMemoryGB":0.0,"reservedMemoryGB":0.0}],"networkResourceUsageCost": [{"netRxUsageGB":0.0,"netTxUsageGB":76.0,"netRxUsageGBCost":0.00006389617919921875, "netTxUsageGBCost":0.00008296966552734375}],"physicalServerResourceUsageCost":null}]}, "serviceError":null, "serviceName":"InfraMgr", "opName":"chargeback:userAPIGetResourceUsageCostSummary" }
APINameValueList requestParam:リクエストされたレポート パラメータの、名前と値のペア形式のリスト。名前の値は vmId、vdcName、groupName、および resourceName です。名前として resourceName が渡された場合、resourceName の値は cpu、disk、memory、VM、BM、network、または空の値(" ")になります。
名前 |
resourceName |
---|---|
vmid |
CPU /Disk/VM/BM/Memory/Network |
vdcid |
Disk |
Group |
VM |
vmid |
なし |
vdcid |
なし |
Group |
なし |
fromTimeInMilliSeconds:レポートの開始時間(ミリ秒単位)。たとえば、日時の文字列 Mon Feb 16 2015 00:00:00 GMT-0400 (Eastern Daylight Time) は、ミリ秒単位で 1424059200000 と表されます。
toTimeInMilliSeconds:レポートの終了時間(ミリ秒単位)。たとえば、日時の文字列 Sun Feb 22 2015 00:00:00 GMT-0400 (Eastern Daylight Time) は、ミリ秒単位で 1424577600000 と表されます。
public class GetResourceUsageCostSummaryTest { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.29.110.128", "3E17CFFBA7A64C71B8958F40DE2EC9B3", "http", 80); UserAPIChargeBack instance = new UserAPIChargeBack(api); APIResourceUsageCostParams costParams = new APIResourceUsageCostParams(); APINameValue value=new APINameValue(); value.setName("vmid"); value.setValue("56"); List<APINameValue> requestParam=new ArrayList<APINameValue>(); requestParam.add(value); costParams.setRequestParam(requestParam); costParams.setFromTimeInMilliSeconds(1442946600000l); costParams.setToTimeInMilliSeconds(1443032999000l); APIResourceUsageCostSummaryResponse response = instance.userAPIGetResourceUsageCostSummary(costParams); System.out.println("Duration :" +response.getDuration()); System.out.println("ResourceType :" +response.getResourceType()); APINameValueList list=response.getResponseParamList(); List<APINameValue> apivalue= list.getList(); for(int i=0;i<apivalue.size();i++){ System.out.println("Name :" + apivalue.get(i).getName()); System.out.println("Value :" + apivalue.get(i).getValue()); } List<APIResourceUsageCostSummary> summary=response.getResourceUsageCostSummary(); for(int i=0;i<summary.size();i++){ System.out.println("catalogItemName :" + summary.get(i).getCatalogItemName()); //System.out.println("cpuResourceUsageCost" + summary.get(i).getCpuResourceUsageCost()); APICPUResourceUsageCost[] cpus=summary.get(i).getCpuResourceUsageCost(); for(int j=0;j<cpus.length;j++){ System.out.println("Cpu_GHz_Hours : " + cpus[j].getCpu_GHz_Hours()); System.out.println("CPU CoreCost : " + cpus[j].getCpuCoreCost()); System.out.println("Cpu Cores :" + cpus[j].getCpuCores()); System.out.println("Cpu Cost :" + cpus[j].getCpuCost()); System.out.println("Reserved CpuGHZCost" + cpus[j].getReservedCpuGhzCost()); System.out.println("Used Cpu Cost" + cpus[j].getUsedCpuGhzCost()); } } } }
リクエストされたリソースの使用レポートが表示されます。
userAPIGetResourceUsageCostSummary API を使用して、名前と値の形式でレポート パラメータを渡し、リソースの使用レポートを表示します。
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0:{"requestParam": [{"name":"vmid","value":"56"},{"name":"resourceName","value":"CPU"}], "fromTimeInMilliSeconds":1441081800000,"toTimeInMilliSeconds":1443587400000}}
/app/api/rest?formatType=json&opName= chargeback:userAPIGetResourceUsageCostSummary&opData={param0:{"requestParam": [{"name":"vmid","value":"56"},{"name":"resourceName","value":"CPU"}], "fromTimeInMilliSeconds":1442982600000,"toTimeInMilliSeconds":1443587400000}}
月単位/週単位/日単位のタイムスタンプ、vmid、および resourceName(CPU、Disk、VM、BM、memory、または network)。
月単位/週単位/日単位のタイムスタンプ、vdcid、および resourceName(CPU、Disk、VM、BM、memory、または network)。
月単位/週単位/日単位のタイムスタンプ、Group、および resourceName(CPU、Disk、VM、BM、memory、または network)。
月単位/週単位/日単位のタイムスタンプ、vmid、resourceName なし。
月単位/週単位/日単位のタイムスタンプ、vdcid、resourceName なし。
月単位/週単位/日単位のタイムスタンプ、Group、resourceName なし。
userAPIGetInstantDataReport API を使用して、レポート コンテキストのスナップショットを表示できます。レポート コンテキストでは、contextName、contextValue、および reportId が参照されます。
レポート コンテキストのスナップショットを表示します。
指定する contextName、contextValue、および reportId が Cisco UCS Director で使用可能であることが必要です。
要求
/app/api/rest?formatType=json&opName=userAPIGetInstantDataReport&opData= {param0:"1",param1:"Jha_Vmware_Cloud_82",param2:"VMS-ACTIVE-VS-INACTIVE-S0"}
レポート コンテキストの名前と値の詳細については、『Cisco UCS Director Open Automation Cookbook』の付録 B:「Report Context Types and Report Context Names」を参照してください。
import java.util.List; import com.cisco.cuic.api.models.UserAPIGlobal; import com.cisco.cuic.api.client.APISnapshotReport; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.client.ReportNameValuePair; import com.cisco.cuic.api.client.SnapshotReportCategory; public class TestuserAPIGetInstantDataReport { public static void main(String[] args) throws Exception { CuicServer server = CuicServer.getAPI("172.29.110.222","96408900345D40C0BC889E4F41C2E094", "https", 443); UserAPIGlobal instance = new UserAPIGlobal(server); APISnapshotReport apiSanpshotReport=instance.userAPIGetInstantDataReport("1", "Jha_Vmware_Cloud_82", "VMS-ACTIVE-VS-INACTIVE-S0"); System.out.println("categoryAxisName: "+apiSanpshotReport.getCategoryAxisName()); System.out.println("valueAxisName: "+apiSanpshotReport.getValueAxisName()); List<SnapshotReportCategory> snapshotReportCategoryList= apiSanpshotReport.getCategories(); int i=0; for(SnapshotReportCategory snapshotReportCategory:snapshotReportCategoryList){ System.out.println("Category_"+i); System.out.println("categoryName: "+snapshotReportCategory.getCategoryName()); int j=0; ReportNameValuePair[] reportNameValuePairArr=snapshotReportCategory.getNameValuePairs(); for(ReportNameValuePair reportNameValuePair:reportNameValuePairArr ){ System.out.println("ReportNameValuePair_"+j); System.out.println("name: "+reportNameValuePair.getName()); System.out.println("value: "+reportNameValuePair.getValue()); j++; } i++; } } }
指定したレポート コンテキストのスナップショットが表示されます。
userAPIGetInstantDataReport API を使用して、contextName、contextValue、および reportId を渡し、指定したレポート コンテキストのスナップショットを表示します。
userAPIFilterTabularReport API を使用して、特定のコンテキストに基づいてフィルタリングされた表形式レポートのセットを表示できます。
特定のコンテキストの表形式レポートを表示します。
Cisco UCS Director でコンテキストが使用可能である必要があります。
/app/api/rest?formatType=json&opName=userAPIFilterTabularReport&opData= {param0:"1",param1:"VMware70",param2:"VMS-T0",param3:"VM-ID",param4:"1"}
import com.cisco.cuic.api.client.APITabularReport; import com.cisco.cuic.api.client.CuicServer; import com.cisco.cuic.api.models.UserAPIGlobal; import com.cisco.cuic.api.models.UserAPIServiceRequest; public class TestuserAPIGetTabularReport { public static void main(String[] args)throws Exception { CuicServer api = CuicServer.getAPI("172.22.234.243", "CF87FA987C8F4BBF814F2BB68CA6A823", "http", 80); UserAPIGlobal instance = new UserAPIGlobal(api); APITabularReport report=instance.userAPIFilterTabularReport("0", "All%20Clouds", "VMS-T0","VM-ID","9"); System.out.println(report.getRowCount()); } }
特定のコンテキストの表形式レポートが、フィルタリングされて表示されます。
userAPIFilterTabularReport API を使用して、レポートのパラメータを渡し、表形式レポートを表示します。