def add_watcher(self, name, cmd): env = {"port": self.port, "PORT": self.port} env.update(common.load_envs(self.apprc)) cmd = replace_args(cmd, **env) options = { "env": env, "copy_env": True, "working_dir": self.working_dir, "stderr_stream": self.stderr_stream, "stdout_stream": self.stdout_stream, "uid": self.uid, "hooks": { "before_start": "tsuru.hooks.before_start", "after_start": "tsuru.hooks.after_start", } } self.circus_client.call(json.dumps({ "command": "add", "properties": { "cmd": cmd, "name": name, "args": [], "options": options, "start": True, }, }))
def add_watcher(self, name, cmd): env = {"port": self.port, "PORT": self.port} env.update(common.load_envs(self.apprc)) cmd = replace_args(cmd, **env) stderr_stream = self.stderr_stream.copy() stdout_stream = self.stdout_stream.copy() stdout_stream["watcher_name"] = stderr_stream["watcher_name"] = name options = { "env": env, "copy_env": True, "working_dir": self.working_dir, "stderr_stream": stderr_stream, "stdout_stream": stdout_stream, "uid": self.uid, } self.circus_client.call({ "command": "add", "properties": { "cmd": cmd, "name": name, "args": [], "options": options, "start": True, "priority": 2, }, })
def add_watcher(self, name, cmd): env = {"port": self.port, "PORT": self.port} env.update(common.load_envs(self.apprc)) cmd = replace_args(cmd, **env) options = { "env": env, "copy_env": True, "working_dir": self.working_dir, "stderr_stream": self.stderr_stream, "stdout_stream": self.stdout_stream, "uid": self.uid, "hooks": { "before_start": "tsuru.hooks.before_start", "after_start": "tsuru.hooks.after_start", } } self.circus_client.call( json.dumps({ "command": "add", "properties": { "cmd": cmd, "name": name, "args": [], "options": options, "start": True, }, }))
def load_envs(self): envs = common.load_envs(self.apprc) return (envs.get("TSURU_APPNAME"), envs.get("TSURU_HOST"), envs.get("TSURU_APP_TOKEN"), envs.get("TSURU_SYSLOG_SERVER"), envs.get("TSURU_SYSLOG_PORT"), envs.get("TSURU_SYSLOG_FACILITY"), envs.get("TSURU_SYSLOG_SOCKET"))
def test_load_envs(self): path = os.path.join(os.path.dirname(__file__), "testdata", "apprc") want = { "VAR1": "value-1", "VAR2": "value2", "TSURU_APPNAME": "appname1", "TSURU_HOST": "host1", } got = common.load_envs(path) self.assertEqual(want, got)
def test_load_envs(self): path = os.path.join(os.path.dirname(__file__), "testdata", "apprc") want = { "VAR1": "value-1", "VAR2": "value2", "TSURU_APPNAME": "appname1", "TSURU_HOST": "host1", "TSURU_SYSLOG_SERVER": "host2", "TSURU_SYSLOG_PORT": "514", "TSURU_SYSLOG_FACILITY": "LOCAL0", "BASE64_STRING": "t5urur0ck5==", "NON_ASCII": "鶴 est génial!" } got = common.load_envs(path) self.assertEqual(want, got)
def add_watcher(self, name, cmd): env = {"port": self.port, "PORT": self.port} env.update(common.load_envs(self.apprc)) cmd = replace_args(cmd, **env) stderr_stream = self.stderr_stream.copy() stdout_stream = self.stdout_stream.copy() stdout_stream["watcher_name"] = stderr_stream["watcher_name"] = name options = { "env": env, "copy_env": True, "working_dir": self.working_dir, "stderr_stream": stderr_stream, "stdout_stream": stdout_stream, "uid": self.uid, } self.circus_client.call( { "command": "add", "properties": {"cmd": cmd, "name": name, "args": [], "options": options, "start": True, "priority": 2}, } )
def load_envs(self): envs = common.load_envs(self.apprc) return (envs.get("TSURU_APPNAME"), envs.get("TSURU_HOST"), envs.get("TSURU_APP_TOKEN"))
def test_load_envs_unknown_file(self): path = "/something/that/user/does/not/know" self.assertEqual({}, common.load_envs(path))
def load_envs(self): env = {"port": self.port, "PORT": self.port} env.update(common.load_envs(self.apprc)) return env
def change_cmd(self, name, cmd): env = {"port": self.port} env.update(common.load_envs(self.apprc)) cmd = replace_args(cmd, **env) self.call("set", name=name, options={"cmd": cmd})
def reload_env(self): envs = {"port": self.port} envs.update(common.load_envs(self.apprc)) for name in self.cmds(): if not name.startswith("plugin:"): self.add_envs(name, envs)
def reload_env(self): envs = {"port": self.port, "PORT": self.port} envs.update(common.load_envs(self.apprc)) for name in self.cmds(): if not name.startswith("plugin:"): self.add_envs(name, envs)