
    "                     v   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
K
Jr  \R                  " \R                  R                   \R                  R"                  \R                  R$                  5      \R&                   " S S\R(                  5      5       5       rSSS.\l        g)z0Command for creating packet mirroring resources.    )absolute_import)division)unicode_literals)base_classes)base)
exceptions)client)flags)utilsc                   >    \ rS rSrSrSr\S 5       rS rS r	S r
Srg)	Update   0Update a Compute Engine packet mirroring policy.Nc                     [         R                  R                  U5        [        R                  " 5       U l        U R
                  R                  USS9  [        R                  " U5        g )Nupdate)operation_type)r   
ASYNC_FLAGAddToParserr
   PacketMirroringArgumentPACKET_MIRRORING_ARGAddArgumentAddUpdateArgs)clsparsers     /lib/surface/compute/packet_mirrorings/update.pyArgsUpdate.Args%   sL    OO'$<<>C(((I	    c                     g)Nzcompute.packetMirrorings )selfs    r   
CollectionUpdate.Collection.   s    %r   c                    [         R                  " U R                  5       5      nUR                  R                  nU R
                  R                  XR                  5      n[        R                  " XBR                  UR                  S9nUR                  5       S   n/ nU R                  XFXrUU5        UR                  XaR                  =(       d    SUS9  g )N)compute_clientregistryr   F)is_asynccleared_fields)r   ComputeApiHolderReleaseTrackr	   messagesr   ResolveAsResource	resourcesPacketMirroringDescribe_UpdateResourcer   async_)r!   argsholderr+   pm_refpacket_mirroringresourcer(   s           r   Run
Update.Run1   s    **4+<+<+>?F}}%%H&&88?O?OPF--}}v7G7GI  ((*1-HN>4!# ;;/%  Pr   c           	      ^  ^^^^ UR                   bV  UR                   (       a   TR                  R                  R                  OTR                  R                  R                  Ul         UR
                  bS  TR                  [        R                  " TR                  TR                  UR
                  TR                  5      S9Ul        UR                  b  UR                  Ul        UR                  (       a,  / UR                  R                   S S & UR#                  S5        GOUR$                  (       a0  UR                  R                   R'                  UR$                  5        OUR(                  (       a$  UR(                  UR                  R                   S S & OUR*                  (       a  UR*                   H5  nXrR                  R                   ;  d  M  [,        R.                  " SU-  5      e   UR                  R                    Vs/ s H  nXR*                  ;  d  M  UPM     snUR                  R                   S S & UUU4S jn	UR0                  (       a,  / UR                  R2                  S S & UR#                  S5        GOUR4                  (       aG  UR                  R2                  R'                  UR4                   V
s/ s H
  o" U
5      PM     sn
5        GOBUR6                  (       a:  UR6                   V
s/ s H
  o" U
5      PM     sn
UR                  R2                  S S & OUR8                  (       a  UR8                   V
s/ s H:  n
[        R:                  " TR                  TR                  U
TR                  5      PM<     nn
U HH  m[=        U4S jUR                  R2                   5       S 5       b  M1  [,        R.                  " ST-  5      e   UR                  R2                   Vs/ s H  oR>                  U;  d  M  UPM     snUR                  l        UUU4S jnUR@                  (       a,  / UR                  RB                  S S & UR#                  S	5        GOURD                  (       aH  UR                  RB                  R'                  URD                   Vs/ s H  nU" U5      PM     sn5        GO8URF                  (       a;  URF                   Vs/ s H  nU" U5      PM     snUR                  RB                  S S & OURH                  (       a  URH                   Vs/ s H/  n[        RJ                  " TR                  UTR                  5      PM1     nnU HH  m[=        U4S
 jUR                  RB                   5       S 5       b  M1  [,        R.                  " ST-  5      e   UR                  RB                   Vs/ s H  oR>                  U;  d  M  UPM     snUR                  l!        URL                  (       a,  / URN                  RP                  S S & UR#                  S5        GOURR                  (       a0  URN                  RP                  R'                  URR                  5        OURT                  (       a$  URT                  URN                  RP                  S S & OURV                  (       a  URV                   H5  nXRN                  RP                  ;  d  M  [,        R.                  " SU-  5      e   URN                  RP                   Vs/ s H  nXRV                  ;  d  M  UPM     snURN                  RP                  S S & URX                  (       a,  / URN                  RZ                  S S & UR#                  S5        GOUR\                  (       a0  URN                  RZ                  R'                  UR\                  5        OUR^                  (       a$  UR^                  URN                  RZ                  S S & OUR`                  (       a  UR`                   H5  nXRN                  RZ                  ;  d  M  [,        R.                  " SU-  5      e   URN                  RZ                   Vs/ s H  nXR`                  ;  d  M  UPM     snURN                  RZ                  S S & URb                  (       aC  TRd                  Rg                  URb                  Ri                  5       5      URN                  l5        g g s  snf s  sn
f s  sn
f s  sn
f s  snf s  snf s  snf s  snf s  snf s  snf s  snf )NurlzmirroredResources.tagsz*Tag %s not found in this packet mirroring.c                    > TR                  [        R                  " TR                  TR                  U TR
                  5      S9$ Nr:   )-PacketMirroringMirroredResourceInfoSubnetInfor   ResolveSubnetURIprojectregionr-   )subnetr3   r+   r4   s    r   _MakeSubnetInfo/Update._UpdateResource.<locals>._MakeSubnetInfob   sA    CC$$V^^V]]F%+%5%57 D 8 8r   zmirroredResources.subnetworksc              3   J   >#    U  H  oR                   T:X  d  M  Uv   M     g 7fNr:   .0xr;   s     r   	<genexpr>)Update._UpdateResource.<locals>.<genexpr>y   s     O>1%%3,QQ>   #	#z-Subnet %s not found in this packet mirroring.c                 v   > TR                  [        R                  " TR                  U TR                  5      S9$ r=   )/PacketMirroringMirroredResourceInfoInstanceInfor   ResolveInstanceURIr@   r-   )instancer3   r+   r4   s    r   _MakeInstanceInfo1Update._UpdateResource.<locals>._MakeInstanceInfo   s;    EE&&v~~x'-'7'79 F : :r   zmirroredResources.instancesc              3   J   >#    U  H  oR                   T:X  d  M  Uv   M     g 7frF   r:   rG   s     r   rJ   rK      s     M<1QQ<rL   z/Instance %s not found in this packet mirroring.zfilter.IPProtocolsz/Protocol %s not found in this packet mirroring.zfilter.cidrRangesz1CIDR Range %s not found in this packet mirroring.)6enabler.   EnableValueValuesEnumTRUEFALSEcollector_ilb!PacketMirroringForwardingRuleInfor   ResolveForwardingRuleURIr@   rA   r-   collectorIlbdescriptionclear_mirrored_tagsmirroredResourcestagsappendadd_mirrored_tagsextendset_mirrored_tagsremove_mirrored_tagsr   InvalidArgumentExceptionclear_mirrored_subnetssubnetworksadd_mirrored_subnetsset_mirrored_subnetsremove_mirrored_subnetsr?   nextr;   clear_mirrored_instances	instancesadd_mirrored_instancesset_mirrored_instancesremove_mirrored_instancesrO   clear_filter_protocolsfilterIPProtocolsadd_filter_protocolsset_filter_protocolsremove_filter_protocolsclear_filter_cidr_ranges
cidrRangesadd_filter_cidr_rangesset_filter_cidr_rangesremove_filter_cidr_rangesfilter_directionPacketMirroringFilterDirectionValueValuesEnumupper	direction)r!   r4   r6   r(   r3   r2   r+   tagrI   rC   rB   urlsrQ   rP   protocolcidrr;   s    `  ` `         @r   r0   Update._UpdateResourceB   sp   {{AE(
"
"
8
8
=
=''==CC o %&HH,,V^^V]]D.;mV=M=MO I Ph #!--h+-h  %%a(45			  %%,,T-C-CD			+/+A+Ah  %%a(		"	"**#0055533:S@B B +
 //44,4/// 4,h  %%a(
8
 ""24h  ,,Q/;<		"	"  ,,33151J1J
K1Jv?6"1J
KM		"	"040I0I30If/&
!0I3h  ,,Q/ 
	%	% 44 5f 
 
 !'!1!134  
 #O22>>O 33=CE E	  //;;0;uuD?P!;0h  ,:
 $$02h  **1-9:		$	$  **115535h H
%53 	 
	$	$ 5515h H
%51h  **1- 
	'	' 888h 
"
"6>>8V=M=M
N8   #M22<<M 33?#EG G	  //99.9UU$=N!9.h  * ""')hoo!!!$01		"	"oo!!(()B)BC		"	"'+'@'@hoo!!!$		%	%22(??66633?(JL L 3
 __00(0222 0(hoo!!!$
 $$&(hoo  #/0		$	$oo  ''(C(CD		$	$&*&A&Ahoo  #		'	'00$11133ADHJ J 1
 __//'/444 /'hoo  #
 "*"@"@"Y"Y



%
%
'#)hoo O, L303
1
. ("'sa   c8c8c=:dAd.dd dd&6dd d d%+d%,d*d*r    )__name__
__module____qualname____firstlineno____doc__r   classmethodr   r"   r7   r0   __static_attributes__r    r   r   r   r      s0     9   &P"D)r   r   r   a2      Stop mirroring by tags, add subnet-1 as a mirrored subnet.

      $ {command} my-pm
          --region us-central1 --clear-mirrored-tags
          --add-mirrored-subnets subnet-1

    Change the load-balancer to send mirrored traffic to.

      $ {command} my-pm
          --region us-central1 --collector-ilb new-forwarding-rule

    Disable a Packet Mirroring policy.

      $ {command} my-pm
          --region us-central1 --no-enable

    Re-enable a disabled Packet Mirroring policy.

      $ {command} my-pm
          --region us-central1 --enable
    )DESCRIPTIONEXAMPLESN)r   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r   4googlecloudsdk.command_lib.compute.packet_mirroringsr	   r
   r   ReleaseTracksr*   ALPHABETAGAUniverseCompatibleUpdateCommandr   detailed_helpr    r   r   <module>r      s    7 &  ' 7 ( . G F F D%%++T->->-C-C%%((*f)T f) *f)V 	;		 r   