o
    :Fd                     @   sj   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 	dddZ
dd	d
ZdddZdddZdS )    )
Completion)supported_resource_types)parameter_resource_mapping)cli_util)get_error_message c                 C   s  t dd| }|dkrt| |||}|S |dkr!t| |||}|S |dkr.t| |||}|S |tvs:t| d tvr<g S g }t| }t }d|d< |rQt|dk r\d	|d  d
 |d< nd	|d  d | d |d< zQ|j	|dd}	t|	j
jdkr|jtddd W |S |	j
j}
|
D ],}|rt|dk r| |j vrq|t|d dkr|jn|jt| |jd qW |S  ty   |jtddd Y |S w )NZresource_searchz--availability-domainz--shapez
--image-idZresource_typeZ
Structuredtype   zquery z
 resourcesqueryz! resources where displayName =~ ''i  )search_detailslimitr   no_items_foundTZis_errorZfield_to_use
identifierZdisplayresource_search_failed)r   build_clientget_availability_domainsget_compute_shapesget_compute_imagesr   r   dictlenZsearch_resourcesdataitemsset_toolbar_textr   lowerdisplay_nameappendr   r   	Exception)ctx
param_nameword_before_cursorbottom_toolbar
sub_stringZresource_search_clientcompletionsZparameter_resourcer   responser   item r(   Iusr/lib/python3.10/site-packages/interactive/oci_resources_completions.pyget_oci_resources   s   
r*   c           
      C   s   t | }g }zEt dd| }|j|d}t|jdkr(|jtddd W |S |j}|D ]}	|r:| |	j	 v rI|
t|	j	t| |	j	d q-W |S  ty_   |jtddd Y |S w )	NZidentitycompartment_idr   r   Tr   r   r   )r   get_tenancy_from_configr   Zlist_availability_domainsr   r   r   r   r   namer   r   r   )
r    r"   r#   r$   r,   r%   Zidentity_clientr&   r   r'   r(   r(   r)   r   d   s8   
r   c           
      C   s   t | }g }zEt dd| }|j|d}t|jdkr(|jtddd W |S |j}|D ]}	|r:| |	j	 v rI|
t|	j	t| |	j	d q-W |S  ty_   |jtd	dd Y |S w )
Ncorecomputer+   r   r   Tr   r   r   )r   r-   r   Zlist_shapesr   r   r   r   r   shaper   r   r   )
r    r"   r#   r$   r,   r%   compute_clientr&   r   r'   r(   r(   r)   r      s4   
r   c                 C   s   t | }g }zHt dd| }ddi}|jdd|i|}|j}	|	D ]}
|r/| |
j v r>|t|
j	t
| |
jd q"|sM|jtddd	 W |S W |S  tyb   |jtd
dd	 Y |S w )Nr/   r0   Zlifecycle_stateZ	AVAILABLEr,   r   r   Tr   r   r(   )r   r-   r   Zlist_imagesr   r   r   r   r   idr   r   r   r   )r    r"   r#   r$   r,   r%   r2   kwargsr&   r   r'   r(   r(   r)   r      s6   
r   N)r   )Zprompt_toolkit.completionr   Z$interactive.supported_resource_typesr   Zinteractive.utilsr   oci_clir   Zinteractive.error_messagesr   r*   r   r   r   r(   r(   r(   r)   <module>   s   

X
