11490St.nateldemoura@f5.comimport os 21490St.nateldemoura@f5.comimport subprocess 31635Szelenkov@nginx.com 41596Szelenkov@nginx.comimport pytest 5*2616Szelenkov@nginx.com 62491Szelenkov@nginx.comfrom unit.applications.lang.java import ApplicationJava 71730Szelenkov@nginx.comfrom unit.option import option 81490St.nateldemoura@f5.com 92488Szelenkov@nginx.comprerequisites = {'modules': {'java': 'all'}, 'privileged_user': True} 102488Szelenkov@nginx.com 112491Szelenkov@nginx.comclient = ApplicationJava() 121490St.nateldemoura@f5.com 131490St.nateldemoura@f5.com 142491Szelenkov@nginx.com@pytest.fixture(autouse=True) 152491Szelenkov@nginx.comdef setup_method_fixture(temp_dir): 162491Szelenkov@nginx.com os.makedirs(f'{temp_dir}/jars') 172491Szelenkov@nginx.com os.makedirs(f'{temp_dir}/tmp') 182491Szelenkov@nginx.com os.chmod(f'{temp_dir}/tmp', 0o777) 191706Smax.romanov@nginx.com 202491Szelenkov@nginx.com try: 212491Szelenkov@nginx.com subprocess.run( 222491Szelenkov@nginx.com [ 232491Szelenkov@nginx.com "mount", 242491Szelenkov@nginx.com "--bind", 252491Szelenkov@nginx.com f'{option.current_dir}/build', 262491Szelenkov@nginx.com f'{temp_dir}/jars', 272491Szelenkov@nginx.com ], 282491Szelenkov@nginx.com stderr=subprocess.STDOUT, 29*2616Szelenkov@nginx.com check=True, 301490St.nateldemoura@f5.com ) 311490St.nateldemoura@f5.com 322491Szelenkov@nginx.com except KeyboardInterrupt: 332491Szelenkov@nginx.com raise 342491Szelenkov@nginx.com 352491Szelenkov@nginx.com except subprocess.CalledProcessError: 362491Szelenkov@nginx.com pytest.fail("Can't run mount process.") 372491Szelenkov@nginx.com 382491Szelenkov@nginx.com yield 392491Szelenkov@nginx.com 402491Szelenkov@nginx.com try: 412491Szelenkov@nginx.com subprocess.run( 422491Szelenkov@nginx.com ["umount", "--lazy", f"{option.temp_dir}/jars"], 432491Szelenkov@nginx.com stderr=subprocess.STDOUT, 44*2616Szelenkov@nginx.com check=True, 451490St.nateldemoura@f5.com ) 461490St.nateldemoura@f5.com 472491Szelenkov@nginx.com except KeyboardInterrupt: 482491Szelenkov@nginx.com raise 492491Szelenkov@nginx.com 502491Szelenkov@nginx.com except subprocess.CalledProcessError: 512491Szelenkov@nginx.com pytest.fail("Can't run umount process.") 522491Szelenkov@nginx.com 532491Szelenkov@nginx.com 542491Szelenkov@nginx.comdef test_java_isolation_rootfs_chroot_war(temp_dir): 552491Szelenkov@nginx.com client.load('empty_war', isolation={'rootfs': temp_dir}) 562491Szelenkov@nginx.com 572491Szelenkov@nginx.com assert 'success' in client.conf( 582491Szelenkov@nginx.com '"/"', 592491Szelenkov@nginx.com '/config/applications/empty_war/working_directory', 602491Szelenkov@nginx.com ) 612491Szelenkov@nginx.com 622491Szelenkov@nginx.com assert 'success' in client.conf( 632491Szelenkov@nginx.com '"/jars"', 'applications/empty_war/unit_jars' 642491Szelenkov@nginx.com ) 652491Szelenkov@nginx.com assert 'success' in client.conf( 662491Szelenkov@nginx.com '"/java/empty.war"', 'applications/empty_war/webapp' 672491Szelenkov@nginx.com ) 682491Szelenkov@nginx.com 692491Szelenkov@nginx.com assert client.get()['status'] == 200, 'war' 70