Best Python code snippet using localstack_python
thundra.py
Source:thundra.py  
...43    return thundra_apikey44#############45# JAVA AGENT46#############47def _ensure_java_agent_initialized():48    global THUNDRA_JAVA_AGENT_INITIALIZED49    if not THUNDRA_JAVA_AGENT_INITIALIZED:50        _init_java_agent_configs()51        _install_java_agent()52        THUNDRA_JAVA_AGENT_INITIALIZED = True53def _init_java_agent_configs():54    global THUNDRA_JAVA_AGENT_REMOTE_URL55    global THUNDRA_JAVA_AGENT_LOCAL_PATH56    metadata_url = (57        "https://repo.thundra.io/service/local/repositories/thundra-releases/content/"58        + "io/thundra/agent/thundra-agent-lambda-bootstrap/maven-metadata.xml"59    )60    latest_version = get_latest_java_agent_version(metadata_url)61    version = os.getenv("THUNDRA_AGENT_JAVA_VERSION", latest_version)62    jar_name = "thundra-agent-%s.jar" % version63    THUNDRA_JAVA_AGENT_REMOTE_URL = (64        "https://repo.thundra.io/service/local/artifact/maven/redirect?"65        + "r=thundra-releases&g=io.thundra.agent&a=thundra-agent-lambda-bootstrap&v={v}"66    ).format(v=version)67    THUNDRA_JAVA_AGENT_LOCAL_PATH = "%s/%s" % (config.TMP_FOLDER, jar_name)68def _install_java_agent():69    # install Thundra Java agent JAR file70    if not os.path.exists(THUNDRA_JAVA_AGENT_LOCAL_PATH):71        install.log_install_msg("Thundra Java agent", verbatim=True)72        install.download(THUNDRA_JAVA_AGENT_REMOTE_URL, THUNDRA_JAVA_AGENT_LOCAL_PATH)73def _is_java8_lambda(func_details):74    runtime = getattr(func_details, "runtime", func_details)75    return runtime == LAMBDA_RUNTIME_JAVA8 or runtime == LAMBDA_RUNTIME_JAVA8_AL276class LambdaExecutorPluginThundra(LambdaExecutorPlugin):77    def initialize(self):78        # If Thundra API key is initialized, init at startup79        if THUNDRA_APIKEY:80            _ensure_java_agent_initialized()81    def should_apply(self, context: InvocationContext) -> bool:82        # plugin currently only applied for Java Lambdas, if LAMBDA_REMOTE_DOCKER=0, and if API key is configured83        if not is_java_lambda(context.lambda_function.runtime):84            return False85        if "docker" in config.LAMBDA_EXECUTOR and config.LAMBDA_REMOTE_DOCKER:86            return False87        thundra_apikey = _get_apikey(context.environment)88        if not thundra_apikey:89            return False90        return True91    def prepare_invocation(92        self, context: InvocationContext93    ) -> Optional[AdditionalInvocationOptions]:94        # download and initialize Java agent95        _ensure_java_agent_initialized()96        result = AdditionalInvocationOptions()97        environment = context.environment98        agent_flag = "-javaagent:{agent_path}"99        # Inject Thundra agent path into "JAVA_TOOL_OPTIONS" env var,100        # so it will be automatically loaded on JVM startup101        java_tool_opts = environment.get("JAVA_TOOL_OPTIONS", "")102        if agent_flag not in java_tool_opts:103            java_tool_opts += f" {agent_flag}"104        result.env_updates["JAVA_TOOL_OPTIONS"] = java_tool_opts.strip()105        # Disable CDS (Class Data Sharing),106        # because "-javaagent" cannot be enabled when CDS is enabled on JDK 8.107        # CDS can only be disabled by "_JAVA_OPTIONS" env var,108        # because by default it is enabled ("-Xshare:on")109        # on Lambci by command line parameters and...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
