Mini Shell
3
�Mfw[ � @ s� d dl Z d dlZd dlmZ ddlmZ ddlmZmZ d dl Z e j
dd� e j
dd� e j
d d� d d
lmZ
d dlmZmZ d dlZejd�Zd
ZG dd� de�Zee j�G dd� de��ZG dd� de�Ze� ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Ze� ZG d d!� d!e�Z e � Z!d"d#� Z"d$d%� Z#d&d'� Z$d(d)� Z%d*d+� Z&d,d-� Z'e
j(j)e
j(j*B e
j(j+B e
j(j,B Z-ed.e
j.e
j/j0e-e
j/j1e-e
j/j2e-id/�Z3ee3�Z4e
j5j)e
j5j6B e
j5j,B e
j5j7B e
j5j8B e
j5j9B Z:ed0e
j;e
j<j=e:e
j<j>e:e
j<j?e
j5j)id/�Z@ee@�ZAed0e
j;e
j<jBe
j5j)e
j5j6B e
j5j,B id/�ZCeeC�ZDe
jEjFe
jEjGB e
jEj,B ZHed1e
jIe
jJjKeHid/�ZLeeL�ZMed1e
jIe
jJjNeHid/�ZOeeO�ZPe
jQj)e
jQj)B e
jQjRB e
jQj+B e
jQj,B ZSed2e
jTe
jUjVeSid/�ZWeeW�ZXe
jYj)e
jYjZB e
jYj+B e
jYj,B Z[ed3e
j\e
j]j^e[e
j]j_e[e
j]j`e[e
j]jae[e
j]jbe
jYj,e
j]jce
jYj,e
j]jde
jYj,e
j]jee
jYj,e
jYj+B id/�Zfeef�Zgehe
j]d4��r�ed3e
j\e
j]jie
jYj)e
jYjZB e
jYj,B id/�Zjeej�Zkn
ed5d6�Zkehe
j]d7��red3e
j\e
j]jle
jYj+id/�Zmeem�Znn
ed8d6�Zne
joj)e
joj*B e
joj+B e
joj,B Zped9e
jqe
jrjsepid/�Zteet�Zue
jvj+e
jvj,B Zwed:e
jxe
jyjzewid/�Z{ee{�Z|e
j}j)e
j}j~B e
j}j,B e
j}jB Z�ed;e
j�e
j�j�e�id/�Z�ee��Z�e$d<e4�Z�e$d=eA�Z�e$d>eD�Z�e$d?eM�Z�e$d@eP�Z�e$dAeX�Z�e$dBeg�Z�e$dCek�Z�e$dDen�Z�e$dEeu�Z�e$dFe|�Z�e$dGe��Z�edHdIdJdKdL�Z�ee��Z�edMdNdOdPdL�Z�ee��Z�e"dQ�Z�e"dR�Z�e"dS�Z�e"dT�Z�e#dUe��Z�e#dHe��Z�e#dVe��Z�e"dW�Z�e"dX�Z�e"dY�Z�e"dZ�Z�e"d[�Z�e"dM�Z�e#dMe��Z�e#d\e��Z�e"d]�Z�e"d^�Z�e"d_�Z�e"d`�Z�e"da�Z�e"db�Z�e"dc�Z�e"dd�Z�e"de�Z�e"df�Z�e"dg�Z�e"dh�Z�e"di�Z�e#dje��Z�e#dke��Z�e"dl�Z�e"dm�Z�e"dn�Z�e"do�Z�e"dp�Z�e"dq�Z�e"dr�Z�e"ds�Z�e"dt�Z�eee�Z�e%due��Z�dS )v� N)�
add_metaclass� )� safe_dbus)�STRATIS_SERVICE�STRATIS_PATH�BlockDevz2.0�GLib�Gio)r )r r ZblivetTc @ s8 e Zd ZdZdd� Zdd� Zedd� �Zedd � �Zd
S )�ExternalResourcez An external resource. c C s || _ || _d| _dS )z� Initializes an instance of an external resource.
:param method: A method object
:type method: :class:`Method`
:param str name: the name of the external resource
N)�_method�name�_availability_errors)�self�methodr � r �"/usr/lib/python3.6/availability.py�__init__0 s zExternalResource.__init__c C s | j S )N)r )r r r r �__str__; s zExternalResource.__str__c C sN t � }tr| j}nd| _| jdkr.| jj| �}trJ| jdkrJ|dd� | _|S )z� Whether the resource has any availability errors.
:returns: [] if the resource is available
:rtype: list of str
N)�list�CACHE_AVAILABILITYr
r �availability_errors)r Z_errorsr r r r >