404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.138.35.48: ~ $
3

\�mep��	@s�UdZddlZddlZddlZddlmZddlmZmZddl	m
Z
ddlmZddl
mZmZddlmZdd	lmZejd
�Zejd�Zejd�Zejd
�Zejd�Zejd�Zejd�ZddiZeje�ZdZ ddde egeed�gddgd�Z!e!ee!�Ze"ee
e#dd�dd�Z$dd�Z%d d!�Z&dTd"d#�Z'dUd%d&�Z(d'd(�Z)dVd)d*�Z*d+d,�Z+d-d.�Z,dWd0d1�Z-d2d3�Z.d4d5�Z/d6d7�Z0d8d9�Z1d:d;�Z2d<d=�Z3d>d?�Z4d@dA�Z5dBdC�Z6dDdE�Z7dFdG�Z8dHdI�Z9dJdK�Z:dLdM�Z;dNdO�Z<dPdQ�Z=dRdS�Z>dS)Xz1Disk Setup: Configure partitions and filesystems.�N)�dedent)�subp�util)�Cloud)�Config)�
MetaSchema�get_meta_doc)�ALL_DISTROS)�PER_INSTANCEZsfdiskZsgdiskZlsblkZblkidZblockdevZ	partprobeZwipefsZLANG�CaiThis module is able to configure simple partition tables and filesystems.

.. note::
    for more detail about configuration options for disk setup, see the disk
    setup example

.. note::
    if a swap partition is being created via ``disk_setup`` then a ``fs_entry``
    entry is also needed in order for mkswap to be run, otherwise when swap
    activation is later attempted it will fail.

For convenience, aliases can be specified for disks using the
``device_aliases`` config key, which takes a dictionary of alias: path
mappings. There are automatic aliases for ``swap`` and ``ephemeral<X>``, where
``swap`` will always refer to the active swap partition and ``ephemeral<X>``
will refer to the block device of the ephemeral image.

Disk partitioning is done using the ``disk_setup`` directive. This config
directive accepts a dictionary where each key is either a path to a block
device or an alias specified in ``device_aliases``, and each value is the
configuration options for the device. File system configuration is done using
the ``fs_setup`` directive. This config directive accepts a list of
filesystem configs.
Z
cc_disk_setupz
Disk Setupz$Configure partitions and filesystemsan            device_aliases:
              my_alias: /dev/sdb
              swap_disk: /dev/sdc
            disk_setup:
              my_alias:
                table_type: gpt
                layout: [50, 50]
                overwrite: true
              swap_disk:
                table_type: gpt
                layout: [[100, 82]]
                overwrite: true
              /dev/sdd:
                table_type: mbr
                layout: true
                overwrite: true
            fs_setup:
            - label: fs1
              filesystem: ext4
              device: my_alias.1
              cmd: mkfs -t %(filesystem)s -L %(label)s %(device)s
            - label: fs2
              device: my_alias.2
              filesystem: ext4
            - label: swap
              device: swap_disk.1
              filesystem: swap
            - label: fs3
              device: /dev/sdd1
              filesystem: ext4
            mounts:
            - ["my_alias.1", "/mnt1"]
            - ["my_alias.2", "/mnt2"]
            - ["swap_disk.1", "none", "swap", "sw", "0", "0"]
            - ["/dev/sdd1", "/mnt3"]
            �
disk_setup�fs_setup)�id�name�title�descriptionZdistrosZ	frequencyZexamplesZactivate_by_schema_keys)r�cfg�cloud�args�returncs�|jdi����fdd�}|jd�}t|t�r�t||�tjdt|��x�|j�D]~\}}t|t�srtjd|�qRy*tjd�t	j
tjd|t||fd	�WqRtk
r�}zt	j
td
|�WYdd}~XqRXqRW|jd�}	t|	t��r�tjd
t|	��t|	|�x�|	D]�}t|t��s*tjd|��q
y2tjd�|jd�}
t	j
tjd|
t|fd	�Wn4tk
�r�}zt	j
td|�WYdd}~XnX�q
WdS)z[
    See doc/examples/cloud-config-disk-setup.txt for documentation on the
    format.
    �device_aliasescs�j|�}�j|p|�p|S)N)�getZdevice_name_to_device)Zcandr)rr��#/usr/lib/python3.6/cc_disk_setup.py�alias_to_deviceys
zhandle.<locals>.alias_to_devicerzPartitioning disks: %szInvalid disk definition for %sz!Creating new partition table/diskzCreating partition on %s)Zlogfunc�msg�funcrz Failed partitioning operation
%sNr
zsetting up filesystems: %sz"Invalid file system definition: %szCreating new filesystem.�devicezCreating fs for %sz%Failed during filesystem operation
%s)r�
isinstance�dict�update_disk_setup_devices�LOG�debug�str�items�warningrZlog_time�mkpart�	Exception�logexc�list�update_fs_setup_devices�mkfs)rrrrrr�disk�
definition�er
rr)rrr�handlersJ




&




r/cCs�x�t|�D]t}||�}|dks
||kr(q
||krDtjd||�||=||||<t||t�rj|||d<||=tjd||�q
WdS)Nz0Replacing %s in disk_setup for translation of %s�	_orignamez,updated disk_setup device entry '%s' to '%s')r)r!�inforrr")r�tformer�orignameZtransformedrrrr �s$r cCs�x�|D]�}t|t�s"tjd|�q|jd�}|dkr6qtj|�\}}||�}|dk	rx|}tjd|||�||d<||d<|rd|kr�tjd|||�|d|d<||d<qWdS)Nz"entry in disk_setup not a dict: %srz%s is mapped to disk=%s part=%sr0�	partitionzKPartition '%s' from dotted device name '%s' overrides 'partition' key in %sZ
_partition)rrr!r%rrZexpand_dotted_devnamer")rr2r-r3Zdev�partZtformedrrrr*�s0


r*ccsDtj|�}|r||d�}x$dd�|D�D]\}}||fVq*WdS)zd
    Returns the key/value pairs of output sent as string
    like:  FOO='BAR' HOME='127.0.0.1'
    NcSsg|]}|jd��qS)�=)�split)�.0�xrrr�
<listcomp>�sz"value_splitter.<locals>.<listcomp>)�shlexr7)�values�startZ_values�key�valuerrr�value_splitter�s

r@Fccs�tddd|g}|r|jd�d}ytj|�\}}Wn4tk
rf}ztd||f�|�WYdd}~XnXdd�|j�j�D�}xB|D]:}ddddd	�}x t|�D]\}	}
|
||	j�<q�W|Vq�WdS)
a�
    Enumerate the elements of a child device.

    Parameters:
        device: the kernel device name
        nodeps <BOOL>: don't enumerate children devices

    Return a dict describing the disk:
        type: the entry type, i.e disk or part
        fstype: the filesystem type, if it exists
        label: file system label, if it exists
        name: the device name, i.e. sda
    z--pairsz--outputzNAME,TYPE,FSTYPE,LABELz--nodepsNz"Failed during disk check for %s
%scSs g|]}t|j��dkr|�qS)r)�lenr7)r8r9rrrr:sz"enumerate_disk.<locals>.<listcomp>)r�type�fstype�label)	�	LSBLK_CMD�appendrr'�RuntimeError�strip�
splitlinesr@�lower)r�nodepsZ	lsblk_cmdr1�_errr.�partsr5�dr>r?rrr�enumerate_disk�s.

rOcCs.x(t|dd�D]}d|kr|dj�SqWdS)z@
    Return the device type of the device by calling lsblk.
    T)rKrBN)rOrJ)rrNrrr�device_type&srPcCsXd}yt|�}Wn tk
r0tjd|�dSX|rB|dkrBdS|rT|dkrTdSdS)z0
    Check if the device is a valid device.
    �zQuery against device %s failedFr5Tr,)rPr'r!r%)rr4Zd_typerrr�is_device_valid1srRc
Cs�d
\}}}}tdd|g}ytj|ddgd�\}}Wn4tk
rf}ztd||f�|�WYdd}~XnX|r�t|j��dkr�xLt|dd	�D]<\}}	|j�d
kr�|	}q�|j�dkr�|	}q�|j�dkr�|	}q�W|||fS)z�
    Check if the device has a filesystem on it

    Output of blkid is generally something like:
    /dev/sda: LABEL="Backup500G" UUID="..." TYPE="ext4"

    Return values are device, label, type, uuid
    Nz-cz	/dev/nullr�)�rcsz"Failed during disk check for %s
%s�)r=rDrB�uuid)NNNN)�	BLKID_CMDrr'rGrArIr@rJ)
r�outrD�fs_typerVZ	blkid_cmdrLr.r>r?rrr�check_fsCs$	rZcCst|�\}}}|S)z7
    Returns true if the device has a file system.
    )rZ)r�_rYrrr�
is_filesystemcsr\TcCs�|dkrd}|sddg}d}x�t|�D]�}|d|krN|dkrNd|ddfS|d|kr�|rj|d	|ksp|r�d|dd
fS|d|kr&|ddks�|dr�d
}|ddkr�q&|ds&d|ddfSq&W|s�|dfStjd�d
S)a
    Find a device that is either matches the spec, or the first

    The return is value is (<device>, <bool>) where the device is the
    device to use and the bool is whether the device matches the
    fs_type and label.

    Note: This works with GPT partition tables!
    NrQr,r5FrCz/dev/%srrDTrBz5Failed to find device during available device search.)NF)rOr!r%)rrYrDZ
valid_targets�label_match�
replace_fsZraw_device_usedrNrrr�find_device_nodeks,
r_cCs2ttt|���dkrdSt|�\}}}|r.dSdS)z�
    Check if the device is currently used. Returns true if the device
    has either a file system or a partition entry
    is no filesystem found on the disk.
    rUTF)rAr)rOrZ)rr[�check_fstyperrr�is_disk_used�s	racCsry,tjtd|g�\}}tjtd|g�\}}Wn4tk
r`}ztd||f�|�WYdd}~XnXt|�t|�S)Nz--getsize64z--getsszFailed to get %s size
%s)r�
BLKDEV_CMDr'rG�int)rZ
size_in_bytesr[Zsector_sizer.rrr�get_hdd_size�s$rdcCst|�td|g}ytj|d|d�\}}Wn4tk
r`}ztd||f�|�WYdd}~XnXg}x�|j�D]�}|j�}t|�dkr�qp||dkrp|d
j�dkr�qpd}	x@t	t
dt|��d
d�D]&}
||
j�r�||
dkr�||
}	Pq�W|j|	�qpW|S)z�
    Returns true if the partition layout matches the one on the disk

    Layout should be a list of values. At this time, this only
    verifies that the number of partitions and their labels is correct.
    z-lz%s
)�dataz(Error running partition command on %s
%sNrrU�extended�emptyT)�reverse�/���)rfrg)
�read_parttbl�
SFDISK_CMDrr'rGrIr7rArJ�sorted�range�isdigitrF)r�layout�prt_cmdrXrLr.�found_layout�line�_lineZ
type_labelr9rrr�check_partition_mbr_layout�s.
rucCs�td|g}ytj|td�\}}Wn4tk
rT}ztd||f�|�WYdd}~XnXt|j��}x|D]}|j�jd�rhPqhWdd�|D�}g}	x8|D]0}
t	|
�dkr�|
j
d�r�|
d	d
�}
|	j|
�q�W|	S)Nz-p)Z
update_envz(Error running partition command on %s
%s�NumbercSsg|]}|j�j�d�qS)�)rHr7)r8rsrrrr:sz.check_partition_gpt_layout.<locals>.<listcomp>�Z00rrS)�
SGDISK_CMDr�
LANG_C_ENVr'rG�iterrIrH�
startswithrA�endswithrF)rrprqrXrLr.Z	out_linesrsZcodesZcleaned�coderrr�check_partition_gpt_layout�s$


rcCs�d|krt||�}nd|kr(t||�}ntd��tjd||||�t|t�rd|r`t|�dkr`dSdSt|�t|�kr�dd	�|D�}tjd
||�x2t||�D]$\}}|dk	r�t	|�t	|�kr�dSq�WdSdS)z�
    See if the partition lay out matches.

    This is future a future proofing function. In order
    to add support for other disk layout schemes, add a
    function called check_partition_%s_layout
    �gpt�mbrzUnable to determine table typez6called check_partition_%s_layout(%s, %s), returned: %srUTFcSs*g|]"}t|ttf�r"t|d�nd�qS)rUN)r�tupler)r#)r8r9rrrr:2sz*check_partition_layout.<locals>.<listcomp>zLayout types=%s. Found types=%sN)
rrurGr!r"r�boolrA�zipr#)�
table_typerrprrZlayout_typesZitypeZftyperrr�check_partition_layouts0

r�c
Cst|t�rt|t�rdSt|�dkr0t|t�s<t|t�rDtd��t|�}|dkr\td��g}d}x�|D]�}d}|}|d7}t|t�r�t|�dkr�td	|��|\}}tt|�t|�d
�}||kr�|jd|�qj|jd||f�qjWd
j|�}	t|�dk�rtd|	��|	S)a@
    Calculate the layout of the partition table. Partition sizes
    are defined as percentage values or a tuple of percentage and
    partition type.

    For example:
        [ 33, [66: 82] ]

    Defines the first partition to be a size of 1/3 the disk,
    while the remaining 2/3's will be of type Linux Swap.
    z,,83rzPartition layout is invalidrxz$Only simply partitioning is allowed.�SrUrSz%Partition was incorrectly defined: %s�dz,,%sz,%s,%s�
z-Calculated partition definition is too big
%s)	rr)r�rArGrc�floatrF�join)
�sizerpZ
last_part_num�part_definitionZpart_numr5Z	part_type�percent�	part_sizeZsfdisk_definitionrrr�get_partition_mbr_layout?s:





r�cCs�t|t�rdddgfgSg}xp|D]h}t|t�rRt|�dkrHtd|��|\}}n|}d}tt|�t|�d�}|j|ddj|�gf�q"Wd|ddd	<|S)
NrrSz%Partition was incorrectly defined: %sr�z+{}rUrjrjrj)	rr�r)rArGrcr�rF�format)r�rpZpartition_specsr4r��partition_typer�rrr�get_partition_gpt_layoutxs




r�c
Csbd}d}d}t|d��:}|j||�|j|tj�|j||�|j�WdQRXt|�dS)N�izrb+ii)�open�write�seek�os�SEEK_END�flushrk)rZnullZ	start_lenZend_len�fprrr�purge_disk_ptable�sr�cCs�x�t|�D]v}|dd
kr
tdd|dg}ytjd|d�tj|�Wq
tk
r~}ztd|d�|�WYd	d	}~Xq
Xq
Wt|�d	S)z'
    Remove parition table entries
    rBr,�cryptz--allz/dev/%srzPurging filesystem on /dev/%szFailed FS purge of /dev/%sN)r,r�)rO�
WIPEFS_CMDr!r1rr'rGr�)rrNZ
wipefs_cmdr.rrr�
purge_disk�sr�cCs0d|krt||�Sd|kr$t||�Std��dS)z�
    Call the appropriate function for creating the table
    definition. Returns the table definition

    This is a future proofing function. To add support for
    other layouts, simply add a "get_partition_%s_layout"
    function.
    r�r�zUnable to determine table typeN)r�r�rG)r�r�rprrr�get_partition_layout�s
	

r�cCsrtdk	rt|g}n
td|g}tj�ytj|�Wn2tk
rd}ztjtd|�WYdd}~XnXtj�dS)zq
    `Partprobe` is preferred over `blkdev` since it is more reliably
    able to probe the partition table.
    Nz
--rereadptz%Failed reading the partition table %s)�
PARTPROBE_CMDrbr�udevadm_settlerr'r(r!)rZ	probe_cmdr.rrrrk�s

"rkcCsbtd|g}ytj|d|d�Wn4tk
rT}ztd||f�|�WYdd}~XnXt|�dS)zV
    Break out of mbr partition to allow for future partition
    types, i.e. gpt
    z--forcez%s
)rez Failed to partition device %s
%sN)rlrr'rGrk)rrprqr.rrr�exec_mkpart_mbr�s
r�cCs�y�tjtd|g�xrt|�D]f\}\}\}}|d7}tjtddj|||�|g�|dk	rt|�jdd�}tjtddj||�|g�qWWn"tk
r�tjd	|��YnXt	|�dS)
Nz-ZrUz-nz{}:{}:{}rx�0z-tz{}:{}zFailed to partition device %s)
rry�	enumerater�r#�ljustr'r!r%rk)rrp�indexr�r=�endZpinputrrr�exec_mkpart_gpt�s"r�cCs8tjj|�s,tj�tjj|�s,td|��tj�dS)z?Assert that device exists and settle so it is fully recognized.zBDevice %s did not exist and was not created with a udevadm settle.N)r��path�existsrr�rG)rrrr�assert_and_settle_devicesr�cCs�t|�tjj|�}tjd|�|jdd�}|jdd�}|jdd�}tjd�t|t�r^|sd|rrtjd�d	Stjd
|�t	|�s�t
dj|d���t|t�r�|j
�d
kr�tjd�t|�d	Stjd�t|||�r�tjd�dStjd�|�rt|��st|��rtjd|�d	Stjd|�t|�}tjd�t|||�}tjd|�tjd|�d|k�rtt||�nd|k�r�t||�nt
d��tjd|�d	S)a�
    Creates the partition table.

    Parameters:
        definition: dictionary describing how to create the partition.

            The following are supported values in the dict:
                overwrite: Should the partition table be created regardless
                            of any pre-exisiting data?
                layout: the layout of the partition table
                table_type: Which partition table to use, defaults to MBR
                device: the device to work on.
    z!Checking values for %s definition�	overwriteFrpr�r�z Checking against default devicesz)Device is not to be partitioned, skippingNz'Checking if device %s is a valid devicez%Device {device} is not a disk device!)r�removez,Instructed to remove partition table entriesz!Checking if device layout matchesz"Device partitioning layout matchesTz'Checking if device is safe to partitionz-Skipping partitioning on configured device %szChecking for device size of %szCalculating partition layoutz   Layout is: %szCreating partition table on %sr�zUnable to determine table typezPartition table created for %s)r�r�r��realpathr!r"rrr�rRrGr�r#rJr�r�rar\rdr�r�r�)rr-r�rpr�Zdevice_sizer�rrrr&sL








r&cCsDdddddd�}d|j�kr d}|j�|kr4||Stjd|�dS)z9
    A force flag might be -F or -F, this look it up
    z-Fz-f)�extZbtrfsZxfsZreiserfsZswapr�zForce flag for %s is unknown.rQ)rJr!r%)Zfs�flagsrrr�lookup_force_flagXsr�cCs�|jd�}|jd�}t|jdd��}|jd�}|jdg�}|jdg�}|jdd	�}|jd
d	�}t|�tjj|�}tjd|�|s�|j��r*|j�r�d||f}tjd
||�tjd|�t	|�\}	}
}tjd||	|
�|	|ko�|
|k�rtjd|�|�stjd|�dStj
d|�ntjd|�n�|�r�t|�j�d0k�r�|}tjd|�d}
|j�dk�rhd	}
t||||
|d�\}}tjd||�|�r�tjd�dS|�r�|�r�|�r�tjd|�|�stjd|�dSn6|�s�t|�j�dk�rtjd|�ntjd�dStjd |||�|�s4tj
d!|�dS|�p<|�sPt
d"j|d#���d	}|�r�|d|||d$�}d}|�r�tj
d%|�|�r2tj
d&|�n�tjd'|�}|�s�tjd(|�}|�s�tj
d)||�dS|g}|�r�|jd*|g�|�st|�d+k�rt|�}|�r|j|�|�r(|j|�|j|�tjd,||�tjd-t|��ytj||d.�Wn6tk
�r�}zt
d/||f�|�WYdd}~XnXdS)1a�
    Create a file system on the device.

        label: defines the label to use on the device
        fs_cfg: defines how the filesystem is to look
            The following values are required generally:
                device: which device or cloud defined default_device
                filesystem: which file system type
                overwrite: indiscriminately create the file system
                partition: when device does not define a partition,
                            setting this to a number will mean
                            device + partition. When set to 'auto', the
                            first free device or the first device which
                            matches both label and type will be used.

                            'any' means the first filesystem that matches
                            on the device.

            When 'cmd' is provided then no other parameter is required.
    rDrr4�any�
filesystem�cmdZ
extra_optsr^Fr�z#Checking %s against default devicesz%s%sz%Manual request of partition %s for %szChecking device %sz0Device '%s' has check_label='%s' check_fstype=%sz Existing file system found at %sz"Device %s has required file systemNzDestroying filesystem on %sz"Device %s is cleared for formating�autoz,Identifying device to create %s filesytem onT)rYrDr]r^z(Automatic device for %s identified as %sz+Found filesystem match, skipping formating.z*Replacing file system on %s as instructed.zENo device available that matches request. Skipping fs creation for %sZnonez.Using the raw device to place filesystem %s onz(Error in device identification handling.z;File system type '%s' with label '%s' will be created on %szDevice is not known: %szENo way to create filesystem '{label}'. fs_type or fs_cmd must be set.)rD)rDr�rz8fs_setup:overwrite ignored because cmd was specified: %sz9fs_setup:extra_opts ignored because cmd was specified: %szmkfs.%szmk%sz.Cannot create fstype '%s'.  No mkfs.%s commandz-Lr,zCreating file system %s on %sz     Using cmd: %s)�shellzFailed to exec of '%s':
%s)r�r�)rr#r�r�r�r�r!r"rorZr%rJr_rGr�r�which�extendrPr�rFr')Zfs_cfgrDrr4rYZfs_cmdZfs_optsZ
fs_replacer�Zcheck_labelr`r[Zodevicer]Zreuser�Zmkfs_cmdZ
force_flagr.rrrr+ns�










r+)N)F)F)NNNTN)?�__doc__Zloggingr�r;�textwraprZ	cloudinitrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarrZcloudinit.distrosr	Zcloudinit.settingsr
r�rlryrErWrbr�r�rzZ	getLogger�__name__r!ZMODULE_DESCRIPTION�metar#r)r/r r*r@rOrPrRrZr\r_rardrurr�r�r�r�r�r�rkr�r�r�r&r�r+rrrr�<module>sz







%5&

2
 

2
').9G

Filemanager

Name Type Size Permission Actions
__init__.cpython-36.opt-1.pyc File 128 B 0644
__init__.cpython-36.pyc File 128 B 0644
cc_ansible.cpython-36.opt-1.pyc File 8.63 KB 0644
cc_ansible.cpython-36.pyc File 8.63 KB 0644
cc_apk_configure.cpython-36.opt-1.pyc File 4.51 KB 0644
cc_apk_configure.cpython-36.pyc File 4.51 KB 0644
cc_apt_configure.cpython-36.opt-1.pyc File 30.42 KB 0644
cc_apt_configure.cpython-36.pyc File 30.42 KB 0644
cc_apt_pipelining.cpython-36.opt-1.pyc File 2.44 KB 0644
cc_apt_pipelining.cpython-36.pyc File 2.44 KB 0644
cc_bootcmd.cpython-36.opt-1.pyc File 2.51 KB 0644
cc_bootcmd.cpython-36.pyc File 2.51 KB 0644
cc_byobu.cpython-36.opt-1.pyc File 3.04 KB 0644
cc_byobu.cpython-36.pyc File 3.04 KB 0644
cc_ca_certs.cpython-36.opt-1.pyc File 7.05 KB 0644
cc_ca_certs.cpython-36.pyc File 7.05 KB 0644
cc_chef.cpython-36.opt-1.pyc File 9.13 KB 0644
cc_chef.cpython-36.pyc File 9.13 KB 0644
cc_disable_ec2_metadata.cpython-36.opt-1.pyc File 1.72 KB 0644
cc_disable_ec2_metadata.cpython-36.pyc File 1.72 KB 0644
cc_disk_setup.cpython-36.opt-1.pyc File 23.1 KB 0644
cc_disk_setup.cpython-36.pyc File 23.1 KB 0644
cc_fan.cpython-36.opt-1.pyc File 2.74 KB 0644
cc_fan.cpython-36.pyc File 2.74 KB 0644
cc_final_message.cpython-36.opt-1.pyc File 3.07 KB 0644
cc_final_message.cpython-36.pyc File 3.07 KB 0644
cc_growpart.cpython-36.opt-1.pyc File 15.91 KB 0644
cc_growpart.cpython-36.pyc File 15.91 KB 0644
cc_grub_dpkg.cpython-36.opt-1.pyc File 4.92 KB 0644
cc_grub_dpkg.cpython-36.pyc File 4.92 KB 0644
cc_install_hotplug.cpython-36.opt-1.pyc File 3.25 KB 0644
cc_install_hotplug.cpython-36.pyc File 3.25 KB 0644
cc_keyboard.cpython-36.opt-1.pyc File 1.98 KB 0644
cc_keyboard.cpython-36.pyc File 1.98 KB 0644
cc_keys_to_console.cpython-36.opt-1.pyc File 3.11 KB 0644
cc_keys_to_console.cpython-36.pyc File 3.11 KB 0644
cc_landscape.cpython-36.opt-1.pyc File 4.71 KB 0644
cc_landscape.cpython-36.pyc File 4.71 KB 0644
cc_locale.cpython-36.opt-1.pyc File 1.58 KB 0644
cc_locale.cpython-36.pyc File 1.58 KB 0644
cc_lxd.cpython-36.opt-1.pyc File 13.04 KB 0644
cc_lxd.cpython-36.pyc File 13.04 KB 0644
cc_mcollective.cpython-36.opt-1.pyc File 4.24 KB 0644
cc_mcollective.cpython-36.pyc File 4.24 KB 0644
cc_migrator.cpython-36.opt-1.pyc File 2.92 KB 0644
cc_migrator.cpython-36.pyc File 2.92 KB 0644
cc_mounts.cpython-36.opt-1.pyc File 14.08 KB 0644
cc_mounts.cpython-36.pyc File 14.08 KB 0644
cc_ntp.cpython-36.opt-1.pyc File 13.15 KB 0644
cc_ntp.cpython-36.pyc File 13.15 KB 0644
cc_package_update_upgrade_install.cpython-36.opt-1.pyc File 3.78 KB 0644
cc_package_update_upgrade_install.cpython-36.pyc File 3.78 KB 0644
cc_phone_home.cpython-36.opt-1.pyc File 4.1 KB 0644
cc_phone_home.cpython-36.pyc File 4.1 KB 0644
cc_power_state_change.cpython-36.opt-1.pyc File 6.24 KB 0644
cc_power_state_change.cpython-36.pyc File 6.24 KB 0644
cc_puppet.cpython-36.opt-1.pyc File 9.46 KB 0644
cc_puppet.cpython-36.pyc File 9.46 KB 0644
cc_reset_rmc.cpython-36.opt-1.pyc File 3.59 KB 0644
cc_reset_rmc.cpython-36.pyc File 3.59 KB 0644
cc_resizefs.cpython-36.opt-1.pyc File 7.02 KB 0644
cc_resizefs.cpython-36.pyc File 7.02 KB 0644
cc_resolv_conf.cpython-36.opt-1.pyc File 4.27 KB 0644
cc_resolv_conf.cpython-36.pyc File 4.27 KB 0644
cc_rh_subscription.cpython-36.opt-1.pyc File 12.06 KB 0644
cc_rh_subscription.cpython-36.pyc File 12.06 KB 0644
cc_rightscale_userdata.cpython-36.opt-1.pyc File 2.77 KB 0644
cc_rightscale_userdata.cpython-36.pyc File 2.77 KB 0644
cc_rsyslog.cpython-36.opt-1.pyc File 10.34 KB 0644
cc_rsyslog.cpython-36.pyc File 10.34 KB 0644
cc_runcmd.cpython-36.opt-1.pyc File 2.43 KB 0644
cc_runcmd.cpython-36.pyc File 2.43 KB 0644
cc_salt_minion.cpython-36.opt-1.pyc File 4.36 KB 0644
cc_salt_minion.cpython-36.pyc File 4.36 KB 0644
cc_scripts_per_boot.cpython-36.opt-1.pyc File 1.4 KB 0644
cc_scripts_per_boot.cpython-36.pyc File 1.4 KB 0644
cc_scripts_per_instance.cpython-36.opt-1.pyc File 1.57 KB 0644
cc_scripts_per_instance.cpython-36.pyc File 1.57 KB 0644
cc_scripts_per_once.cpython-36.opt-1.pyc File 1.51 KB 0644
cc_scripts_per_once.cpython-36.pyc File 1.51 KB 0644
cc_scripts_user.cpython-36.opt-1.pyc File 1.58 KB 0644
cc_scripts_user.cpython-36.pyc File 1.58 KB 0644
cc_scripts_vendor.cpython-36.opt-1.pyc File 2.04 KB 0644
cc_scripts_vendor.cpython-36.pyc File 2.04 KB 0644
cc_seed_random.cpython-36.opt-1.pyc File 4.07 KB 0644
cc_seed_random.cpython-36.pyc File 4.07 KB 0644
cc_set_hostname.cpython-36.opt-1.pyc File 4 KB 0644
cc_set_hostname.cpython-36.pyc File 4 KB 0644
cc_set_passwords.cpython-36.opt-1.pyc File 8.4 KB 0644
cc_set_passwords.cpython-36.pyc File 8.4 KB 0644
cc_snap.cpython-36.opt-1.pyc File 5.94 KB 0644
cc_snap.cpython-36.pyc File 5.94 KB 0644
cc_spacewalk.cpython-36.opt-1.pyc File 2.87 KB 0644
cc_spacewalk.cpython-36.pyc File 2.87 KB 0644
cc_ssh.cpython-36.opt-1.pyc File 11.02 KB 0644
cc_ssh.cpython-36.pyc File 11.02 KB 0644
cc_ssh_authkey_fingerprints.cpython-36.opt-1.pyc File 3.54 KB 0644
cc_ssh_authkey_fingerprints.cpython-36.pyc File 3.54 KB 0644
cc_ssh_import_id.cpython-36.opt-1.pyc File 3.85 KB 0644
cc_ssh_import_id.cpython-36.pyc File 3.85 KB 0644
cc_timezone.cpython-36.opt-1.pyc File 1.24 KB 0644
cc_timezone.cpython-36.pyc File 1.24 KB 0644
cc_ubuntu_advantage.cpython-36.opt-1.pyc File 12.42 KB 0644
cc_ubuntu_advantage.cpython-36.pyc File 12.42 KB 0644
cc_ubuntu_autoinstall.cpython-36.opt-1.pyc File 3.89 KB 0644
cc_ubuntu_autoinstall.cpython-36.pyc File 3.89 KB 0644
cc_ubuntu_drivers.cpython-36.opt-1.pyc File 3.63 KB 0644
cc_ubuntu_drivers.cpython-36.pyc File 3.63 KB 0644
cc_update_etc_hosts.cpython-36.opt-1.pyc File 4.3 KB 0644
cc_update_etc_hosts.cpython-36.pyc File 4.3 KB 0644
cc_update_hostname.cpython-36.opt-1.pyc File 3.01 KB 0644
cc_update_hostname.cpython-36.pyc File 3.01 KB 0644
cc_users_groups.cpython-36.opt-1.pyc File 7.58 KB 0644
cc_users_groups.cpython-36.pyc File 7.58 KB 0644
cc_wireguard.cpython-36.opt-1.pyc File 8.39 KB 0644
cc_wireguard.cpython-36.pyc File 8.39 KB 0644
cc_write_files.cpython-36.opt-1.pyc File 5.61 KB 0644
cc_write_files.cpython-36.pyc File 5.61 KB 0644
cc_write_files_deferred.cpython-36.opt-1.pyc File 1.73 KB 0644
cc_write_files_deferred.cpython-36.pyc File 1.73 KB 0644
cc_yum_add_repo.cpython-36.opt-1.pyc File 6.03 KB 0644
cc_yum_add_repo.cpython-36.pyc File 6.03 KB 0644
cc_zypper_add_repo.cpython-36.opt-1.pyc File 5.66 KB 0644
cc_zypper_add_repo.cpython-36.pyc File 5.66 KB 0644
modules.cpython-36.opt-1.pyc File 7.31 KB 0644
modules.cpython-36.pyc File 7.31 KB 0644
schema.cpython-36.opt-1.pyc File 39.45 KB 0644
schema.cpython-36.pyc File 39.45 KB 0644