HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: //usr/lib/google-cloud-sdk/lib/surface/compute/disks/__pycache__/convert.cpython-312.pyc
�

���<��,�dZddlmZddlmZddlmZddlZddlZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZdd
lmZddlmZddlmZddlm Z dZ!Gd�dejD�Z#ejHejJejLjNejLjPejLjR�Gd�dejT���Z+ddd�e+_,y)z2Command for converting a disk to a different type.�)�absolute_import)�division)�unicode_literalsN)�base_classes)�
disks_util)�	kms_utils)�name_generator)�poller)�waiter)�base)�
exceptions)�
completers)�flags)�
resource_args)�log)�
console_io)�progress_trackera>This command will permanently convert disk {0} to disk type: {1}. Please detach the disk from all instances before continuing. Data written to the original disk during conversion will not appear on the converted disk. Please see https://cloud.google.com/compute/docs/disks/automatically-convert-disks for more details.c�$�eZdZdZdZdZdZdZdZy)�
_ConvertState������N)	�__name__�
__module__�__qualname__�SNAPSHOT_CREATED�
DISK_RESTORED�ORIGINAL_DISK_DELETED�ORIGINAL_DISK_RECREATED�RESTORED_DISK_DELETED�SNAPSHOT_DELETED���$lib/surface/compute/disks/convert.pyrr4s%�����-��������r&rc��eZdZdZej
d��Zed��Zd�Z		dd�Z
d�Zd	�Z	dd
�Z
d�Zd�Z	dd
�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zy)�ConvertzFConvert a Compute Engine Persistent Disk volume to a Hyperdisk volume.F)�pluralc��tjj|�|jdtj
dd��t
j|dd��y)N�--target-disk-typeTz�Specifies the type of Hyperdisk to convert to, for example,
        to convert a Hyperdisk Balanced volume, specify `hyperdisk-balanced`. To get a
        list of available disk types, run `gcloud compute disk-types list`.
        )�	completer�required�help�disk)�region_fallthrough)r)�	_DISK_ARG�AddArgument�add_argumentr�DiskTypesCompleter�kms_resource_args�AddKmsKeyResourceArg)�parsers r'�ArgszConvert.ArgsFsT�����!�!�&�)�
�����/�/���	���*�*���4�r&c���tj|j��|_|jjj
|_|jjj|_d|_i|_d|_	|jj||jjtj|jj���|_|jj!�dk(rt#j$dd��|j&dk(rt#j$dd��|j&|_t)j*|j|j|j�}|j-�}|j.rt#j0d	��t3j4t7j8t:j=|jj?�|j&��d
��	|jA|jj?��5|jC|j|j&|jDtGjH||jd���}ddd�|jM�|jr{|jtNjPtNjRtNjTfvr!tWjX|j�StWjZ|j�S#1swY��xYw#tJ$r}|�d}~wwxYw#|jM�|jr{|jtNjPtNjRtNjTfvr tWjX|j�wtWjZ|j�wwxYw)
N�)�scope_listerzcompute.regionDisksz--regionz2Regional disks are not supported for this command.zhyperdisk-mlr,z/Hyperdisk ML is not supported for this command.zHDisk is attached to instances. Please detach the disk before converting.T)�message�cancel_on_no��disk_encryption_key).r�ComputeApiHolder�ReleaseTrack�holder�client�apitools_client�messages�state�created_resources�
user_messagesr2�ResolveAsResource�	resourcesr�GetDefaultScopeLister�disk_ref�
Collectionr
�InvalidArgumentException�target_disk_typer�GetDiskInfo�GetDiskResource�users�
ToolExceptionr�PromptContinue�textwrap�dedent�CONTINUE_WITH_CONVERT_PROMPT�format�Name�_CreateProgressTracker�_ConvertDisk�sizeGbr�MaybeGetKmsKey�	Exception�_CleanUprr"r#r$r�warning�error)�self�args�	disk_info�
original_disk�result�es      r'�RunzConvert.RunVs���/�/��0A�0A�0C�D�D�K��+�+�$�$�4�4�D�K��K�K�&�&�/�/�D�M��D�J��D���D���N�N�4�4��������0�0����1C�1C�D�5��D�M��}�}���!�%:�:��/�/�
�
>�
��
����.��/�/�
�
;�
��!�1�1�D���&�&��
�
�t�{�{�D�M�M�3�I��-�-�/�M�����$�$��
��������(�/�/��
�
�"�"�$�d�&;�&;�
�
�
�
�(��&�&�t�}�}�'9�'9�';�<��"�"��M�M�4�0�0�-�2F�2F� )� 8� 8��d�m�m�T�!�#�
��=��m�m�o�	
�	�	��:�:�-�?�?�'�=�=�'�8�8�:�:��+�+�d�(�(�
)��M��)�)�D�&�&�
'��M�'=�<����
�g�����m�m�o�	
�	�	��:�:�-�?�?�'�=�=�'�8�8�:�:��+�+�d�(�(�
)�

�)�)�D�&�&�
'�

�s>�)L?�?AL3�L?�3L<�8L?�?	M�M
�
M�M�BO+Nc��|j|�|_|j||j�}|jjj|jd|jid��}|jtj|�|j|�|_
|jjj|j|j|jd�d��}|j|||||��xs|}|jtj|�|j|�xs|}|jtj�|j!|j#�||��xs|}|jtj$�|j|�xs|}|jtj&�|j)|�xs|}|jtj*�|S)N�projectzcompute.snapshots)�params�
collection)rk�zonez
compute.disksr?)�
_GenerateName�
snapshot_name�_InsertSnapshotrCrK�Parserk�_UpdateStaterr�restored_disk_namern�_RestoreDiskFromSnapshotr �_DeleteDiskr!�
_CloneDiskrZr"r#�_DeleteSnapshotr$)rcrMrP�size_gbr@rg�snapshot_ref�restored_disk_refs        r'r\zConvert._ConvertDisk�s����+�+�H�5�D��
�
!�
!�(�D�,>�,>�
?�F��;�;�(�(�.�.�����8�+�+�,�&�/��L�
	���m�4�4�l�C�"�0�0��:�D�����-�-�3�3����#�+�+�X�]�]�C�"�4���	
�%�%����� 3�	&�	
�	���	���m�1�1�3D�E�
�
�
�h�
'�
1�6�F����m�9�9�:�	
����M�M�O�� 3�	�	
�	�
�
�	���m�;�;�<��
�
�/�
0�
:�F�F����m�9�9�:��
!�
!�,�
/�
9�6�F����m�4�4�5��Mr&c�@�|jj|j|jj||j	�|jjj
j����}|j|jjd|�}|jjj|jd��}tjt!j"|jj�||j%�d��S)N)�name�
sourceDisk�snapshotType)rk�snapshot�Insert�compute.globalOperations�rm��custom_tracker�max_wait_ms)rF�ComputeSnapshotsInsertRequestrk�Snapshot�SelfLink�SnapshotTypeValueValuesEnum�STANDARD�_MakeRequestrD�	snapshotsrCrKrr�selfLinkr�WaitForr
�Poller�_CreateNoOpProgressTracker)rcrMrp�request�	operation�
operation_refs      r'rqzConvert._InsertSnapshot�s����m�m�9�9�� � ����'�'���(�(�*����/�/�K�K�T�T�(�
�:��G��!�!�$�+�+�"7�"7��7�K�I��K�K�)�)�/�/����-�0��M��>�>��
�
�d�k�k�+�+�,���6�6�8��	�r&c��|jj|j�|j��}|j	|j
jd|�}|jjj|jd��}tjtj|j
j�||j�d��S)N)r�rk�Deleter�r�r�)rF�ComputeSnapshotsDeleteRequestrZrkr�rDr�rCrKrrr�rr�r
�DeletePollerr�)rcrzr�r�r�s     r'rxzConvert._DeleteSnapshot�s����m�m�9�9��"�"�$��$�$�:��G��!�!�$�+�+�"7�"7��7�K�I��K�K�)�)�/�/����-�0��M��>�>����D�K�K�1�1�2���6�6�8��	�r&c	�|�i}|r||d<|jjd|j�tj|||j
�||j
�d�|��}|jj||j|j��}|j|jjd|�}	|j
jj|	jd��}
t!j"t%j&|jj�|
|j)�d��S)	N�diskEncryptionKey)r}�typer]�sourceSnapshot�r0rkrnr��compute.zoneOperationsr�r�r%)rF�DiskrZr�GetDiskTypeUrirCr��ComputeDisksInsertRequestrkrnr�rD�disksrKrrr�rr�r
r�r�)rcr{rz�	disk_typeryr@�kwargsr0r�r�r�s           r'ruz Convert._RestoreDiskFromSnapshot�s)���F��$7�f�
 �!��4�=�=����
�
#�
#�
%�
�
&�
&��(�$�+�+�
��#�,�,�.�
���D��m�m�5�5�
�!�)�)�
�
#�
#�6��G�
�!�!�$�+�+�"3�"3�X�w�G�I��K�K�)�)�/�/����+�0��M��>�>��
�
�d�k�k�'�'�(���6�6�8��	�r&c�V�tj��d|j���ddS)N�-�@)r	�GenerateRandomNamerZ)rc�resource_refs  r'rozConvert._GenerateNames.���/�/�1�
2�!�L�4E�4E�4G�3H�I�#�2�N�Nr&c���|jj|j�|j|j��}|j|jjd|�}|jjj|jd��}tjtj|jj�||j!�d��S)Nr�r�r�r�r�)rF�ComputeDisksDeleteRequestrZrkrnr�rDr�rCrKrrr�rr�r
r�r�)rcrMr�r�r�s     r'rvzConvert._DeleteDisks����m�m�5�5�
�]�]�_�� � �
�]�]�6��G�
�!�!�$�+�+�"3�"3�X�w�G�I��K�K�)�)�/�/����+�0��M��>�>����D�K�K�-�-�.���6�6�8��	�r&c�"�i}|r||d<|jjd||j�d�|��}|jj||j|j
��}|j
|jjd|�}|jjj|jd��}tj|jj�}	tj |	||j#�d��S)	Nr�)r}r~r�r�r�r�r�r%)rFr�r�r�rkrnr�rDr�rCrKrrr�r
r�rr�r�)
rc�original_disk_namer{r@r�r0r�r�r��operation_pollers
          r'rwzConvert._CloneDisk1s���F��$7�f�
 �!��4�=�=����
�$�-�-�/����D�
�m�m�5�5�
�!�)�)�
�
#�
#�6��G�
�!�!�$�+�+�"3�"3�X�w�G�I��K�K�)�)�/�/����+�0��M��}�}�T�[�[�%6�%6�7���>�>����6�6�8��	�r&c��g}|jjj|||fg|�}|rtj|��|stj
d��|dS)NzNo response receivedr)rCrD�
AsyncRequests�core_exceptions�
MultiError�
InternalError)rc�resource_client�methodr��errors_to_collect�	responsess      r'r�zConvert._MakeRequestNsh�������"�"�0�0�
�6�7�	+�,�.?��I���&�&�'8�9�9���)�)�*@�A�A��Q�<�r&c�6�||_|r||j|<yy�N)rGrH)rcrG�created_resources   r'rszConvert._UpdateStateYs!���D�J��&6�d���U�#�r&c�R�|jsd|j�z|_y|jtjk(rSd|j
�d�|j�z|_|j
|jtj�y|jtjk(r�d|jj��d�|j�z|j�z|_|j|jtj�|j
|jtj�y|jtjk(r�d|jj��d|jj��d|jj�d|j�d	|j �d
|j
�d|j �d|jj�d�|_y|jtj"k(r8d
|j �d�|j�z|j�z|_y|jtj$k(r'd|j
�d�|j�z|_yy)NzCreating snapshot failed.zCreating disk from snapshot z	 failed. zDeleting original disk zRecreating original disk z1 failed. Please run `gcloud compute disks create � --zone=z --type=z --source-disk=zM` to recreate the original disk. Please run `gcloud compute snapshots delete zL` to delete the temporary snapshot. Please run `gcloud compute disks delete z` to delete the temporary disk.z;Conversion completed successfully, Deleting temporary disk z failed.z?Conversion completed successfully. Deleting temporary snapshot )rG�_BuildCleanupSnapshotMessagerIrrrprxrHr rMrZ�_BuildCleanupDiskMessagervr!rnrPrtr"r#�rcs r'r`zConvert._CleanUp^s����:�:�
%��(I�(I�(K�
K���
��z�z�]�3�3�3�
)��);�);�(<�I�
F��-�-�/�0������
�
 �
 ��!?�!?�
@��
���}�2�2�	2�
$�D�M�M�$6�$6�$8�#9��
C��)�)�+�,��-�-�/�0���
���t�-�-�m�.I�.I�J�K�
���
�
 �
 ��!?�!?�
@��
���}�:�:�	:�
&�d�m�m�&8�&8�&:�%;�<��m�m� � �"�
#�8�D�M�M�,>�,>�+?�x��H]�H]�G^�^m�nr�oF�oF�nG�G�#�1�1�2�3��%�%�
&�h�t�}�}�/A�/A�.B�C!�
!���
���}�<�<�	<���%�%�
&�h�0��)�)�+�,�
�-�-�/�0���
���}�:�:�	:��� � �
!��+��-�-�/�0���
;r&c�8�tjd|�d�d��S)NzConverting disk z...zConversion aborted.)r=�aborted_message)r�ProgressTracker)rc�	disk_names  r'r[zConvert._CreateProgressTracker�s$���+�+�"�9�+�S�1�-��r&c�0�tjdd��S)NTr;)�
interruptabler�)r�NoOpProgressTrackerr�s r'r�z"Convert._CreateNoOpProgressTracker�s���/�/��B��r&c�"�d|j�d�S)Nz- Please run `gcloud compute snapshots delete z6` to delete the temporary snapshot if it still exists.)rpr�s r'r�z$Convert._BuildCleanupSnapshotMessage�s ��
7��8J�8J�7K�L=�	=�r&c�P�d|j�d|jj�d�S)Nz) Please run `gcloud compute disks delete r�z2` to delete the temporary disk if it still exists.)rtrMrnr�s r'r�z Convert._BuildCleanupDiskMessage�s4��	��#�#�$�H�T�]�]�-?�-?�,@�A.�	.�r&r�)rrr�__doc__�disks_flags�MakeDiskArgr2�staticmethodr9rir\rqrxrurorvrwr�rsr`r[r�r�r�r%r&r'r)r)=s���
O�%�k�%�%�U�3�)��
��
�A�HFJ�5�n�*�.�
$�LO��&HL��:	�7�
3�j��
�r&r)a
 Convert Compute Engine Persistent Disk volumes to Hyperdisk volumes.

 *{command}* converts a Compute Engine Persistent Disk volume to a Hyperdisk volume. For a comprehensive guide, refer to: https://cloud.google.com/sdk/gcloud/reference/compute/disks/convert.
    z�The following command converts a Persistent Disk volume to a Hyperdisk Balanced volume:

        $ {command} my-disk-1 --zone=ZONE --target-disk-type=hyperdisk-balanced
        )�DESCRIPTION�EXAMPLES)-r��
__future__rrr�enumrV�googlecloudsdk.api_lib.computerrrr	�)googlecloudsdk.api_lib.compute.operationsr
�googlecloudsdk.api_lib.utilr�googlecloudsdk.callioperr
�"googlecloudsdk.command_lib.computerr�(googlecloudsdk.command_lib.compute.disksr��googlecloudsdk.command_lib.kmsrr6�googlecloudsdk.corer�r�googlecloudsdk.core.consolerrrX�Enumr�DefaultUniverseOnly�
ReleaseTracksrB�ALPHA�BETA�GA�RestoreCommandr)�
detailed_helpr%r&r'�<module>r�s���9�&��'���7�5�4�9�<�.�(�.�9�4�I�M�=�#�2�8����D�I�I���������D�%�%�+�+��%�%�*�*��%�%�(�(�*�h�d�!�!�h�*��h�X�
�
��r&