def test_default_log_file_location(self): config = YamlConfig({}, Path("/tmp/test/.dstack/config.yaml")) configure(config) log.enable() if isinstance(log.get_logger(), log.FileLogger): self.assertEqual( f"/tmp/test/.dstack/logs/{datetime.now().strftime('%Y-%m-%d.log')}", log.get_logger().filename) else: self.fail("logger must be a FileLogger")
def setUp(self): config = InPlaceConfig() config.add_or_replace_profile( Profile("default", "user", "my_token", "https://api.dstack.ai", verify=True)) configure(config) self.protocol = TestProtocol() setup_protocol(TestProtocolFactory(self.protocol))
def test_default_log_file_location(self): dstack_path = Path(tempfile.gettempdir()) / ".dstack" config_path = dstack_path / "config.yaml" config = YamlConfig({}, config_path.resolve()) configure(config) log.enable() if isinstance(log.get_logger(), log.FileLogger): expected_path = dstack_path / "logs" / datetime.now().strftime( '%Y-%m-%d.log') self.assertEqual(str(expected_path.resolve()), log.get_logger().filename) else: self.fail("logger must be a FileLogger")
def __init__(self, config: Config = None, base_path: Optional[Path] = None, java_factory: Optional[_JavaFactory] = None, verify: bool = True): def my_java_factory(java_home: Path) -> Java: return Java(java_home) config_path = _get_config_path() self.base_path = base_path or config_path.parent self._conf = config or from_yaml_file(path=config_path) self._java_factory = java_factory if java_factory else my_java_factory self._verify = verify if not self._conf.get_profile("dstack"): profile = Profile(self._PROFILE, "dstack", None, API_SERVER, verify=verify) self._conf.add_or_replace_profile(profile) configure(self._conf)
def setUp(self): super().setUp() if os.getenv("JAVA_HOME"): del os.environ["JAVA_HOME"] self.temp = Path(tempfile.gettempdir()) / f"dstack-f{uuid4()}" self.temp.mkdir() self.installer_path = self.temp / ".dstack-installer" self.config = InPlaceConfig() self.config.add_or_replace_profile( Profile(Installer._PROFILE, Installer._USER, "fake_token", API_SERVER, verify=True)) configure(self.config) self.installer = Installer(config=self.config, installer_path=self.installer_path, java_factory=self._java_factory) self.java_version = "1.8.0_221"
executions_home = sys.argv[1] user = sys.argv[2] token = sys.argv[3] server = sys.argv[4] if len(sys.argv) > 5: function_type = sys.argv[5] function_data = sys.argv[6] else: function_type = None function_data = None in_place_config = InPlaceConfig() in_place_config.add_or_replace_profile( Profile("default", user, token, server, verify=True)) dstack_config.configure(in_place_config) encoder = AutoHandler() cached_executions = ExpiringDict(max_len=30, max_age_seconds=60 * 5) def find_cached_execution(previous_execution_id): return cached_executions.get(previous_execution_id) def cache_execution(execution): previous_execution_id = execution.get("previous_execution_id") if previous_execution_id is not None: cached_executions.pop(previous_execution_id) cached_executions[execution["id"]] = execution