Mini Shell
3
{)c? � @ s\ d dl Z d dlZddlmZ ddlmZ d dlZejd�ZdZdZ G dd � d e
�Ze� ZdS )
� N� )�errors)�utilZblivetz/etc/nvme/hostnqnz/etc/nvme/hostidc @ s8 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� ZdS )
�NVMez� NVMe utility class.
.. warning::
Since this is a singleton class, calling deepcopy() on the instance
just returns ``self`` with no copy being created.
c C s
d| _ d S )NF)�started)�self� r �/usr/lib/python3.6/nvme.py�__init__) s z
NVMe.__init__c C s | S )Nr )r r r r �__call__- s z
NVMe.__call__c C s | S )Nr )r Z memo_dictr r r �__deepcopy__0 s zNVMe.__deepcopy__c C s� | j r
d S tjddg�\}}|dkr.tjd��ttd��}|j|� W d Q R X tjdddg�\}}|dkrttjd ��ttd��}|j|� W d Q R X d
| _ d S )N�nvmezgen-hostnqnr zFailed to generate hostnqn�wZ dmidecodez-szsystem-uuidzFailed to generate host IDT) r r Zrun_program_and_capture_outputr Z NVMeError�open�HOSTNQN_FILE�write�HOSTID_FILE)r ZrcZnqn�fZhidr r r �startup3 s
zNVMe.startupc C sD t jj|d �s t j|d d� tjt|t � tjt|t � d S )Nz /etc/nvmei� )�os�path�isdir�makedirs�shutilZcopyfiler r )r �rootr r r r G s z
NVMe.writeN) �__name__�
__module__�__qualname__�__doc__r
r r r r r r r r r ! s r )
r r � r r ZloggingZ getLogger�logr r �objectr r
r r r r �<module> s
/