/testing-legacy/testutils/cleanup.py

https://github.com/gigantum/gigantum-client
Python | 69 lines | 57 code | 12 blank | 0 comment | 20 complexity | c7c75d4c2dc5b938ba50193c092d0454 MD5 | raw file
  1. import os
  2. import logging
  3. import shutil
  4. import glob
  5. import docker
  6. import testutils
  7. def stop_project_containers():
  8. containers = docker.from_env().containers.list()
  9. for c in containers:
  10. for t in c.image.tags:
  11. if 'gmlb-' in t:
  12. logging.info(f"Stopping container for image {t}")
  13. c.stop()
  14. docker.from_env().containers.prune()
  15. def delete_project_images():
  16. images = docker.from_env().images.list()
  17. for img in images:
  18. for tag in img.tags:
  19. if 'gmlb-' in tag and 'selenium-project-' in tag:
  20. logging.info(f"Deleting container for image {tag}")
  21. docker.from_env().images.remove(img.id, force=True, noprune=False)
  22. break
  23. def delete_projects_on_disk():
  24. root_dir = os.path.expanduser(os.environ['GIGANTUM_HOME'])
  25. root_dir = os.path.join(root_dir, 'servers', testutils.current_server_id())
  26. if os.name == 'nt':
  27. user_projects = glob.glob(f'{root_dir}\*\*\labbooks\selenium-project-*')
  28. else:
  29. user_projects = glob.glob(f'{root_dir}/*/*/labbooks/selenium-project-*')
  30. for user_project_path in user_projects:
  31. logging.info(f"Deleting directory: {user_project_path}")
  32. if os.name == 'nt':
  33. os.system('rmdir /S /Q "{}"'.format(user_project_path))
  34. else:
  35. shutil.rmtree(user_project_path, ignore_errors=True)
  36. def delete_local_datasets():
  37. root_dir = os.path.expanduser(os.environ['GIGANTUM_HOME'])
  38. server_dir = os.path.join(root_dir, 'servers', testutils.current_server_id())
  39. dataset_file_cache_dir = os.path.join(root_dir, '.labmanager', 'datasets', testutils.current_server_id())
  40. if os.name == 'nt':
  41. user_datasets = glob.glob(f'{server_dir}\*\*\datasets\selenium-dataset-*')
  42. cache_datasets = glob.glob(f'{dataset_file_cache_dir}\*\*\selenium-dataset-*')
  43. else:
  44. user_datasets = glob.glob(f'{root_dir}/*/*/datasets/selenium-dataset-*')
  45. cache_datasets = glob.glob(f'{dataset_file_cache_dir}/*/*/selenium-dataset-*')
  46. for user_dataset_path in user_datasets:
  47. logging.info(f"Deleting directory: {user_dataset_path}")
  48. if os.name == 'nt':
  49. os.system('rmdir /S /Q "{}"'.format(user_dataset_path))
  50. else:
  51. shutil.rmtree(user_dataset_path, ignore_errors=False)
  52. for cache_ds in cache_datasets:
  53. logging.info(f"Delete directory: {cache_ds}")
  54. if os.name == 'nt':
  55. os.system('rmdir /S /Q "{}"'.format(cache_ds))
  56. else:
  57. shutil.rmtree(cache_ds, ignore_errors=False)