Mini Shell
3
{)c( � @ s d dl Z e jdd� e jdd� d dlmZmZ d dlZd dlZddlmZ ddl m
Z
dd lmZ dd
l
mZ ddlmZ ddlmZ d
ZdZed Zed Zed Zed Ze
d�ZdZd&dd�Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Z d'd$d%�Z!dS )(� N�GLibz2.0�Gio)r r � )�StratisError)�Size)�stratis_info)�availability)� safe_dbus)�utilzorg.storage.stratis3z/org/storage/stratis3z.pool.r0z.filesystem.r0z.blockdev.r0z.Manager.r0z1 TiBz0-9a-zA-Z._-Fc C s� t jjstdt jj ��t jjdg}x"| D ]}|jdt|j� �g� q*W |rV|jd� t j
|�\}}|rptd��ytj|�}W n. tj
k
r� } ztd�|�W Y d d }~X nX t|d �S )Nz<Utility for predicting stratis pool usage '%s' not availableZpoolz
--device-sizez--encryptedz(Failed to predict usage for stratis poolz Failed to get stratis pool usage�used)r �STRATISPREDICTUSAGE_APP� availabler �name�extend�str� get_bytes�appendr
�run_program_and_capture_output�json�loads�JSONDecodeErrorr )Z dev_sizes� encrypted�cmd�size�rc�out�pred�e� r �/usr/lib/python3.6/stratis.py� pool_used5 s
r c C s� t jjstdt jj ��tjt jjddt| j� �g�\}}|rJtd| ��yt j
|�}W n. t jk
r� } ztd�|�W Y d d }~X nX t|d �S )Nz<Utility for predicting stratis pool usage '%s' not availableZ
filesystemz--filesystem-sizez2Failed to predict usage for stratis filesystem: %sz&Failed to get stratis filesystem usager )
r r r
r r r
r r r r r r r )�fs_sizer r r r r r r �filesystem_md_sizeK s r"