
    e                        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e	de	fd	Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(y())z9Base classes for commands for MembershipFeature resource.    )absolute_import)division)unicode_literals)encoding)basemembership_pathfeature_namec                    | j                   j                         }| d| |_        | j                   j                         |_        t        | |j                        |j                  _        |dk(  r't        | |j                        |j                  _        |S |dk(  r't        | |j                        |j                  _
        |S t        d|j                         )zDConverts a v1alpha MembershipFeature to a v2alpha MembershipFeature.z
/features/policycontrollerconfigmanagementz Unsupported membership feature: )messages_v2MembershipFeaturenameFeatureSpecspec_ToV2Originorigin_ToV2PolicyControllerSpecr   _ToV2ConfigManagementSpecr   
ValueError)selfr   r	   v1_membership_feature_specv2_membershipfeatures        Llib/googlecloudsdk/command_lib/container/fleet/membershipfeatures/convert.pyToV2MembershipFeaturer      s     ));;=!0 1L>J"..::<%0
&--&" ''1J(992. 
 ))1J(992. 
 
*+?+D+D*EF     c                 :   |y| j                   j                         }| j                         t        j                  j                  u s*| j                         t        j                  j
                  u rt        | |j                        |_        |j                  |_        t        | |j                        |_
        t        | |j                        |_        t        | |j                        |_        t        | |j                         |_        |j"                  |_        |S )zTConverts a v1alpha ConfigManagementMembershipSpec to a v2alpha ConfigManagementSpec.N)r   ConfigManagementSpecReleaseTrackr   ALPHABETA#_ToV2ConfigManagementBinauthzConfigbinauthzcluster_ToV2ConfigManagementConfigSync
configSync(_ToV2ConfigManagementHierarchyControllerhierarchyController._ToV2ConfigManagementManagementValueValuesEnum
management%_ToV2ConfigManagementPolicyControllerpolicyControllerversion)r   v1_configmanagement_specv2_configmanagement_specs      r   r   r   7   s   
 %!--BBD
T..444				 1 1 6 6	6(K&//)% &>%E%E"(G
$//)% /
(<< . 5
(33 % ,
(99 +
 &>%E%E"	!!r   c                 b    |y| j                   j                         }|j                  |_        |S )z^Converts a v1alpha ConfigManagementBinauthzConfig to a v2alpha ConfigManagementBinauthzConfig.N)r   ConfigManagementBinauthzConfigenabled)r   v1_binauthz_configv2_binauthz_configs      r   r"   r"   _   s7    
 ''FFH199	r   c                    |y| j                   j                         }|j                  |_        t        | |j                        |_        |j
                  D cg c]  }t        | |       c}|_        |j                  |_        t        | |j                        |_	        |j                  |_
        |j                  |_        |j                  |_        |S c c}w )zVConverts a v1alpha ConfigManagementConfigSync to a v2alpha ConfigManagementConfigSync.N)r   ConfigManagementConfigSyncr2   _ToV2ConfigManagementGitConfiggitdeploymentOverrides'_ToV2ConfigManagementDeploymentOverridemetricsGcpServiceAccountEmail_ToV2ConfigManagementOciConfigocipreventDriftsourceFormatstopSyncing)r   v1_configsyncv2_configsyncdeployment_overrides       r   r%   r%   l   s    
 ""==?-'//-4T=;L;LM- "/!B!B'!B
 .d4GH!B'-#
 11 - 5T=;L;LM-,99-,99-+77-	's   Cc                     |y| j                   j                         }|j                  |_        |j                  |_        |j                  D cg c]  }t        | |       c}|_        |S c c}w )zfConverts a v1alpha ConfigManagementDeploymentOverride to a v2alpha ConfigManagementDeploymentOverride.N)r   "ConfigManagementDeploymentOverridedeploymentNamedeploymentNamespace
containers&_ToV2ConfigManagementContainerOverride)r   v1_deployment_overridev2_deployment_override	containers       r   r:   r:      s    
 #++NNP*@*O*O'00 ,
 .88'8) -T9=8'# 
 	's   A+c                     |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        |S )zdConverts a v1alpha ConfigManagementContainerOverride to a v2alpha ConfigManagementContainerOverride.N)r   !ConfigManagementContainerOverridecontainerName
cpuRequestmemoryRequestcpuLimitmemoryLimit)r   v1_containerv2_containers      r   rI   rI      sm    
 !!CCE,+99,(33,+99,&//,)55,	r   c                 P   |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_	        |S )zTConverts a v1alpha ConfigManagementGitConfig to a v2alpha ConfigManagementGitConfig.N)
r   ConfigManagementGitConfiggcpServiceAccountEmail
httpsProxy	policyDir
secretType
syncBranchsyncReposyncRevsyncWaitSecs)r   v1_git_configv2_git_configs      r   r7   r7      s    
 ""<<>-)6)M)M-&*55-)33-*55-*55-(11-'//-,99-	r   c                     |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        |S )zTConverts a v1alpha ConfigManagementOciConfig to a v2alpha ConfigManagementOciConfig.N)r   ConfigManagementOciConfigrX   rZ   r[   r]   r_   )r   v1_oci_configv2_oci_configs      r   r<   r<      sm    
 ""<<>-)6)M)M-&)33-*55-(11-,99-	r   c                     |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |S )zhConverts a v1alpha ConfigManagementHierarchyController to a v2alpha ConfigManagementHierarchyController.N)r   )ConfigManagementHierarchyControllerConfigenableHierarchicalResourceQuotaenablePodTreeLabelsr2   )r   v1_hierarchy_controllerv2_hierarchy_controllers      r   r'   r'      sc    
 $ @@B  == 9 11 - %<$C$C!	  r   c                 (   |y|| j                   j                  j                  j                  u r*| j                  j
                  j                  j                  S || j                   j                  j                  j                  u r*| j                  j
                  j                  j                  S || j                   j                  j                  j                  u r*| j                  j
                  j                  j                  S t        d|       )zConverts a v1alpha ConfigManagementMembershipSpec.ManagementValueValuesEnum to a v2alpha ConfigManagementManagementValueValuesEnum.NzUnsupported management value: )	messagesConfigManagementMembershipSpecManagementValueValuesEnumMANAGEMENT_UNSPECIFIEDr   r   MANAGEMENT_AUTOMATICMANAGEMENT_MANUALr   )r   v1_managements     r   r)   r)      s    
  		5	5	O	O	f	fg 	--GG^^ 		5	5	O	O	d	de 	--GG\\ 		5	5	O	O	a	ab 	--GGYY 5m_E
FFr   c                    |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |j
                  |_        t        | |j                        |_        |j                  |_        |j                  |_	        |j                  |_
        |j                  |_        |S )zbConverts a v1alpha ConfigManagementPolicyController to a v2alpha ConfigManagementPolicyController.N)r    ConfigManagementPolicyControllerauditIntervalSecondsr2   exemptableNamespaceslogDeniesEnabled/_ToV2ConfigManagementPolicyControllerMonitoring
monitoringmutationEnabledreferentialRulesEnabledtemplateLibraryInstalled
updateTime)r   v1_policycontrollerv2_policycontrollers      r   r+   r+     s    
  ((IIK.. * !4 ; ;.. * *=)M)M&5
#..  
 )<(K(K%11 - 22 . $7#A#A 	r   c                     |y| j                   j                         }|j                  D cg c]  }t        | |       c}|_        |S c c}w )zvConverts a v1alpha ConfigManagementPolicyControllerMonitoring to a v2alpha ConfigManagementPolicyControllerMonitoring.N)r   *ConfigManagementPolicyControllerMonitoringbackendsO_ToV2ConfigManagementPolicyControllerMonitoringBackendsValueListEntryValuesEnumr   v1_monitoringv2_monitoringbackends       r   ry   ry   $  se    
 ""MMO-
 #++	 ,' V
 ,	- 
   A	c                 (   |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )zConverts a v1alpha ConfigManagementPolicyControllerMonitoring.BackendsValueListEntryValuesEnum to a v2alpha ConfigManagementPolicyControllerMonitoring.BackendsValueListEntryValuesEnum.N Unsupported monitoring backend: )rm   r    BackendsValueListEntryValuesEnumMONITORING_BACKEND_UNSPECIFIEDr   
PROMETHEUSCLOUD_MONITORINGr   r   v1_monitoring_backends     r   r   r   6  s   
 " 		A	A	b	b  
B  
BB 	CCdd  	D  	D 		A	A	b	b	m	mn 	CCddoo 		A	A	b	b	s	st 	CCdduu 78M7NO
PPr   c                 v    |y| j                   j                         }t        | |j                        |_        |S )z.Converts a v1alpha Origin to a v2alpha Origin.N)r   Origin_ToV2OriginTypeValueValuesEnumtype)r   	v1_origin	v2_origins      r   r   r   W  s9    
 %%')1$	G).	r   c                    |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )zTConverts a v1alpha OriginTypeValueValuesEnum to a v2alpha OriginTypeValueValuesEnum.NzUnsupported origin type: )	rm   r   TypeValueValuesEnumTYPE_UNSPECIFIEDr   FLEETFLEET_OUT_OF_SYNCUSERr   )r   v1_origin_types     r   r   r   d  s9   
  				1	1	B	BC 	33DD 				1	1	7	78 	3399 				1	1	C	CD 	33EE 				1	1	6	67 	3388 00@A
BBr   c                     |y| j                   j                         }|j                  |_        t        | |j                        |_        |S )zJConverts a v1alpha PolicyControllerSpec to a v2alpha PolicyControllerSpec.N)r   PolicyControllerSpecr-   _ToV2PolicyControllerHubConfigpolicyControllerHubConfig)r   v1_policycontroller_specv2_policycontroller_specs      r   r   r     sU    
 %!--BBD%=%E%E"$
(BB 4
 
"!r   c                    |y| j                   j                         }t        | |j                        |_        |j                  |_        |j
                  |_        |j                  |_        |j                  |_        |j                  |_        t        | |j                        |_
        t        | |j                        |_        |j                  |_        t        | |j                        |_        |S )zTConverts a v1alpha PolicyControllerHubConfig to a v2alpha PolicyControllerHubConfig.N)r   PolicyControllerHubConfig_ToV2InstallSpecValueValuesEnuminstallSpecrv   rw   r|   rx   r{   _ToV2Monitoringrz   _ToV2PolicyContentSpecpolicyContentconstraintViolationLimit_ToV2DeploymentConfigsdeploymentConfigs)r   v1_policycontroller_hub_configv2_policycontroller_hub_configs      r   r   r     s   
 $+#'#3#3#M#M#O /N
*660 , %99 !5 %99 !5 %<< !8 %55 !1 %44 !0 />
*55/ + 2H
*882 . %== !9 6L
*<<6 2 
('r   c                    |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )zVConverts a v1alpha InstallSpecValueValuesEnum to a v2alpha InstallSpecValueValuesEnum.Nz Unsupported install spec value: )
rm   r   InstallSpecValueValuesEnumINSTALL_SPEC_UNSPECIFIEDr   INSTALL_SPEC_NOT_INSTALLEDINSTALL_SPEC_ENABLEDINSTALL_SPEC_SUSPENDEDINSTALL_SPEC_DETACHEDr   )r   v1_install_spec_values     r   r   r     s   
 " 		0	0	K	K	d	de 	22MMff 		0	0	K	K	f	fg 	22MMhh 		0	0	K	K	`	`a 	22MMbb 		0	0	K	K	b	bc 	22MMdd 		0	0	K	K	a	ab 	22MMcc 78M7NO
PPr   c                     |y| j                   j                         }|j                  D cg c]  }t        | |       c}|_        |S c c}w )zbConverts a v1alpha PolicyControllerMonitoringConfig to a v2alpha PolicyControllerMonitoringConfig.N)r    PolicyControllerMonitoringConfigr   _ToV2MonitoringBackendr   s       r   r   r     s]    
 ""CCE- #+++' T7++- 
	r   c                 (   |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )zDConverts a v1alpha MonitoringBackend to a v2alpha MonitoringBackend.Nr   )rm   r   r   r   r   r   r   r   r   s     r   r   r     s    
 " 		7	7	X	X	w	wx 	99ZZyy 		7	7	X	X	c	cd 	99ZZee 		7	7	X	X	i	ij 	99ZZkk 78M7NO
PPr   c                     | j                   j                         }||S t        | |j                        |_        t	        | |j
                        |_        |S )zdConverts a v1alpha PolicyControllerPolicyContentSpec to a v2alpha PolicyControllerPolicyContentSpec.)r   !PolicyControllerPolicyContentSpec_ToV2Bundlesbundles_ToV2TemplateLibraryConfigtemplateLibrary)r   v1_policy_content_specv2_policy_content_specs      r   r   r   )  sd    
  ++MMO#!!#/
"**$  ,F
"22,( 
 r   c                     |yi }|j                   D ]%  }t        | |j                        ||j                  <   ' t	        j
                  || j                  j                  j                  d      S )z0Converts a v1alpha Bundles to a v2alpha Bundles.NT
sort_items)	additionalProperties_ToV2BundleInstallSpecvaluekeyr   DictToAdditionalPropertyMessager   r   BundlesValue)r   
v1_bundlesv2_bundles_dictbundles       r   r   r   ;  sk    
 ///f"8v||"LOFJJ 0 
	1	1
88EE
 r   c                 b    |y| j                   j                         }|j                  |_        |S )zDConverts a v1alpha BundleInstallSpec to a v2alpha BundleInstallSpec.N)r   !PolicyControllerBundleInstallSpecexemptedNamespaces)r   v1_bundle_install_specv2_bundle_install_specs      r   r   r   N  s;    
 #++MMO// + 
 r   c                 v    |y| j                   j                         }t        | |j                        |_        |S )zLConverts a v1alpha TemplateLibraryConfig to a v2alpha TemplateLibraryConfig.N)r   %PolicyControllerTemplateLibraryConfig _ToV2InstallationValueValuesEnuminstallation)r   v1_template_library_configv2_template_library_configs      r   r   r   ]  sK    
  ' <<>  -M
&33-) 
$#r   c                 (   |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )zXConverts a v1alpha InstallationValueValuesEnum to a v2alpha InstallationValueValuesEnum.Nz Unsupported installation value: )rm   r   InstallationValueValuesEnumINSTALLATION_UNSPECIFIEDr   NOT_INSTALLEDALLr   )r   v1_installation_values     r   r   r   n  s    
 " 		<	<	X	X	q	qr 	>>ZZss 		<	<	X	X	f	fg 	>>ZZhh 		<	<	X	X	\	\] 	>>ZZ^^ 78M7NO
PPr   c                     |yi }|j                   D ]%  }t        | |j                        ||j                  <   ' t	        j
                  || j                  j                  j                  d      S )zDConverts a v1alpha DeploymentConfigs to a v2alpha DeploymentConfigs.NTr   )	r   %_ToV2PolicyControllerDeploymentConfigr   r   r   r   r   r   DeploymentConfigsValue)r   v1_deployment_configsv2_deployment_configs_dict
deployments       r   r   r     sq    
 "!)>>j-dJ4D4DE z~~. ?
 
	1	1 
00GG
 r   c                 L   |y| j                   j                         }|j                  |_        t        | |j                        |_        |j
                  |_        |j                  D cg c]  }t        | |       c}|_        t        | |j                        |_	        |S c c}w )zbConverts a v1alpha PolicyControllerDeploymentConfig to a v2alpha PolicyControllerDeploymentConfig.N)
r   0PolicyControllerPolicyControllerDeploymentConfigreplicaCount)_ToV2PolicyControllerResourceRequirementscontainerResourcespodAntiAffinitypodTolerations_ToV2PolicyControllerToleration_ToV2PodAffinitypodAffinity)r   v1_deployment_configv2_deployment_configpod_tolerationss       r   r   r     s    
 ! GGI  ';&G&G#/
$77 )
 *>)M)M& 2@@)@/ &dO<@)% &6
 ,,&" 
)s   )B!c                     |y| j                   j                         }t        | |j                        |_        t        | |j                        |_        |S )zjConverts a v1alpha PolicyControllerResourceRequirements to a v2alpha PolicyControllerResourceRequirements.N)r   $PolicyControllerResourceRequirements!_ToV2PolicyControllerResourceListlimitsrequests)r   v1_resource_requirementsv2_resource_requirementss      r   r   r     sh    
 % ;;=  %F
$++%! 'H
$--'# 
"!r   c                     |y| j                   j                         }|j                  |_        |j                  |_        |S )zZConverts a v1alpha PolicyControllerResourceList to a v2alpha PolicyControllerResourceList.N)r   PolicyControllerResourceListcpumemory)r   v1_resource_listv2_resource_lists      r   r   r     sF    
 %%BBD)--,33	r   c                 (   |y|| j                   j                  j                  j                  u r*| j                  j                  j                  j                  S || j                   j                  j                  j
                  u r*| j                  j                  j                  j
                  S || j                   j                  j                  j                  u r*| j                  j                  j                  j                  S t        d|       )z8Converts a v1alpha PodAffinity to a v2alpha PodAffinity.NzUnsupported pod affinity: )rm   r   PodAffinityValueValuesEnumAFFINITY_UNSPECIFIEDr   NO_AFFINITYANTI_AFFINITYr   )r   v1_pod_affinitys     r   r   r     s    
  		G	G	b	b	w	wx 	IIddyy 		G	G	b	b	n	no 	IIddpp 		G	G	b	b	p	pq 	IIddrr 1/1BC
DDr   c                     |y| j                   j                         }|j                  |_        |j                  |_        |j                  |_        |j
                  |_        |S )zVConverts a v1alpha PolicyControllerToleration to a v2alpha PolicyControllerToleration.N)r   PolicyControllerTolerationr   operatorr   effect)r   v1_tolerationv2_tolerations      r   r   r     s_    
 ""==?-#''-(11-%++-&---	r   N))__doc__
__future__r   r   r   apitools.base.pyr   googlecloudsdk.callioper   strr   r   r"   r%   r:   rI   r7   r<   r'   r)   r+   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r     s    @ '  ' % ( :%"P
2 & ("!*GBB$QB
%CP"$((V,Q^ QB $& $"QB*8"(EBr   