File manager - Edit - /usr/lib/python3/dist-packages/uaclient/__pycache__/lock.cpython-310.pyc
Back
o |CvdT � @ s� d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl m Z e�d�Zda dd� ZG dd � d �ZG d d� de�ZdS )� N)�config� exceptions)�notices)�Noticezpro.lockc C s t rt � d S d S �N)�clear_lock_file� r r �//usr/lib/python3/dist-packages/uaclient/lock.py�clear_lock_file_if_present s �r c @ s4 e Zd ZdZdejdefdd�Zdd� Zdd � Z d S )�SingleAttemptLocka� Context manager for gaining exclusive access to the lock file. Create a lock file if absent. The lock file will contain a pid of the running process, and a customer-visible description of the lock holder. :param lock_holder: String with the service name or command which is holding the lock. This lock_holder string will be customer visible in status.json. :raises: LockHeldError if lock is held. �cfg�lock_holderc G s || _ || _d S r �r r )�selfr r �_argsr r r �__init__$ s zSingleAttemptLock.__init__c C sj | j �� \}}|dkrtj| j||d��| j �dd�t�� | j�� t j tj| jd� t �| j jd�ad S )Nr )�lock_requestr �pid�lockz{}:{})� operation)r �check_lock_infor � LockHeldErrorr �write_cache�format�os�getpidr �addr �OPERATION_IN_PROGRESS� functools�partial�delete_cache_keyr )r �lock_pid�cur_lock_holderr r r � __enter__( s ���zSingleAttemptLock.__enter__c C s | j �d� d ad S )Nr )r r r )r � _exc_type� _exc_value� _tracebackr r r �__exit__: s zSingleAttemptLock.__exit__N) �__name__� __module__�__qualname__�__doc__r �UAConfig�strr r# r'