anyscale_util.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from typing import TYPE_CHECKING, Optional
  2. from ray_release.logger import logger
  3. from ray_release.util import get_anyscale_sdk
  4. if TYPE_CHECKING:
  5. from anyscale.sdk.anyscale_client.sdk import AnyscaleSDK
  6. LAST_LOGS_LENGTH = 30
  7. def find_cloud_by_name(
  8. cloud_name: str, sdk: Optional["AnyscaleSDK"] = None
  9. ) -> Optional[str]:
  10. sdk = sdk or get_anyscale_sdk()
  11. cloud_id = None
  12. logger.info(f"Looking up cloud with name `{cloud_name}`. ")
  13. paging_token = None
  14. while not cloud_id:
  15. result = sdk.search_clouds(
  16. clouds_query=dict(paging=dict(count=50, paging_token=paging_token))
  17. )
  18. paging_token = result.metadata.next_paging_token
  19. for res in result.results:
  20. if res.name == cloud_name:
  21. cloud_id = res.id
  22. logger.info(f"Found cloud with name `{cloud_name}` as `{cloud_id}`")
  23. break
  24. if not paging_token or cloud_id or not len(result.results):
  25. break
  26. return cloud_id
  27. def get_project_name(project_id: str, sdk: Optional["AnyscaleSDK"] = None) -> str:
  28. sdk = sdk or get_anyscale_sdk()
  29. result = sdk.get_project(project_id)
  30. return result.result.name
  31. def get_cluster_name(cluster_id: str, sdk: Optional["AnyscaleSDK"] = None) -> str:
  32. sdk = sdk or get_anyscale_sdk()
  33. result = sdk.get_cluster(cluster_id)
  34. return result.result.name