File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/libcloud/compute/drivers/__pycache__/kubevirt.cpython-310.pyc
Back
o ;j? � @ s d Z ddlZddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddlmZ ddl mZmZmZmZmZmZmZmZ ddlmZmZ ddlmZmZmZ g d �Zd ZdZh d�Z G d d� dee�Z!de"de"de"fdd�Z#dd� Z$ ddd�Z%dd� Z&dS )z. kubevirt driver with support for nodes (vms) � N)�Union�Optional)�datetime)� LibcloudError)�Node�NodeSize� NodeImage� NodeDriver�NodeLocation� StorageVolume�NodeAuthSSHKey�NodeAuthPassword)�Provider� NodeState)�VALID_RESPONSE_CODES�KubernetesDriverMixin�KubernetesBasicAuthConnection)�KubeVirtNodeDriver� DISK_TYPES�KubeVirtNodeSize�KubeVirtNodeImagez/api/v1/z/apis/kubevirt.io/v1alpha3/> ZhostDiskZ emptyDisk�cloudInitConfigDrive� containerDiskZ dataVolume�cloudInitNoCloudZ ephemeral�persistentVolumeClaimZ configMapc @ s� e Zd ZejZdZdZeZ dddgiZ ejej ejd�ZdWdd �ZdXd d�Zdd � Zdd� Zdd� Zdd� ZdYdedefdd�ZedWdd��Zedd� �Ze dZdd��Zedd � �Zed!d"� �Zed#d$� �Zd%d&� Z ed'd(� �Z! ) d[d*d+�Z"dWd,d-�Z#d.d/� Z$dWd0d1�Z% 2 3 4 5 6 d\d7d8�Z& 3 4d]d9d:�Z'dYd;d<�Z(d=d>� Z)d^dAdB�Z*dCdD� Z+dYdEdF�Z,dGdH� Z-dIdJ� Z.dKdL� Z/d_dNdO�Z0d`dPdQ�Z1 R MdadSdT�Z2dUdV� Z3dS )br Zkubevirtzhttps://www.kubevirt.io�create_nodeZssh_key�password)�pending�running�stoppedNc C s g }|d ur!t |t�r|�|j� nt |t�r|�|� ntd��| �� D ]}|�|j� q%g }g }|D ]1}td | d }| j� |�}|j dkrJq4|j}|d D ]}|d d s_|�|� qQ|�|� qQq4g } |D ]} | �| j| dd �� qj|D ]} | �| j| d d �� qy| S )Nz+location must be a NodeLocation or a string�namespaces/z/virtualmachines�� �items�specr T)� is_stoppedF) � isinstancer �append�name�str� ValueError�list_locations�KUBEVIRT_URL� connection�request�status�object�_to_node)�self�location� namespaces�nsZdormantZlive�req�result�itemZvms�vm� r9 �U/opt/saltstack/salt/lib/python3.10/site-packages/libcloud/compute/drivers/kubevirt.py� list_nodesV s8 �zKubeVirtNodeDriver.list_nodesc sv � s�st d��| �� }d}� rt� fdd�|�}�r$t�fdd�|�}|s*t d��zt|�W S ty: t d��w )z�get a vm by name or id. :param id: id of the vm :type id: ``str`` :param name: name of the vm :type name: ``str`` z,This method needs id or name to be specifiedNc � | j � kS �N��id��xr>