o
    `j                     @   s,   d dl mZ G dd dZG dd dZdS )    )UpdateFeatureTypec                   @   s,   e Zd ZdZdZedd Zedd ZdS )DescribeFeatureszdescribe-featuresz"Describe Features of Kafka Clusterc              	   C   s   |j ddtddg dd d S )N-f	--featureappendfeatureszJShow one or more specific features. If not provided, returns all features.typeactiondestdefaulthelp)add_argumentstrclsparser r   ^/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/kafka/cli/admin/cluster/features.pyadd_arguments   s   
zDescribeFeatures.add_argumentsc                    s(   |  } jr fdd| D S |S )Nc                    s    i | ]\}}| j v r||qS r   )r   ).0kvargsr   r   
<dictcomp>   s     z,DescribeFeatures.command.<locals>.<dictcomp>)describe_featuresr   items)r   clientr   resultr   r   r   command   s   zDescribeFeatures.commandN)__name__
__module____qualname__COMMANDHELPclassmethodr   r    r   r   r   r   r      s    
r   c                   @   s8   e Zd ZdZdZedd Zedd Zedd Z	d	S )
UpdateFeatureszupdate-featuresz Update Features of Kafka Clusterc              	   C   sV   |j ddtddg dd |j ddd	 |j d
dd	 |j dtdd |j ddd	 d S )Nr   r   r   r   zset feature=valuer   z--downgrade
store_true)r
   z--unsafez	--timeout<   )r	   r   z--validate-only)r   r   intr   r   r   r   r      s
   zUpdateFeatures.add_argumentsc                 C   s   | j stjS | jrtjS tjS )N)	downgrader   UPGRADEunsafeUNSAFE_DOWNGRADESAFE_DOWNGRADEr   r   r   r   _feature_type"   s
   zUpdateFeatures._feature_typec                    s@   |  |  fdddd |jD D }|j||jd|j dS )Nc                    s   i | ]	\}}| |fqS r   r   )r   feature_nameversionfeature_typer   r   r   .   s    z*UpdateFeatures.command.<locals>.<dictcomp>c                 S   s   g | ]}| d qS )=)split)r   featurer   r   r   
<listcomp>0   s    z*UpdateFeatures.command.<locals>.<listcomp>i  )validate_only
timeout_ms)r0   r   update_featuresr9   timeout)r   r   r   feature_updatesr   r3   r   r    +   s   

zUpdateFeatures.commandN)
r!   r"   r#   r$   r%   r&   r   staticmethodr0   r    r   r   r   r   r'      s    

r'   N)kafka.adminr   r   r'   r   r   r   r   <module>   s    