
                             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	  G d d	ej                        Z
 G d
 de
      Z	 ddZy)z6Flags for the `compute sole-tenancy` related commands.    )absolute_import)division)unicode_literals)encoding)
exceptions)yamlc                       e Zd ZdZy)Errorz,Exceptions for the sole tenancy util module.N__name__
__module____qualname____doc__     ;lib/googlecloudsdk/command_lib/compute/sole_tenancy/util.pyr
   r
      s    4r   r
   c                       e Zd ZdZy)NodeAffinityFileParseErrorz0Exception for invalid node affinity file format.Nr   r   r   r   r   r      s    8r   r   c                    |j                   j                  }g }| j                  d      rt        j                  | j
                        }|st        d      |D ]  }|st        d      	 t        j                  |j                   |      }|j                  st        d      |j                         r3t        dj                  |j                  |j                                     |j                  |        | j                  d      r8|j                  |j                  d|j                  | j                  g	             | j                  d
      r8|j                  |j                  d|j                  | j                   g	             |rI| j                  d      r8|j                  |j                  d|j                  | j"                  g	             |S # t        $ r}t        |      d}~ww xY w)zDReturns a list of ScheduleNodeAffinity messages populated from args.node_affinity_fileziNo node affinity labels specified. You must specify at least one label to create a sole tenancy instance.z"Empty list item in JSON/YAML file.Nz6A key must be specified for every node affinity label.z,Key [{0}] has invalid field formats for: {1}
node_groupz&compute.googleapis.com/node-group-name)keyoperatorvaluesnodez compute.googleapis.com/node-namenode_projectzcompute.googleapis.com/project)SchedulingNodeAffinityOperatorValueValuesEnumIsSpecifiedr   loadr   r   r   PyValueToMessage	Exceptionr   all_unrecognized_fieldsformatappendINr   r   r   )	argsmessagessupport_node_projectoperator_enumnode_affinitiesaffinities_yamlaffinitynode_affinityes	            r   %GetSchedulingNodeAffinityListFromArgsr0   "   s    11II-/	*+ii 7 78O&56 6 $()MNN, 11++X7 (DF 	F		.	.	0(:AA!!=#H#H#JLM 	M ]+! $" 
l#''8"%%OO$ 	( 	&'
 
f''2"%%II; 	( 	 !
 d..~>''0"%%%%& 	( 	()
 
;  ,(++,s   ) G	G.G))G.N)F)r   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.corer   r   r
   r   r0   r   r   r   <module>r4      sF    = &  ' % * $5J 59 9 @E0r   