Cisco UCS Director REST API の手順書、リリース 5.4

目次


この章は、次の項で構成されています。

グループの管理

グループの作成

目標

Cisco UCS Director に指定されたデータ(グループ名、説明、連絡先の詳細)で新しいグループを作成します。

コンテキスト

サービス エンドユーザまたはグループ管理者を Cisco UCS Director に追加する前にグループを作成する必要があります。サービス エンドユーザまたはグループ管理者はグループに割り当てられます。グループ内のユーザは、権限に基づいて、リソースに対する読み取り/書き込み権限を継承します。

前提条件

REST API は管理者のユーザ ID を使用して呼び出す必要があります。

REST の URL
/app/api/rest?formatType=json&opName=userAPICreateGroup&opData={param0:{"groupId":-1,"groupName":"SDK MSP","description":"apitest","parentGroupId":-1,"parentGroupName":"SDK Non MSP","emailAddress":"test@cisco.com","lastName":"Group ","firstName":"SDK ","phoneNumber":"","address":"","groupType":0}}
コンポーネント
userAPICreateGroup API のパラメータは次のとおりです。
  • int groupId:グループの一意の ID。

  • 文字列 groupName:グループまたは顧客組織の名前。

  • 文字列 description:オプション。グループまたは顧客組織の説明(必要な場合)。

  • int parentGroupId:親グループ ID が 0 より大きい場合、作成したグループ名は親グループ ID にマップされます。グループが親グループまたは組織に属している場合、parentId および parentGroupName パラメータは必須です。グループ タイプが 0 として設定されている場合、グループ名および電子メールアドレスは必須です。

  • 文字列 emailAddress:この電子メールは、必要に応じてサービス リクエストおよびリクエスト承認のステータスをグループ所有者に通知する目的で使用されます。

  • 文字列 lastName:オプション。グループ所有者の姓。

  • 文字列 firstName:オプション。グループ所有者の名。

  • 文字列 phoneNumber:オプション。グループ所有者の電話番号。

  • 文字列 address:オプション。グループ所有者の住所。

  • int groupType:グループ タイプは、管理者またはエンド ユーザに対しては 0、マネージド サービス プロバイダー(MSP)組織ユーザに対しては 1 と設定されます。

コード
JSON ベースの API
public class userAPICreateGroupExample 
{
	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();
		//While creating group , Group id should be -1.
		apiGroup.setGroupId(-1);
		apiGroup.setGroupName("TestGrp");	
		apiGroup.setDescription("Testing sample");
		//Parent Group id is 0.
		apiGroup.setParentGroupId(0);
		apiGroup.setParentGroupName("ABC");
		apiGroup.setEmailAddress("sdk@example.com");
		apiGroup.setLastName("UCSD");
		apiGroup.setFirstName("Cisco");
		apiGroup.setPhoneNumber("12345");
		apiGroup.setAddress("SanJose");
		apiGroup.setGroupType(0);
		int groupId = instance.userAPICreateGroup( apiGroup );
		System.out.println(" Group id ="+groupId);
	}
}

また、userAPIGroupcreate という XML ベースの API を使用してグループを作成することもできます。

userAPIGroupcreate 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 内のグループのリストを表示します。

前提条件

要求ユーザは、グループのリストを取得する権限を持っている必要があります。

REST の URL
/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 およびグループ名は編集できません。

コンテキスト

グループの連絡先情報および説明を更新します。

前提条件

ログイン ユーザには、グループを変更する権限が必要です。

REST の URL
/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 を取得できます。

REST の URL
/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 を渡すことで、グループを削除します。

関連項目

グループの作成

すべてのグループのリスト化

グループの変更

カタログの管理

カタログ項目の作成

目標

VM をプロビジョニングするためのカタログ項目を作成します。カタログ項目では、VM をバインドするクラウドの名前およびグループの名前などのパラメータを定義します。

コンテキスト

カタログ項目はシステム管理者によって作成されます。

前提条件
  • このカタログ項目の作成先となるフォルダを作成します。

  • クラウド、イメージおよびグループが Cisco UCS Director に存在する必要があります。

REST の URL
/app/api/rest?formatType=json&opName=userAPICreateCatalogItem&opData{param0:
{"catalogItemId":-1,"catalogItemName":"testcat","catalogItemDescription":"for testing",
"cloudName":"DR_Cloud51","imageId":"VPX_Template","groups":"Default Group",
"isAppliedToAllGroups":false,"supportEmail":"test@cisco.com","vdcCategoryId":1,
"appList":null,"otherApps":null,"os":-1,"otherOS":null,"templateUser":null,
"templatePassword":null,"credentialOption":1,"catalogIcon":null}}
コンポーネント

APICatalogItem 項目

コード
public class CreateCatalogItemExample 
{
	public static void main(String[] args) throws Exception 
 {
  CuicServer server = CuicServer.getAPI("192.0.2.207", "1A8DE698E2BF4C0B989476A369F0FC64", "https", 443);
		UserAPIGlobal instance = new UserAPIGlobal(server);
		APICatalogItem item = new APICatalogItem();
		item.setCatalogItemId(20);
		item.setCatalogItemName("SDKCat");
		item.setCatalogItemDescription("SDK Catalog ");
		item.setCloudName("Cloud-82");
		item.setImageId("/app/vmareimage");
		item.setGroups("SDK Grp XML");//The catalog is assigned to the set  group
		item.setAppliedToAllGroups(false); //Set true to assign the catalog to all groups
		item.setSupportEmail("email@example.com");
		item.setVdcCategoryId(2);
		int[] appList = null;
		appList[0] = 1;
		appList[1] = 1;
		item.setAppList(appList);
		item.setOtherApps("");
		item.setOtherOS("");
		boolean isCreated = instance.userAPICreateCatalogItem(item);
		System.out.println(" is Catalog created ="+isCreated);
	}
}
結果

カタログ項目が正常に作成された場合、結果は true となります。

実装

必要な情報を渡すことで APICatalogItem を作成し、userAPICreateCatalogItem API を呼び出してカタログ項目を作成します。

関連項目

カタログの詳細の取得

カタログ項目の削除

カタログの詳細の取得

目標

カタログ名を使用してカタログの詳細を取得します。

コンテキスト

カタログの詳細は、システム管理者またはエンド ユーザによって取得されます。

前提条件
  • 要求されたカタログ項目が存在する必要があります。

  • カタログ名が分かっている必要があります。

REST の URL
/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 となります。

実装
カタログの詳細を取得するには、カタログ名を渡して userAPIGetCatalogDetails API を呼び出します。
関連項目

カタログ項目の作成

カタログ項目の削除

カタログ項目の削除

目標

カタログ名を渡して、カタログ項目を削除します。

コンテキスト

カタログ項目はシステム管理者が削除できます。

前提条件

削除するカタログ項目が存在する必要があります。

REST の URL
/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)] セクションのアカウント カテゴリおよびアカウント タイプ パラメータの使用可能な値を参照してください。

コンテキスト

物理インフラストラクチャ リソースを管理します。

前提条件
  • サイトおよびポッドが存在し到達可能である必要があります。

  • 物理アカウントのリソースに到達可能である必要があります。

REST の URL
/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 には、次のパラメータが含まれます。

    • 文字列 accountName:アカウントに割り当てる一意の名前。

    • 文字列 podName:アカウントが属するポッド。

    • int accountCategory:アカウントのカテゴリ。アカウント カテゴリの使用可能な値は次のとおりです。

      整数

      アカウント カテゴリ

      1

      コンピューティング

      2

      ストレージ

      3

      ネットワーク

      4

      マルチドメイン マネージャまたはその他

      5

      クラウド

    • 文字列 accountType:アカウントのタイプ。"11" のように引用符で囲まれた値を渡す必要があります。

      アカウント タイプの使用可能な値は次のとおりです。

      整数

      アカウントの種類

      2

      VMware

      6

      HYPERV

      9

      REDHAT_KVM

      10

      XENDESKTOP

      11

      UCSM

      12

      NETAPP

      18

      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

      36

      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

    • 文字列 deviceCategory:コンピューティング、ストレージ、ネットワークなどのデバイスのカテゴリ。

    • 文字列 description:オプション。このアカウントの説明。

    • 文字列 contact:オプション。管理者またはアカウント責任者の連絡先に使用できる電子メール アドレスです。

    • 文字列 destinationIPAddress:このアカウントの宛先 IP アドレス。引用符で囲まれた IP アドレスを渡す必要があります。

    • 文字列 login:このアカウントがエレメント マネージャにアクセスするために使用するログイン ID。たとえば、Cisco UCS Manager のアカウントはこのログイン ID を使用して Cisco UCS Manager にアクセスします。このユーザ名は Cisco UCS Manager の有効なアカウントである必要があります。

    • 文字列 password:ログイン ID に関連付けられるパスワード。

    • 文字列 enablepassword:オプション。このアカウントにパスワードをイネーブルにするには値を true として渡します。

    • 文字列 protocol:アカウントとの通信に使用するプロトコル。有効な値は Telnet および SSH です。

    • int port:エレメント マネージャにアクセスするために使用するポート。

    • infraAccountSupportDetailsInfo:インフラ アカウントの詳細。infraAccountSupportDetailsInfo には、次のパラメータが含まれます。

      • 文字列 spAIpAddress:オプション。VNX デバイスのストレージ プロセッサ A の IP アドレス。

      • 文字列 spBIpAddress:オプション。VNX デバイスのストレージ プロセッサ B の IP アドレス。

      • 文字列 blockAccessUserName:オプション。VNX デバイスのブロック アクセスのユーザ名。

      • 文字列 blockAccessPwd:オプション。VNX デバイスのブロック アクセスのパスワード。

      • 文字列 sshIpAddress:オプション。SSH サーバの IP アドレス。引用符で囲まれた IP アドレスを渡す必要があります。

      • 文字列 sshUsername:オプション。このアカウントが SSH サーバにアクセスするために使用するユーザ名。

      • 文字列 sshPassword:オプション。SSH ユーザ名に関連付けられたパスワード。

      • int sshPort:オプション。SSH サーバへのアクセスに使用されるポート。

      • 文字列 domain:オプション。アカウントに関連付けられたドメイン。

      • 文字列 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.210.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 内のすべてのアカウントを表示する権限が必要です。

REST の URL
/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 から物理アカウントを削除します。

コンテキスト

物理アカウントは、アカウントがマッピングされているグループに属しているユーザが削除できます。

前提条件

物理アカウントが使用可能である必要があります。

REST の URL
/app/api/rest?formatType=json&opName=accounts:userAPIDeleteInfraAccount&opData={param0:"UCSM-150"}
コンポーネント

文字列 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 を呼び出します。

関連項目

物理アカウントの作成

アカウントのリスト化

仮想データセンターの管理

VDC の作成

目標

VM がプロビジョニングされる仮想データセンター(VDC)を作成します。

コンテキスト

VM をプロビジョニングする VDC を作成します。

前提条件

クラウドとグループが存在する必要があります。

REST の URL
/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 のリスト化

VDC のエクスポート

VDC のインポート

VDC の削除

VDC のリスト化

目標

ユーザ グループ内の VDC のリストを取得します。

コンテキスト

VM をプロビジョニングするときに必要な VDC を選択するために、グループ内の VDC のリストを表示します。

前提条件

ログイン ユーザがグループに割り当てられている必要があります。

REST の URL
/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 を呼び出します。

関連項目

VDC の作成

VDC のエクスポート

VDC のインポート

VDC の削除

VDC のエクスポート

目標

Cisco UCS Director サーバからローカル システムに VDC をエクスポートします。

コンテキスト

別の Cisco UCS Director サーバに同じ VDC のセットを作成します。

前提条件

エクスポートする VDC の名前。

REST の URL
/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 名を渡します。

関連項目

VDC のリスト化

VDC の作成

VDC のインポート

VDC の削除

VDC のインポート

目標

ローカル システムから Cisco UCS Director に VDC をインポートします。

コンテキスト

Cisco UCS Director に外部 VDC をインポートします。

前提条件

インポートする必要がある VDC がローカル システムで使用できる必要があります。

REST の URL
/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 のエクスポート

VDC の削除

VDC の削除

目標

Cisco UCS Director から VDC を削除します。

コンテキスト

Cisco UCS Director から使用されていない VDC を削除します。

前提条件

ログイン ユーザに VDC を削除する権限が必要です。

REST の URL
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 を削除します。

関連項目

VDC の作成

VDC のリスト化

VDC のエクスポート

VDC のインポート

サービス コンテナの管理

テンプレートを使用したサービス コンテナの作成

目標

テンプレートを使用してサービス コンテナを作成します。

コンテキスト

VDC または VM をプロビジョニングするテンプレートを使用してコンテナを作成します。

前提条件
  • ログイン ユーザにサービス コンテナを作成する権限が必要です。

  • コンテナ テンプレートが Cisco UCS Director で使用できる必要があります。

REST の URL
/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 が分かっている必要があります。

REST の URL
/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 をプロビジョニングするコンテナの可用性を識別します。

前提条件

ログイン ユーザにサービス コンテナの詳細を取得する権限が必要です。

REST の URL
/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 からサービス コンテナを削除します。

コンテキスト

コンテナ内のプロビジョニングされた VM によって使用されるリソースを再利用します。VM を使用すると、VM プロビジョニングがロールバックされます。次に、コンテナが削除され、VM に割り当てられているリソースが解放されます。

前提条件
  • ログイン ユーザにサービス コンテナを削除する権限が必要です。

  • コンテナに VM がないこと。

REST の URL
/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 を渡すことで、サービス コンテナを削除します。

関連項目

テンプレートを使用したサービス コンテナの作成

サービス コンテナの取得

カタログを使用したサービス コンテナの取得

仮想マシンの管理

VM の電源オン

目標

VM の電源をオンにします。

コンテキスト

VDC で使用できる VM を管理します。

前提条件

VM がアクセスに使用できる必要があります。

REST の URL
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5,
param1:"powerOn",param2:"Power On sample test"}
コンポーネント
  • int vmId:電源をオンにする仮想マシンの ID。
  • 文字列 actionName:powerOn として値を設定します。
  • 文字列 comments:オプション。追加情報(ある場合)。
コード
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 の電源オフ

VM の再起動

VM の再起動

目標

VM を再起動します。

コンテキスト

VDC で使用できる VM を管理します。

前提条件

VM がアクセスに使用できる必要があります。

REST の URL
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5,
param1:"reboot",param2:"Reboot VM"}
コンポーネント
  • int vmId:再起動する仮想マシンの ID。
  • 文字列 actionName:reboot として値を設定します。
  • 文字列 comments:オプション。追加情報(ある場合)。
コード
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 の電源オン

VM の電源オフ

VM の電源オフ

目標

VM の電源をオフにします。

コンテキスト

VDC で使用できる VM を管理します。

前提条件

VM がアクセスに使用できる必要があります。

REST の URL
/app/api/rest?formatType=json&opName=userAPIExecuteVMAction&opData={param0:5,
param1:"powerOff",param2:"Power off sample test"}
コンポーネント
  • int vmId:電源をオフにする仮想マシンの ID。
  • 文字列 actionName:powerOff として値を設定します。
  • 文字列 comments:オプション。追加情報(ある場合)。
コード
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 の再起動

VMware VM ゲストのセットアップと VIX スクリプトの実行

目標

ターゲット VM で特定の操作(VM の電源オン、VM の電源オフ、VM 名の変更など)を実行するための VMware VM ゲストをセットアップします。

コンテキスト

ターゲット VM で VIX スクリプトを実行します。

前提条件

VMware ツールを VM にインストールする必要があります。

REST の URL
/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 スナップショットを削除します。

コンテキスト

新しいスナップショット用により多くのディスク領域を提供します。VMware スナップショットは、管理者のみが削除できます。

前提条件

VMware スナップショットが使用可能である必要があります。

REST の URL

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 となります。

実装

実装は必要ありません。

ワークフロー オーケストレーションの管理

Service Request の利用

目標

VM をプロビジョニングする VDC を選択するなど、リソースで一連の操作を実行するためのワークフローを実行するためのサービス要求を送信します。

コンテキスト

一連のタスクを実行するためのワークフローを実行します。

前提条件

ワークフローが Cisco UCS Director で使用できる必要があります。ユーザは、ワークフローを実行する権限を持っている必要があります。

REST の URL
/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 を呼び出して、ワークフロー名を渡します。

関連項目

VApp リクエストの送信

ワークフローのロールバック

VApp リクエストの送信

目標

詳細カタログ タイプおよび引数とともにサービス要求を送信します。

コンテキスト

詳細カタログ タイプ用のワークフローを実行します。

前提条件

詳細カタログが Cisco UCS Director で使用できる必要があります。

REST の URL
/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 を呼び出して、詳細カタログ名を渡します。

関連項目

Service Request の利用

ワークフローのロールバック

ワークフローのロールバック

目標

サービス要求をロールバックして、特定の操作を取り消します。

コンテキスト

ワークフローの操作を元に戻します。

前提条件

ワークフローの正常に実行されたサービス リクエスト ID が Cisco UCS Director で使用できる必要があります。

REST の URL
/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 を渡します。

関連項目

Service Request の利用

VApp リクエストの送信