iG d dl Z d dlZd dlZd dlmZ d dlmZ d dlm Z ddl mZmZ e j ed Zedz Zd a G d de Zdd Zd Zd ZdS ) N)minidom) ExpatError)etree ) CONFIG_DIRacquire_lockzve.cfgz.tmpNNc e Zd Zd fd Z xZS )BadVeConfigExceptionNothingc P t d| d S )Nz5Unable to parse /etc/container/ve.cfg file, message: )super__init__)selfmessage __class__s py/clveconfig/ve_config.pyr zBadVeConfigException.__init__ s4 MGMM )r )__name__ __module____qualname__r __classcell__)r s @r r r s= r r Tc d t dk r | rt S t 5 t j t }| d d }n5# t t t t f$ r}t d |d}~ww xY w| r||fa ||fcddd S # 1 swxY w Y dS )z Load xml config from ve.cfg 1. setup lock on file 2. read info 3. remove lock :type use_cache: bool :rtype: tuple[xml.Document, xml.Element] :raises: BadVeConfigException, LockFailedException r lveconfigr zbad ve.cfg fileN)PARSED_XML_CACHEr xmlparseVE_CFG_PATHgetElementsByTagNameOSErrorIOErrorr IndexErrorr ) use_cache_ve_cfg _ve_lveconfiges r get_xml_configr' " s =((Y( &