
    )                     >   d Z 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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 e
j&                  e
j(                  j*                  e
j(                  j,                         G d de
j.                               Zee_        y)z-Bare Metal Solution NFS share create command.    )absolute_import)division)unicode_literals)	BmsClient)waiter)base)flags)labels_util)log)	resourcesz;
          Create a Bare Metal Solution NFS share.
        a=  
          To create an NFS share called ``my-share'' in region ``us-central1'', with
          requested size of 256 Gib, SSD storage and 2 allowed clients, run:

          $ {command} my-share  --region=us-central1 --size-gib=256 --storage-type=SSD --allowed-client=network=my-network,network-project-id=some-other-project,cidr=10.130.240.24/29,mount-permissions=READ_ONLY,allow-dev=yes,allow-suid=no,enable-root-squash=yes --allowed-client=network=my-network2,cidr=10.130.240.26/28,mount-permissions=READ_WRITE,allow-dev=yes,allow-suid=yes,enable-root-squash=no
        )DESCRIPTIONEXAMPLESc                   &    e Zd ZdZed        Zd Zy)Createz'Create a Bare Metal Solution NFS share.c                     t        j                  | d       t        j                  |        t        j                  |        t        j                  |        t        j                  |        t        j                  j                  |        y)z Register flags for this command.T)
positionalparserN)
r	   AddNfsShareArgToParserAddNfsSizeGibArgAddNfsStorageTypeArgAddNfsAllowedClientArgr
   AddCreateLabelsFlagsr   
ASYNC_FLAGAddToParserr   s    $lib/surface/bms/nfs_shares/create.pyArgszCreate.Args0   s^     
  D9	&)	f-	  /$$F3OO'    c                    |j                   j                  j                         }t               }t	        j
                  ||j                  j                  j                        }|j                  ||j                  |j                  |j                  |      }|j                  r't        j                  |j!                         d       |S |j"                  rIt        j$                  j'                  dj)                  |j!                         |j*                               |S t,        j.                  j1                  |j*                  dd      }t3        j4                  |j6                        }t3        j8                  ||d	j)                  |j*                              }t        j                  |j!                         d       |S )
N)args
labels_cls)nfs_share_resourcesize_gibstorage_typeallowed_clients_dictslabelsz	NFS share)kindz@Create request issued for: [{}]
Check operation [{}] for status.z/baremetalsolution.projects.locations.operationsv2)
collectionapi_versionz&Waiting for operation [{}] to complete)CONCEPTS	nfs_shareParser   r
   ParseCreateArgsmessagesNfsShareLabelsValueCreateNfsSharer#   r$   allowed_clientdoner   CreatedResourceNameasync_statusPrintformatnamer   REGISTRYParseRelativeNamer   CloudOperationPollerNoResourcesoperation_serviceWaitFor)	selfr    r,   clientr&   op_refop_resourcepollerress	            r   Runz
Create.Run:   sc   ''--/I[F((foo66BBDF""$&&"11 # F {{	)..*=m{{	jj **0&1A17+>? m$$66D 7 K 33F4L4LMF
..077DFC 	({;Jr   N)__name__
__module____qualname____doc__staticmethodr   rG    r   r   r   r   ,   s    /( (r   r   N)rK   
__future__r   r   r   %googlecloudsdk.api_lib.bms.bms_clientr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.bmsr	   $googlecloudsdk.command_lib.util.argsr
   googlecloudsdk.corer   r   DETAILED_HELPReleaseTracksReleaseTrackALPHAGACreateCommandr   detailed_helprM   r   r   <module>r\      s    4 &  ' ; . ( 0 < # )		 D%%++T->->-A-AB+T + C+\ % r   