EVOLUTION-MANAGER
Edit File: KernelModuleService.cpython-36.pyc
3 x?agY � @ s| d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ ddl m Z mZmZ dd l Z dd lZG d d� de�Zd S )z� KernelModuleService - manages the kvdo kernel module $Id: //eng/vdo-releases/aluminum/src/python/vdo/vdomgmnt/KernelModuleService.py#3 $ � )�absolute_import)�division)�print_function)�unicode_literals� )�Defaults�Service)�Command�CommandError� runCommandNc sZ e Zd ZdZddd�Zdd� Zdd� Zd d � Zdd� Zd d� Z � fdd�Z dd� Z� ZS )�KernelModuleServicez>KernelModuleService manages a kernel module on the local node.Tc C sh |rdnd}yBt ddddd| j d gd|d � t d ddddtjgd|d � dS tk rb dS X d S )z@Returns True if the module is loaded and DM target is available.� r Zlsmod�|Zgrepz-q�'T)�shell�retries�dmsetup�targetsFN)r �_namer � vdoTargetNamer )�self�waitr � r �)/usr/lib/python3.6/KernelModuleService.py�running) s zKernelModuleService.runningc C s t d| jg� dS )zLoads the module if necessary.�modprobeN)r r )r r r r �start6 s zKernelModuleService.startc C s. t d�| jt d�| jd�t d�tj| j� �iS )zAReturns a dictionary representing the status of this object. �NameZLoadedFzVersion information)�_r r �yamlZ safe_load�version)r r r r �status; s zKernelModuleService.statusc C s t dd| jg� dS )zRemoves the module.r z-rN)r r )r r r r �stopC s zKernelModuleService.stopc C sD | j d }x4td| j gdd�j� D ]}|jd�dkr"||7 }q"W |S )z'Returns the module version as a string.� ZmodinfoT)�noThrowr r )r r � splitlines�find)r �s�liner r r r H s zKernelModuleService.versionc C s` xZt ddgdd�j� D ]B}tjtj�d }tj||�}|dk rttt |j d�jd���S qW d S )z/Returns the dmsetup targets version as a numberr r T)r$ z\s+v(\d+\.\d+\.\d+)Nr �.r )r r r )r r% �re�escaper r �match�tuple�map�int�group�split)r r( ZversionMatchr r r r � targetVersionQ s z!KernelModuleService.targetVersionc s t t| �j|� d S )N)�superr �__init__)r �name)� __class__r r r4 ^ s zKernelModuleService.__init__c C s dS )zgKernelModuleService does not exclude any of its __dict__ contents from its __repr__ result. Tr )r �keyr r r �_reprAttributed s z"KernelModuleService._reprAttribute)T) �__name__� __module__�__qualname__�__doc__r r r! r"