Created
March 14, 2024 06:55
-
-
Save shinji62/a84e4d2cf10a148d6cce3a8eece928ee to your computer and use it in GitHub Desktop.
universepython
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__))) | |
import yb_platform_client | |
from yb_platform_client.api import cloud_providers_api | |
from yb_platform_client.api import session_management_api | |
from yb_platform_client.api import universe_cluster_mutations_api | |
from yb_platform_client.api import user_management_api | |
from yb_platform_client.models.universe_configure_task_params \ | |
import UniverseConfigureTaskParams | |
from yb_platform_client.models.cluster import Cluster | |
from yb_platform_client.models.device_info import DeviceInfo | |
from yb_platform_client.models.provider import Provider | |
from yb_platform_client.models.user_intent import UserIntent | |
from yb_platform_client.models.users import Users | |
from pprint import pprint | |
platform_address = 'YBA_URL' | |
platform_api_key = "API-TOKEN" | |
api_client = yb_platform_client.ApiClient(yb_platform_client.Configuration( | |
host = platform_address, | |
api_key = { | |
'apiKeyAuth': platform_api_key, | |
} | |
)) | |
session_api = session_management_api.SessionManagementApi(api_client) | |
try: | |
session_info = session_api.get_session_info() | |
except yb_platform_client.ApiException as e: | |
print("Error get_session_info: %s" % e) | |
raise | |
customer_uuid = session_info.customer_uuid | |
user_uuid = session_info.user_uuid | |
print('Customer UUID:\n%s' % customer_uuid) | |
print('User UUID:\n%s' % user_uuid) | |
provider_api = cloud_providers_api.CloudProvidersApi(api_client) | |
try: | |
provider_list = provider_api.get_list_of_providers(customer_uuid) | |
except yb_platform_client.ApiException as e: | |
print('Error get_list_of_providers: %s' % e) | |
raise | |
for provider in provider_list: | |
if provider.code == 'kubernetes' and provider.name == 'eks-japan': | |
provider_uuid = provider.uuid | |
region_list = [region.uuid for region in provider.regions] | |
break | |
print('Provider UUID:\n%s' % provider_uuid) | |
print('Regions:\n[%s]' % ', '.join(region_list)) | |
new_universe = UniverseConfigureTaskParams( | |
creating_user=Users( | |
uuid= user_uuid, | |
customer_uuid = customer_uuid, | |
email= "YOUREMAIL", | |
role= "SuperAdmin", | |
user_type= "local", | |
ldap_specified_role= False, | |
is_primary= True | |
), | |
sleep_after_master_restart_millis= 180000, | |
sleep_after_t_server_restart_millis=180000, | |
platform_url= platform_address, | |
clusters=[ | |
Cluster( | |
cluster_type='PRIMARY', | |
user_intent=UserIntent( | |
universe_name='python-universe', | |
provider_type='kubernetes', | |
provider=provider_uuid, | |
region_list=region_list, | |
num_nodes=1, | |
replication_factor=1, | |
instance_type='xsmall', | |
device_info=DeviceInfo( | |
num_volumes=1, | |
volume_size=100, | |
storage_class="standard", | |
), | |
assign_public_ip=True, | |
use_time_sync=True, | |
enable_ysql=True, | |
enable_yedis=False, | |
enable_node_to_node_encrypt=True, | |
enable_client_to_node_encrypt=True, | |
enable_volume_encryption=False, | |
tserver_g_flags={}, | |
master_g_flags={}, | |
yb_software_version = "2.20.2.0-b145" | |
) | |
), | |
], | |
) | |
universe_api = universe_cluster_mutations_api.UniverseClusterMutationsApi(api_client) | |
try: | |
api_response = universe_api.create_all_clusters(customer_uuid, new_universe) | |
except yb_platform_client.ApiException as e: | |
print('Error create_all_clusters: %s' % e) | |
raise | |
pprint(api_response) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You can generate swagger with