403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.170.29
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/landscape/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/landscape/lib/cloud.py
from landscape.lib.fetch import fetch_async

EC2_HOST = "169.254.169.254"
EC2_API = "http://%s/latest" % (EC2_HOST,)
MAX_LENGTH = 64


def fetch_ec2_meta_data(fetch=None):
    """Fetch EC2 information about the cloud instance.

    The fetch parameter provided above is for non-mocked testing purposes.
    """
    cloud_data = []
    # We're not using a DeferredList here because we want to keep the
    # number of connections to the backend minimal. See lp:567515.
    deferred = _fetch_ec2_item("instance-id", cloud_data, fetch)
    deferred.addCallback(
        lambda ignore: _fetch_ec2_item("instance-type", cloud_data, fetch))
    deferred.addCallback(
        lambda ignore: _fetch_ec2_item("ami-id", cloud_data, fetch))

    def return_result(ignore):
        """Record the instance data returned by the EC2 API."""

        def _process_result(value):
            if value is not None:
                if isinstance(value, bytes):
                    value = value.decode("utf-8")
                return value[:MAX_LENGTH]

        (instance_id, instance_type, ami_id) = cloud_data
        return {
            "instance-id": _process_result(instance_id),
            "ami-id": _process_result(ami_id),
            "instance-type": _process_result(instance_type)}
    deferred.addCallback(return_result)
    return deferred


def _fetch_ec2_item(path, accumulate, fetch=None):
    """
     Get data at C{path} on the EC2 API endpoint, and add the result to the
    C{accumulate} list. The C{fetch} parameter is provided for testing only.
    """
    url = EC2_API + "/meta-data/" + path
    if fetch is None:
        fetch = fetch_async
    return fetch(url, follow=False).addCallback(accumulate.append)

Youez - 2016 - github.com/yon3zu
LinuXploit