Skip to content

Instantly share code, notes, and snippets.

@shinji62
Created March 14, 2024 06:55
Show Gist options
  • Save shinji62/a84e4d2cf10a148d6cce3a8eece928ee to your computer and use it in GitHub Desktop.
Save shinji62/a84e4d2cf10a148d6cce3a8eece928ee to your computer and use it in GitHub Desktop.
universepython
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)
@shinji62
Copy link
Author

shinji62 commented Mar 14, 2024

You can generate swagger with

openapi-generator generate -c  yugabyte-db-repos/managed/client/python/openapi-python-config.json \
-i https://stoplight.io/api/v1/projects/yugabyte/yugabyte-platform/nodes/api-specs/platform/platform.swagger.json \
-g python \
--skip-validate-spec -o ./

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment