11911So.canty@f5.comimport shutil 21911So.canty@f5.com 31019Szelenkov@nginx.comfrom unit.applications.proto import TestApplicationProto 41730Szelenkov@nginx.comfrom unit.option import option 51911So.canty@f5.comfrom unit.utils import public_dir 61019Szelenkov@nginx.com 71019Szelenkov@nginx.com 81019Szelenkov@nginx.comclass TestApplicationRuby(TestApplicationProto): 91116Szelenkov@nginx.com application_type = "ruby" 101116Szelenkov@nginx.com 111911So.canty@f5.com def prepare_env(self, script): 121911So.canty@f5.com shutil.copytree( 13*2330Szelenkov@nginx.com f'{option.test_dir}/ruby/{script}', 14*2330Szelenkov@nginx.com f'{option.temp_dir}/ruby/{script}', 151911So.canty@f5.com ) 161911So.canty@f5.com 17*2330Szelenkov@nginx.com public_dir(f'{option.temp_dir}/ruby/{script}') 181911So.canty@f5.com 191303St.nateldemoura@f5.com def load(self, script, name='config.ru', **kwargs): 201911So.canty@f5.com self.prepare_env(script) 211911So.canty@f5.com 22*2330Szelenkov@nginx.com script_path = f'{option.temp_dir}/ruby/{script}' 231019Szelenkov@nginx.com 241912So.canty@f5.com app = { 251912So.canty@f5.com "type": self.get_application_type(), 261912So.canty@f5.com "processes": {"spare": 0}, 271912So.canty@f5.com "working_directory": script_path, 28*2330Szelenkov@nginx.com "script": f'{script_path}/{name}', 291912So.canty@f5.com } 301912So.canty@f5.com 311912So.canty@f5.com for key in [ 321912So.canty@f5.com 'hooks', 331912So.canty@f5.com ]: 341912So.canty@f5.com if key in kwargs: 351912So.canty@f5.com app[key] = kwargs[key] 361912So.canty@f5.com 371050Szelenkov@nginx.com self._load_conf( 381019Szelenkov@nginx.com { 39*2330Szelenkov@nginx.com "listeners": {"*:7080": {"pass": f"applications/{script}"}}, 401912So.canty@f5.com "applications": {script: app}, 411303St.nateldemoura@f5.com }, 42*2330Szelenkov@nginx.com **kwargs, 431019Szelenkov@nginx.com ) 44