
    
                     D   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 e	j                    e	j"                  e	j$                  j&                  e	j$                  j(                         G d de	j*                                      Zy)zEvaluate policy command.    )absolute_import)division)unicode_literals)apis)platform_policy)base)flags)parsing)util)Errorc                   &    e Zd ZdZed        Zd Zy)Evaluateab  Evaluate a Binary Authorization platform policy.

  ## EXAMPLES

  To evaluate a policy using its resource name:

    $ {command} projects/my-proj/platforms/gke/policies/my-policy
    --resource=$KUBERNETES_RESOURCE

  To evaluate the same policy using flags against an image:

    $ {command} my-policy --platform=gke --project=my-proj --image=$IMAGE
  c                 Z    t        j                  | d       t        j                  |        y )Nzto evaluate)r	   AddPlatformPolicyResourceArgAddEvaluationUnitArg)parsers    1lib/surface/container/binauthz/policy/evaluate.pyArgszEvaluate.Args/   s     	&&v}=	v&    c                    |j                   j                  j                         j                         }|j	                  d      d   }|dk7  rt        dj                  |            |j                  rFt        j                  |j                        }t        j                  d      j                  ||d      }nEt        j                  |j                        }t        j                  d      j                  ||d      }|j                   t#        j$                  d      j&                  j(                  j*                  k7  rd| _        |S )N/   gkezVFound unsupported platform '{}'. Currently only 'gke' platform policies are supported.v1F   )CONCEPTSpolicy_resource_nameParseRelativeNamesplitr   formatresourcer
   LoadResourceFiler   Clientr   r   GeneratePodSpecFromImagesimageverdictr   GetMessagesModuleEvaluateGkePolicyResponseVerdictValueValuesEnum
CONFORMANT	exit_code)selfargs
policy_refplatform_idresource_objresponsepod_specs          r   RunzEvaluate.Run4   s   3399;HHJJ""3'*Ke$$*F;$7 
 }}--dmm<l ''-66
lEh //

;h ''-66
hh 	!!

#
#$:$:::	F
 dnOr   N)__name__
__module____qualname____doc__staticmethodr   r4    r   r   r   r      s      ' 'r   r   N)r8   
__future__r   r   r   )googlecloudsdk.api_lib.container.binauthzr   r   googlecloudsdk.callioper   -googlecloudsdk.command_lib.container.binauthzr	   r
   r   googlecloudsdk.core.exceptionsr   DefaultUniverseOnlyReleaseTracksReleaseTrackBETAALPHACommandr   r:   r   r   <module>rF      s}     &  ' : E ( ? A > 0 D%%**D,=,=,C,CD2t|| 2 E 2r   