Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/f5/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyo

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
Z
ddlmZdd
lm
Z
ddlmZy�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZWn�ek
r�ddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZnXdefd��YZdefd��YZdefd��YZdefd��YZ de fd ��YZ!d!e fd"��YZ"d#e#fd$��YZ$d%e#fd&��YZ%d'e#fd(��YZ&d)�Z'e(d*kr�e'�ndS(+i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	certifiedtsupported_bys% 
---
module: bigip_profile_client_ssl
short_description: Manages client SSL profiles on a BIG-IP
description:
  - Manages client SSL profiles on a BIG-IP.
version_added: 2.5
options:
  name:
    description:
      - Specifies the name of the profile.
    type: str
    required: True
  parent:
    description:
      - The parent template of this monitor template. Once this value has
        been set, it cannot be changed. By default, this value is the C(clientssl)
        parent on the C(Common) partition.
    type: str
    default: /Common/clientssl
  ciphers:
    description:
      - Specifies the list of ciphers that the system supports. When creating a new
        profile, the default cipher list is provided by the parent profile.
    type: str
  cert_key_chain:
    description:
      - One or more certificates and keys to associate with the SSL profile. This
        option is always a list. The keys in the list dictate the details of the
        client/key/chain combination. Note that BIG-IPs can only have one of each
        type of each certificate/key type. This means that you can only have one
        RSA, one DSA, and one ECDSA per profile. If you attempt to assign two
        RSA, DSA, or ECDSA certificate/key combo, the device will reject this.
      - This list is a complex list that specifies a number of keys.
    suboptions:
      cert:
        description:
          - Specifies a cert name for use.
        type: str
        required: True
      key:
        description:
          - Contains a key name.
        type: str
        required: True
      chain:
        description:
          - Contains a certificate chain that is relevant to the certificate and key
            mentioned earlier.
          - This key is optional.
        type: str
      passphrase:
        description:
          - Contains the passphrase of the key file, should it require one.
          - Passphrases are encrypted on the remote BIG-IP device. Therefore, there is no way
            to compare them when updating a client SSL profile. Due to this, if you specify a
            passphrase, this module will always register a C(changed) event.
        type: str
    type: list
  partition:
    description:
      - Device partition to manage resources on.
    type: str
    default: Common
    version_added: 2.5
  options:
    description:
      - Options that the system uses for SSL processing in the form of a list. When
        creating a new profile, the list is provided by the parent profile.
      - When a C('') or C(none) value is provided all options for SSL processing are disabled.
    type: list
    choices:
      - netscape-reuse-cipher-change-bug
      - microsoft-big-sslv3-buffer
      - msie-sslv2-rsa-padding
      - ssleay-080-client-dh-bug
      - tls-d5-bug
      - tls-block-padding-bug
      - dont-insert-empty-fragments
      - no-ssl
      - no-dtls
      - no-session-resumption-on-renegotiation
      - no-tlsv1.1
      - no-tlsv1.2
      - no-tlsv1.3
      - single-dh-use
      - ephemeral-rsa
      - cipher-server-preference
      - tls-rollback-bug
      - no-sslv2
      - no-sslv3
      - no-tls
      - no-tlsv1
      - pkcs1-check-1
      - pkcs1-check-2
      - netscape-ca-dn-bug
      - netscape-demo-cipher-change-bug
      - "none"
    version_added: 2.7
  secure_renegotiation:
    description:
      - Specifies the method of secure renegotiations for SSL connections. When
        creating a new profile, the setting is provided by the parent profile.
      - When C(request) is set the system request secure renegotation of SSL
        connections.
      - C(require) is a default setting and when set the system permits initial SSL
        handshakes from clients but terminates renegotiations from unpatched clients.
      - The C(require-strict) setting the system requires strict renegotiation of SSL
        connections. In this mode the system refuses connections to insecure servers,
        and terminates existing SSL connections to insecure servers.
    type: str
    choices:
      - require
      - require-strict
      - request
    version_added: 2.7
  allow_non_ssl:
    description:
      - Enables or disables acceptance of non-SSL connections.
      - When creating a new profile, the setting is provided by the parent profile.
    type: bool
    version_added: 2.7
  server_name:
    description:
      - Specifies the fully qualified DNS hostname of the server used in Server Name Indication communications.
        When creating a new profile, the setting is provided by the parent profile.
      - The server name can also be a wildcard string containing the asterisk C(*) character.
    type: str
    version_added: 2.8
  sni_default:
    description:
      - Indicates that the system uses this profile as the default SSL profile when there is no match to the
        server name, or when the client provides no SNI extension support.
      - When creating a new profile, the setting is provided by the parent profile.
      - There can be only one SSL profile with this setting enabled.
    type: bool
    version_added: 2.8
  sni_require:
    description:
      - Requires that the network peers also provide SNI support, this setting only takes effect when C(sni_default) is
        set to C(true).
      - When creating a new profile, the setting is provided by the parent profile.
    type: bool
    version_added: 2.8
  strict_resume:
    description:
      - Enables or disables the resumption of SSL sessions after an unclean shutdown.
      - When creating a new profile, the setting is provided by the parent profile.
    type: bool
    version_added: 2.8
  client_certificate:
    description:
      - Specifies the way the system handles client certificates.
      - When C(ignore), specifies that the system ignores certificates from client
        systems.
      - When C(require), specifies that the system requires a client to present a
        valid certificate.
      - When C(request), specifies that the system requests a valid certificate from a
        client but always authenticate the client.
    type: str
    choices:
      - ignore
      - require
      - request
    version_added: 2.8
  client_auth_frequency:
    description:
      - Specifies the frequency of client authentication for an SSL session.
      - When C(once), specifies that the system authenticates the client once for an
        SSL session.
      - When C(always), specifies that the system authenticates the client once for an
        SSL session and also upon reuse of that session.
    type: str
    choices:
      - once
      - always
    version_added: 2.8
  renegotiation:
    description:
      - Enables or disables SSL renegotiation.
      - When creating a new profile, the setting is provided by the parent profile.
    type: bool
    version_added: 2.8
  retain_certificate:
    description:
      - When C(yes), client certificate is retained in SSL session.
    type: bool
    version_added: 2.8
  cert_auth_depth:
    description:
      - Specifies the maximum number of certificates to be traversed in a client
        certificate chain.
    type: int
    version_added: 2.8
  trusted_cert_authority:
    description:
      - Specifies a client CA that the system trusts.
    type: str
    version_added: 2.8
  advertised_cert_authority:
    description:
      - Specifies that the CAs that the system advertises to clients is being trusted
        by the profile.
    type: str
    version_added: 2.8
  client_auth_crl:
    description:
      - Specifies the name of a file containing a list of revoked client certificates.
    type: str
    version_added: 2.8
  allow_expired_crl:
    description:
      - Instructs the system to use the specified CRL file even if it has expired.
    type: bool
    version_added: 2.8
  state:
    description:
      - When C(present), ensures that the profile exists.
      - When C(absent), ensures the profile is removed.
    type: str
    choices:
      - present
      - absent
    default: present
    version_added: 2.5
notes:
  - Requires BIG-IP software version >= 12
extends_documentation_fragment: f5
author:
  - Tim Rupp (@caphrim007)
  - Wojciech Wypior (@wojtek0806)
s�
- name: Create client SSL profile
  bigip_profile_client_ssl:
    state: present
    name: my_profile
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Create client SSL profile with specific ciphers
  bigip_profile_client_ssl:
    state: present
    name: my_profile
    ciphers: "!SSLv3:!SSLv2:ECDHE+AES-GCM+SHA256:ECDHE-RSA-AES128-CBC-SHA"
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Create client SSL profile with specific SSL options
  bigip_profile_client_ssl:
    state: present
    name: my_profile
    options:
      - no-sslv2
      - no-sslv3
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Create client SSL profile require secure renegotiation
  bigip_profile_client_ssl:
    state: present
    name: my_profile
    secure_renegotiation: request
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Create a client SSL profile with a cert/key/chain setting
  bigip_profile_client_ssl:
    state: present
    name: my_profile
    cert_key_chain:
      - cert: bigip_ssl_cert1
        key: bigip_ssl_key1
        chain: bigip_ssl_cert1
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost
s
ciphers:
  description: The ciphers applied to the profile.
  returned: changed
  type: str
  sample: "!SSLv3:!SSLv2:ECDHE+AES-GCM+SHA256:ECDHE-RSA-AES128-CBC-SHA"
options:
  description: The list of options for SSL processing.
  returned: changed
  type: list
  sample: ['no-sslv2', 'no-sslv3']
secure_renegotiation:
  description: The method of secure SSL renegotiation.
  returned: changed
  type: str
  sample: request
allow_non_ssl:
  description: Acceptance of non-SSL connections.
  returned: changed
  type: bool
  sample: yes
strict_resume:
  description: Resumption of SSL sessions after an unclean shutdown.
  returned: changed
  type: bool
  sample: yes
renegotiation:
  description: Renegotiation of SSL sessions.
  returned: changed
  type: bool
  sample: yes
N(t
AnsibleModule(tenv_fallback(t	iteritems(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tfq_name(tf5_argument_spec(tflatten_boolean(ttransform_name(t
is_empty_listt
ParameterscB`sdeZidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d"6Zd#ddd	dddd
dddddddddd!d"gZd#dddddd
ddddddddddd d"gZd#ddddd
ddddddddddd d"gZed$��Zed%��ZRS(&tcert_key_chaintcertKeyChaintparenttdefaultsFromt
allow_non_ssltallowNonSsltsecure_renegotiationtsecureRenegotiationtoptionst	tmOptionstsni_defaultt
sniDefaulttsni_requiret
sniRequiretserver_namet
serverNametclient_certificatetpeerCertModetclient_auth_frequencytauthenticatetretain_certificatetretainCertificatetcert_auth_depthtauthenticateDepthttrusted_cert_authoritytcaFiletadvertised_cert_authoritytclientCertCatclient_auth_crltcrlFiletallow_expired_crltallowExpiredCrlt
strict_resumetstrictResumet
renegotiationtcipherscC`st|jd�S(NR((Rt_values(tself((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR(�scC`st|jd�S(NR2(RR8(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR2�s(	t__name__t
__module__tapi_maptapi_attributestreturnablest
updatablestpropertyR(R2(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRps�
			tModuleParameterscB`s�eZd�Zd�Zd�Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed	��Zed
��Z
ed��Zed��ZRS(
cC`s|jd�r|S|dSdS(Ns.key(tendswith(R9tname((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt
_key_filename�scC`s|jd�r|S|dSdS(Ns.crt(RB(R9RC((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt_cert_filename�scC`sHd|ks|ddkr%d}n|jt|j|d��}|S(Ntchaintnone(RERt	partition(R9titemtresult((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt_get_chain_value�s	cC`sK|jddkrdS|jddkr.dSt|j|jd�}|S(NRt	clientssls/Common/clientssl(R8tNoneRRH(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�sc
C`s_|jddkrdSg}x&|jdD]}d|krXd|krXtd��nd|krd|krtd��n|j|d�}|j|d�}|j|�}tjj|�}tjj	|�\}}i|d6t
|j|�d6t
|j|�d6|d6}	d|kr5|d|	d<n|j|	�q+Wt
|dd	��}|S(
NRtkeytcerts6When providing a 'key', you must also provide a 'cert's6When providing a 'cert', you must also provide a 'key'RCRFt
passphrasecS`s|dS(NRC((tx((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt<lambda>	s(R8RMRRDRERKtostpathtbasenametsplitextRRHtappendtsorted(
R9RJRIRNRORFRCtfilenametexttmp((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�s2
cC`s7t|jd�}|dkr#dS|dkr3dSdS(NRtyestenabledtdisabled(RR8RM(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRscC`s7t|jd�}|dkr#dS|dkr3dSdS(NR4R\R]R^(RR8RM(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR4scC`s7t|jd�}|dkr#dS|dkr3dSdS(NR6R\R]R^(RR8RM(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR6scC`s1|jd}|dkrdSt|�r-gS|S(NR(R8RMR(R9R((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR's
cC`s�t|jd�}|j}|dkr,dS|dtgkrh|dkrhtdj||���qhn|dkrxtStSdS(NR R\s>Cannot set 'sni_require' to {0} if 'sni_default' is set as {1}(RR8RRMtFalseRtformattTrue(R9trequiretdefault((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR 0s	cC`sK|jddkrdS|jddkr.dSt|j|jd�}|S(NR,tRG(Rdsnone(R8RMRRH(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR,?scC`sK|jddkrdS|jddkr.dSt|j|jd�}|S(NR.RdRG(Rdsnone(R8RMRRH(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR.HscC`sK|jddkrdS|jddkr.dSt|j|jd�}|S(NR0RdRG(Rdsnone(R8RMRRH(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR0Qs(R:R;RDRERKR@RRRR4R6RR R,R.R0(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRA�s										t
ApiParameterscB`sbeZed��Zed��Zed��Zed��Zed��Zed��ZRS(cC`s�|jddkrdSg}x�|jdD]y}td|d�}xPddddgD]<}||krz||||<nd|krWd|d<qWqWW|j|�q+Wt|dd��}|S(	NRRCRORNRFRPRGcS`s|dS(NRC((ty((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRRks(R8RMtdictRWRX(R9RJRIR[RQ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR\s
cC`s5|jd}|dkrdS|dkr-tStSdS(NRttrue(R8RMRaR_(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRns
cC`s5|jd}|dkrdS|dkr-tStSdS(NR Rh(R8RMRaR_(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR xs
cC`s"|jddkrdS|jdS(NR,RG(Nsnone(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR,�scC`s"|jddkrdS|jdS(NR.RG(Nsnone(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR.�scC`s"|jddkrdS|jdS(NR0RG(Nsnone(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR0�s(	R:R;R@RRR R,R.R0(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRe[s

tChangescB`seZd�ZRS(cC`sXi}y:x$|jD]}t||�||<qW|j|�}Wntk
rSnX|S(N(R>tgetattrt_filter_paramst	Exception(R9RJt
returnable((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt	to_return�s
(R:R;Rn(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRi�st
UsableChangescB`s&eZed��Zed��ZRS(cC`s2|jddkrdS|jddkr.dSdS(NR(R\Rhtfalse(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR(�s
cC`s2|jddkrdS|jddkr.dSdS(NR2R\R]R^(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR2�s
(R:R;R@R(R2(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRo�stReportableChangescB`sDeZed��Zed��Zed��Zed��ZRS(cC`s2|jddkrdS|jddkr.dSdS(NRR]R\tno(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�s
cC`s2|jddkrdS|jddkr.dSdS(NR4R]R\Rr(R8RM(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR4�s
cC`st|jd�S(NR((RR8(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR(�scC`st|jd�S(NR2(RR8(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR2�s(R:R;R@RR4R(R2(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRq�st
DifferencecB`s�eZdd�Zd�Zd�Zd�Zd�Zed��Z	ed��Z
ed��Zed��Zed	��Z
ed
��Zed��ZRS(
cC`s||_||_dS(N(twantthave(R9RtRu((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt__init__�s	cC`s?yt||�}|SWn!tk
r:|j|�}|SXdS(N(RjtAttributeErrort_Difference__default(R9tparamRJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pytcompare�s
cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(RjRtRuRw(R9Rytattr1tattr2((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt	__default�s
cC`s\g}xO|D]G}gt|�D]$\}}t|�t|�f^q }||7}q
W|S(N(R
tstr(R9titemsRJRQtktvR[((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pytto_tuple�s

7cC`sq|gkr|dkrdS|dkr,dS|j|�}|j|�}t|�jt|��ridS|SdS(N(RMR�tsettissubset(R9RtRutwth((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt_diff_complex_items�scC`s+|jj|jjkr'td��ndS(Ns$The parent profile cannot be changed(RtRRuR(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�scC`s"|j|jj|jj�}|S(N(R�RtRRu(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�scC`s|jjdkrdS|jjdks:|jjdkrIg|j_nt|jjt�s�|jjjd�r�|jjdd!jd�|j_q�|jjg|j_n|jjs�|jjr�gSdS|jjs�|jjSt|jj�t|jj�kr|jjSdS(NRGt{ii����t (	RtRRMRut
isinstancetlistt
startswithtsplitR�(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRs$%
$cC`s�|jjdkrdS|jjtkrv|jjtkrv|jjdkrvtdj|jj|jj���qvn|jj|jjkr�dS|jjS(Ns7Cannot set 'sni_require' to {0} if 'sni_default' is {1}(	RtR RMR_RuRRaRR`(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR s$!cC`sd|jjdkrdS|jjdkr>|jjdkr>dS|jj|jjkr`|jjSdS(NRd(RtR,RMRu(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR,%s$cC`sd|jjdkrdS|jjdkr>|jjdkr>dS|jj|jjkr`|jjSdS(NRd(RtR.RMRu(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR..s$cC`sd|jjdkrdS|jjdkr>|jjdkr>dS|jj|jjkr`|jjSdS(NRd(RtR0RMRu(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR07s$N(R:R;RMRvRzRxR�R�R@RRRR R,R.R0(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRs�s							t
ModuleManagercB`s�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZRS(cO`s^|jdd�|_t|jj�|_td|jj�|_t�|_	t
�|_dS(Ntmoduletparams(tgetRMR�RR�tclientRARtReRuRotchanges(R9targstkwargs((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRvBs
cC`sji}xBtjD]7}t|j|�dk	rt|j|�||<qqW|rftd|�|_ndS(NR�(RR>RjRtRMRoR�(R9tchangedRN((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt_set_changed_optionsIscC`s�t|j|j�}tj}t�}xX|D]P}|j|�}|dkrUq.q.t|t�rt|j	|�q.|||<q.W|r�t
d|�|_tSt
S(NR�(RsRtRuRR?RgRzRMR�tupdateRoR�RaR_(R9tdiffR?R�R�tchange((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt_update_changed_optionsQs		
cC`s|j�}|rtStS(N(R�RaR_(R9RJ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt
should_updatecscC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|j
|�|S(NtpresenttabsentR�R�(R_RgRttstateR�R�RqR�RnR�t_announce_deprecations(R9R�RJR�t
reportableR�((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pytexec_moduleis	

cC`sK|jdg�}x2|D]*}|jjjd|dd|d�qWdS(Nt
__warningstmsgtversion(tpopR�R�t	deprecate(R9RJtwarningstwarning((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�zs


cC`s$|j�r|j�S|j�SdS(N(texistsR�tcreate(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s
cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wnt
k
rwtSX|jdks�d|kr�|ddkr�tSt
S(Ns2https://{0}:{1}/mgmt/tm/ltm/profile/client-ssl/{2}tservertserver_porti�tcode(R`R�tproviderRRtRHRCtapiR�tjsont
ValueErrorR_RRa(R9turitresptresponse((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s


+cC`s=|j�|_|j�stS|jjr/tS|j�tS(N(tread_current_from_deviceRuR�R_R�t
check_modeRatupdate_on_device(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s
cC`s9|jjrtS|j�|j�r5td��ntS(NsFailed to delete the resource.(R�R�Ratremove_from_deviceR�R(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pytremove�s
cC`s(|j�|jjrtS|j�tS(N(R�R�R�Ratcreate_on_device(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s


cC`s�|jj�}|jj|d<|jj|d<dj|jjd|jjd�}|jjj	|d|�}y|j
�}Wn%tk
r�}tt
|���nXd|kr�|ddkr�d|kr�t|d��q�t|j��ndS(
NRCRHs/https://{0}:{1}/mgmt/tm/ltm/profile/client-ssl/R�R�R�R�i�i�i�tmessage(i�i�i�(R�t
api_paramsRtRCRHR`R�R�R�tpostR�R�RR~tcontent(R9R�R�R�R�RZ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s
cC`s�|jj�}dj|jjd|jjdt|jj|jj��}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|dd	kr�d|kr�t
|d��q�t
|j��ndS(
Ns2https://{0}:{1}/mgmt/tm/ltm/profile/client-ssl/{2}R�R�R�R�i�i�R�(i�i�(R�R�R`R�R�RRtRHRCR�tpatchR�R�RR~R�(R9R�R�R�R�RZ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s

cC`s|j�r|j�StS(N(R�R�R_(R9((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s
cC`sydj|jjd|jjdt|jj|jj��}|jjj|�}|j	dkrft
St|j��dS(Ns2https://{0}:{1}/mgmt/tm/ltm/profile/client-ssl/{2}R�R�i�(
R`R�R�RRtRHRCR�tdeleteRRaRR�(R9R�R�((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s

cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��ntd|�S(Ns2https://{0}:{1}/mgmt/tm/ltm/profile/client-ssl/{2}R�R�R�i�R�R�(R`R�R�RRtRHRCR�R�R�R�RR~R�Re(R9R�R�R�RZ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��s

(R:R;RvR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR�As 																tArgumentSpeccB`seZd�ZRS(c2C`s7t|_tdtdt�dtdd�dt�dtdd	�d
tddd
dg�dtddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*g�d+tdddtd,tdt�d-tdtd.t�d/t�d0td.t���d1tdd2dd2d3g�d4tdd	�d5tdd	�d6t�d7tddd8dg�d9tdd:d;g�d<tdd=�d>tdd	�d?t�d@t�dAt�dBtdd	�dCtdd	�dDtdd	�dEtddFdGtdHgf��}i|_|jjt�|jj|�dS(INRCtrequiredRRcs/Common/clientsslR7RttypetboolRtchoicesRbsrequire-stricttrequestRR�s netscape-reuse-cipher-change-bugsmicrosoft-big-sslv3-buffersmsie-sslv2-rsa-paddingsssleay-080-client-dh-bugs
tls-d5-bugstls-block-padding-bugsdont-insert-empty-fragmentssno-sslsno-dtlss&no-session-resumption-on-renegotiations
no-tlsv1.1s
no-tlsv1.2s
no-tlsv1.3s
single-dh-uses
ephemeral-rsascipher-server-preferencestls-rollback-bugsno-sslv2sno-sslv3sno-tlssno-tlsv1s
pkcs1-check-1s
pkcs1-check-2snetscape-ca-dn-bugsnetscape-demo-cipher-change-bugRGRRORNtno_logRFRPR�R�R�RR R"R$tignoreR&toncetalwaysR*tintR(R,R.R0R2R4R6RHtCommontfallbacktF5_PARTITION(Ratsupports_check_modeRgR	t
argument_specR�R(R9R�((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyRv�s�								(R:R;Rv(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyR��scC`s�t�}td|jd|j�}y,td|�}|j�}|j|�Wn)tk
r{}|jdt	|��nXdS(NR�R�R�R�(
R�RR�R�R�R�t	exit_jsonRt	fail_jsonR~(tspecR�tmmtresultsRZ((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pytmainLs		t__main__()t
__future__RRRR�t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRStansible.module_utils.basicRR	tansible.module_utils.sixR
t%library.module_utils.network.f5.bigipRt&library.module_utils.network.f5.commonRR
RRRRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commonRRAReRiRoRqtobjectRsR�R�R�R:(((sW/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_profile_client_ssl.pyt<module>sR


�=!
`�:t�R	

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]