Skip to content

Commit

Permalink
fixes for no cudoctl
Browse files Browse the repository at this point in the history
  • Loading branch information
JungleCatSW committed Jan 8, 2025
1 parent ca5ca6e commit 1fb5bc6
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 42 deletions.
2 changes: 1 addition & 1 deletion examples/create-vm-with-disk.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def create_and_attach_disk():
id="my-disk-id")
request = CreateVMBody(vm_id=vm_id, machine_type="intel-broadwell",
data_center_id=data_center_id, boot_disk_image_id='ubuntu-2204-desktop',
memory_gib=16, vcpus=4, boot_disk=disk, gpus=0) # gpu_model=""
memory_gib=16, vcpus=4, boot_disk=disk, gpus=0, ssh_key_source='SSH_KEY_SOURCE_PROJECT') # gpu_model=""
# create vm
vm = vm_api.create_vm(project_id, request)

Expand Down
1 change: 1 addition & 0 deletions examples/create-vm.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
request = CreateVMBody(vm_id="my-vm-id", machine_type="epyc-rome-rtx-a4000",
data_center_id="no-luster-1", boot_disk_image_id='ubuntu-nvidia-docker',
memory_gib=16, vcpus=4, gpus=1, gpu_model="A4000", boot_disk=disk,
ssh_key_source='SSH_KEY_SOURCE_PROJECT',
metadata={"group": "a"})

vm = api.create_vm(project_id, request)
Expand Down
95 changes: 55 additions & 40 deletions helpers/cudo_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@

home = os.path.expanduser("~")

c = None

def client():

def make_client(key=None):
configuration = cudo.Configuration()
key, err = get_api_key()

if err:
return None, err
if key is None:
key, err = get_api_key()
if err:
return None, err

configuration.api_key['Authorization'] = key
# configuration.debug = True
Expand Down Expand Up @@ -72,60 +75,65 @@ def project_id_throwable():
raise e


# APIs
c, err = client()
if err:
raise Exception(err)
def find_client(key=None):
global c
if c is None:
c, err = make_client(key)
if err:
raise Exception(err)
return c


def api_keys(key=None):
return cudo.APIKeysApi(find_client(key))


def billing(key=None):
return cudo.BillingApi(find_client(key))


def api_keys():
return cudo.APIKeysApi(c)
def data_centers(key=None):
return cudo.DataCentersApi(find_client(key))

def billing():
return cudo.BillingApi(c)

def data_centers():
return cudo.DataCentersApi(c)
def disks(key=None):
return cudo.DisksApi(find_client(key))

def disks():
return cudo.DisksApi(c)

def machine_types():
return cudo.MachineTypesApi(c)

def networks():
return cudo.NetworksApi(c)

def networks(key=None):
return cudo.NetworksApi(find_client(key))

def object_storage():
return cudo.ObjectStorageApi(c)

def object_storage(key=None):
return cudo.ObjectStorageApi(find_client(key))

def permissions():
return cudo.PermissionsApi(c)

def permissions(key=None):
return cudo.PermissionsApi(find_client(key))

def projects():
return cudo.ProjectsApi(c)

def projects(key=None):
return cudo.ProjectsApi(find_client(key))

def ssh_keys():
c, err = client()
if err:
raise Exception(err)
return cudo.SSHKeysApi(c)

def ssh_keys(key=None):
return cudo.SSHKeysApi(find_client(key))

def search():
return cudo.SearchApi(c)

def search(key=None):
return cudo.SearchApi(find_client(key))

def user():
return cudo.UserApi(c)

def user(key=None):
return cudo.UserApi(find_client(key))

def legacy_virtual_machines():
return cudo.VirtualMachinesApi(c)

def legacy_virtual_machines(key=None):
return cudo.VirtualMachinesApi(find_client(key))


class PooledVirtualMachinesApi(cudo.VirtualMachinesApi):
Expand Down Expand Up @@ -188,15 +196,22 @@ def stop_workers(self):
self.workers_active = False
self.shutdown_event.set()

self.executor.shutdown(wait=False)
if self.executor:
self.executor.shutdown(wait=False)

except Exception as e:
print(f"Error shutting down: {e}")

pool = PooledVirtualMachinesApi(c)

def virtual_machines():
pool = None


def virtual_machines(key=None):
global pool
if pool is None:
pool = PooledVirtualMachinesApi(find_client(key))
return pool

def default():
return cudo.DefaultApi(c)

def default(key = None):
return cudo.DefaultApi(find_client(key))
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "cudo-compute"
version = "0.3.4"
version = "0.3.5"
authors = [
{ name = "Cudo Ventures", email = "[email protected]" },
]
Expand Down

0 comments on commit 1fb5bc6

Please sign in to comment.