Mini Shell
3
{)c
� @ s� d dl Z e jdd� d dlmZ ddlmZ ddlmZ ddl m
Z
dd lmZ d
dlm
Z
d
dlmZ d
d
lmZ G dd� dej�ZG dd� dejej�ZdS )� N�BlockDevz2.0)r � )�util)�crypto)� LUKSError)�LINUX_SECTOR_SIZE� )�availability)�task)�dfresizec @ s* e Zd ZdZejZdZdd� Zdd� Z dS )�LUKSSizez5 Obtain information about the size of a LUKS format. zsize of a luks devicec C s
|| _ dS )zd Initializer.
:param :class:`~.formats.luks.LUKS` a_luks: a LUKS format object
N)�luks)�self�a_luks� r �/usr/lib/python3.6/lukstasks.py�__init__- s zLUKSSize.__init__c C sb y,t jj| jj�}ttjd| d�p&d�}W n, t jk
rX } zt |��W Y dd}~X nX |t
S )z� Returns the size of the luks format.
:returns: the size of the luks format
:rtype: :class:`~.size.Size`
:raises :class:`~.errors.LUKSError`: if size cannot be obtained
z
/sys/block/%s�size�0N)�blockdevZdmZnode_from_namer
�map_name�intr Zget_sysfs_attrZDMErrorr r )r Zdm_devZblocks�er r r �do_task4 s zLUKSSize.do_taskN)
�__name__�
__module__�__qualname__�__doc__r ZBLOCKDEV_DM_PLUGIN�ext�descriptionr r r r r r r &