
    2                     4   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lmZ ddlmZ ddlmZ ddlmZ ddlmZ dZ ej6                  ej8                  j:                         G d dej<                               Z ej6                  ej8                  j@                         G d dej<                               Z! ej6                  ej8                  jD                         G d dej<                               Z#y)zACommand to create a node pool in an Anthos cluster on bare metal.    )absolute_import)division)unicode_literals)Optional)bare_metal_node_pools)
operations)base)parser_arguments)parser_extensions)cluster_flags)	constants)node_pool_flags)log)gkeonprem_v1_messagesz
To create a node pool named ``my-node-pool'' in a cluster named
``my-cluster'' managed in location ``us-west1'', run:

$ {command} my-node-pool --cluster=my-cluster --location=us-west1
c                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)Create6Create a node pool in an Anthos cluster on bare metal.EXAMPLESparserc                 h   | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        yz|Gathers command line arguments for the create command.

    Args:
      parser: The argparse parser to add the flag to.
    z	to createNdisplay_info	AddFormatbare_metal_constantsBARE_METAL_NODE_POOLS_FORMATr   AddNodePoolResourceArgr   AddValidationOnlyr	   
ASYNC_FLAGAddToParserAddNodePoolAnnotationsAddNodePoolDisplayNameAddNodePoolConfigr   s    5lib/surface/container/bare_metal/node_pools/create.pyArgszCreate.Args2   s}     !!99 **6;?##F+OO'**62**62%%f-    c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S aa  Runs the create command.

    Args:
      args: The arguments received from command line.

    Returns:
      The return value depends on the command arguments. If `--async` is
      specified, it returns an operation; otherwise, it returns the created
      resource. If `--validate-only` is specified, it returns None or any
      possible error.
    formatz)node pool in Anthos cluster on bare metalCONCEPTS	node_poolParseapisNodePoolsClientr   async_IsSpecifiedr   OPERATIONS_FORMATr*   r   OperationsClientWaitvalidate_onlyr   CreatedResourceselfargsnode_pool_refclient	operationoperation_clientoperation_responses          r%   Runz
Create.RunC   s     MM++113M!!#Fd#I{{4++H5//dk{{!224)..y9	

5
++
 r'   N__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr
   ArgumentInterceptorr&   r@    r'   r%   r   r   ,   s4    >y)-.#77 . . r'   r   c                   H    e Zd ZdZdeiZedej                  fd       Z	d Z
y)
CreateBetar   r   r   c                 h   | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        yr   r   r$   s    r%   r&   zCreateBeta.Argsk   s{     !!99;**6;?##F+OO'**62**62%%f-r'   c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r)   r+   r8   s          r%   r@   zCreateBeta.Run{   s     MM++113M!!#Fd#I{{4++H5//dk{{!224)..y9	-E++' r'   NrA   rJ   r'   r%   rL   rL   e   s4    >y)-.#77 . .r'   rL   c                       e Zd ZdZdeiZedej                  fd       Z	de
j                  deej                     fdZy)	CreateAlphar   r   r   c                    | j                   j                  t        j                         t	        j
                  | d       t        j                  |        t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        yr   )r   r   r   r   r   r   r   r   r	   r   r    r!   r"   r#   AddNodePoolVersionr$   s    r%   r&   zCreateAlpha.Args   s     !!99;**6;?##F+OO'**62**62%%f-&&v.r'   r:   returnc                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r)   r+   r8   s          r%   r@   zCreateAlpha.Run   s     MM++113M!!#Fd#I{{4++H5//dk{{!224)..y9	-E++' r'   N)rB   rC   rD   rE   rF   rG   rH   r
   rI   r&   r   	Namespacer   messages	Operationr@   rJ   r'   r%   rP   rP      sU    >y)-/#77 / / #--""#r'   rP   N)$rE   
__future__r   r   r   typingr   *googlecloudsdk.api_lib.container.gkeonpremr   r/   r   googlecloudsdk.callioper	   r
   r   /googlecloudsdk.command_lib.container.bare_metalr   r   r   r   .googlecloudsdk.command_lib.container.gkeonpremgooglecloudsdk.corer   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   rV   rF   ReleaseTracksReleaseTrackGACreateCommandr   BETArL   ALPHArP   rJ   r'   r%   <module>rf      s    H &  '  T A ( 4 5 I ] K D # `	 D%%(()5T 5 *5p D%%**+2## 2 ,2j D%%++,5$$$ 5 -5r'   