%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/states/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/states/pbm.pyo

�
���^c@@s�dZddlmZddlZddlZddlZddlmZmZddl	m
Z
ddlmZyddl
mZeZWnek
r�eZnXeje�Zd�Zd	�Zd
�Zd�Zd�ZdS(
s�	
Manages VMware storage policies
(called pbm because the vCenter endpoint is /pbm)

Examples
========

Storage policy
--------------

.. code-block:: python

{
    "name": "salt_storage_policy"
    "description": "Managed by Salt. Random capability values.",
    "resource_type": "STORAGE",
    "subprofiles": [
        {
            "capabilities": [
                {
                    "setting": {
                        "type": "scalar",
                        "value": 2
                    },
                    "namespace": "VSAN",
                    "id": "hostFailuresToTolerate"
                },
                {
                    "setting": {
                        "type": "scalar",
                        "value": 2
                    },
                    "namespace": "VSAN",
                    "id": "stripeWidth"
                },
                {
                    "setting": {
                        "type": "scalar",
                        "value": true
                    },
                    "namespace": "VSAN",
                    "id": "forceProvisioning"
                },
                {
                    "setting": {
                        "type": "scalar",
                        "value": 50
                    },
                    "namespace": "VSAN",
                    "id": "proportionalCapacity"
                },
                {
                    "setting": {
                        "type": "scalar",
                        "value": 0
                    },
                    "namespace": "VSAN",
                    "id": "cacheReservation"
                }
            ],
            "name": "Rule-Set 1: VSAN",
            "force_provision": null
        }
    ],
}

Dependencies
============


- pyVmomi Python Module


pyVmomi
-------

PyVmomi can be installed via pip:

.. code-block:: bash

    pip install pyVmomi

.. note::

    Version 6.0 of pyVmomi has some problems with SSL error handling on certain
    versions of Python. If using version 6.0 of pyVmomi, Python 2.6,
    Python 2.7.9, or newer must be present. This is due to an upstream dependency
    in pyVmomi 6.0 that is not supported in Python versions 2.7 to 2.7.8. If the
    version of Python is not in the supported range, you will need to install an
    earlier version of pyVmomi. See `Issue #29537`_ for more information.

.. _Issue #29537: https://github.com/saltstack/salt/issues/29537
i(tabsolute_importN(tCommandExecutionErrortArgumentValueError(trecursive_diff(t	list_diff(tVmomiSupportcC@sKtstdfSdtjkrGtjdkrGtjdkrGtdfStS(	Ns,State module did not load: pyVmomi not founds	vim25/6.0iii	saState module did not load: Incompatible versions of Python and pyVmomi present. See Issue #29537.(ii(iii	(tHAS_PYVMOMItFalseRt
versionMaptsystversion_infotTrue(((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pyt__virtual__vs

cC@stS(s
    Init function
    (R(tlow((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pytmod_init�sc
C@s|tj|�}td�}tjdj|��tdj|��d}tjdj||��tjdj|��t}i|d6id6d)d	6d)d
6}g}i}t}d)}	y�td�}	td|	�}
tjd
j|
��|j	d�r�t
|d�dkr%td��n|dd}|
dd}t|d|j	dg�dd�}
|d=|j	d�r�|d=n|d=t
|t|��}n|
d=t
|
|�}|js�|
js�|jrxd|jks�d|jkrtd��nt}tdr*g}|jrQ|jg|jjd�D]}|^q;�n|jsc|
jr|jd�|jr�|jg|jjd�D]}dj|�^q��n|
jr|jd�|jg|
jjd�D]}dj|�^q��qn|jdj||dj|���n7tdd|
dd|d |	�|jd!j|��tj|d"�|j}|jg|d<|
j|ddd<|ddds�|ddd=n|dds�|d=n|j}|jg|d<|
j|ddd<|ddds.|ddd=n|ddsF|d=n|jii|d#6|d$6d%6�tj|�ntd&|	�Wn�tk
r}tjd'j|��|	r�td&|	�ntds�t|d	<n|ji|jd
6tdstnd)d	6�|SX|s=|jid(j|�d
6td	6�n;|jidj|�d
6|d6tdrmd)ntd	6�|S(*s�
    Configures the default VSAN policy on a vCenter.
    The state assumes there is only one default VSAN policy on a vCenter.

    policy
        Dict representation of a policy
    svsphere.get_proxy_typesproxy_type = {0}s{0}.get_detailstvcentersRunning {0} on vCenter '{1}'spolicy = {0}tnametchangestresulttcomments&vsphere.get_service_instance_via_proxys vsphere.list_default_vsan_policyscurrent_policy = {0}tsubprofilesisAMultiple sub_profiles ({0}) are not supported in the input policyitcapabilitiestkeytidtdescriptionsE'name' and 'description' of the default VSAN policy cannot be updatedttests
ssubprofiles:s  {0}s  capabilities:sCState {0} will update the default VSAN policy on vCenter '{1}':
{2}svsphere.update_storage_policytpolicytpolicy_dicttservice_instances0Updated the default VSAN policy in vCenter '{0}'i����tnewtoldtdefault_vsan_policysvsphere.disconnects	Error: {}sQDefault VSAN policy in vCenter '{0}' is correctly configured. Nothing to be done.N(tcopytdeepcopyt__salt__tlogttracetformattinfoRtNonetgettlenRRRtdicttdiffst
new_valuesRt__opts__textendtchanges_strtsplittappendtchanges_str2tjoint
old_valuestupdateRterrortstrerror(RRtpolicy_copyt
proxy_typeRtchanges_requiredtrettcommentsRtsitcurrent_policyt
subprofiletcurrent_subprofiletcapabilities_differtsubprofile_differt
policy_differtstr_changestchangeR,R4texc((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pytdefault_vsan_policy_configured�s�






	
	
		&
	/	
2


	
	
	



	cC@s{g}g}t}i|d6id6d,d6d,d6}tjdj|��d,}y/td�}tjdj|��tdj|��d	}tjd
j||��td�}tdd
g|D]}	|	d^q�d|�}
tjdj|
��xq|D]i}	tj|	�}g|
D] }|d|	dkr|^q}
|
rU|
dnd,}|s�t	}t
dr�|jdj||	d|��nStd|	d|	d|�|jdj|	d|��|ji|	d6d,d6�tj|d�qn|	jd�r�t
|	d�dkr2td��n|	dd}|dd}t|d|jdg�dd�}|	d=|jd�r�|d=n|d=t|t|��}n|d=t||	�}|js�|js�|jrRt	}t
drg}|jr1|jg|jjd�D]}|^q�n|jsC|jr�|jd�|jr�|jg|jjd�D]}d j|�^qr�n|jr�|jd!�|jg|jjd�D]}d j|�^q��q�n|jd"j||	d|dj|���n>td#d$|dd%|d|�|jd&j|	d|��tj|d�|j}|jg|d<|j|ddd<|ddds�|ddd=n|dds�|d=n|j}|jg|d<|j|ddd<|ddds|ddd=n|dds4|d=n|ji|d6|d6�q|jd'j|	d��qWtd(|�Wn�tk
r}tjd)j|��|r�td(|�nt
ds�t|d<n|ji|jd6t
ds�tnd,d6�|SX|s5|jid*j|�d6t	d6�nB|jidj|�d6i|d+6d6t
drld,nt	d6�|S(-s�
    Configures storage policies on a vCenter.

    policies
        List of dict representation of the required storage policies
    RRRRspolicies = {0}svsphere.get_proxy_typesproxy_type = {0}s{0}.get_detailsRs$Running state '{0}' on vCenter '{1}'s&vsphere.get_service_instance_via_proxysvsphere.list_storage_policiestpolicy_namesRscurrent_policies = {0}iRs?State {0} will create the storage policy '{1}' on vCenter '{2}'svsphere.create_storage_policys-Created storage policy '{0}' on vCenter '{1}'RRi����RisAMultiple sub_profiles ({0}) are not supported in the input policyRRRs
ssubprofiles:s  {0}s  capabilities:sDState {0} will update the storage policy '{1}' on vCenter '{2}':
{3}svsphere.update_storage_policyRRs0Updated the storage policy '{0}'in vCenter '{1}'s7Storage policy '{0}' is up to date. Nothing to be done.svsphere.disconnects
Error: {0}sPAll storage policy in vCenter '{0}' is correctly configured. Nothing to be done.tstorage_policiesN(RR'R#R$R%R"R&R R!RR-R1R(R)RRRR*R+R.R/R0R2R3R,R4RR6R5R7(RtpoliciesR<RR:R;R=R9RRtcurrent_policiesR8tptfiltered_policiesR>R?R@RARBRCRDRER,R4RF((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pytstorage_policies_configureds�





	

 


	
	
	&		
	/	
2


	
	



	c
C@s�tjdj|||��i}t}i|d6id6dd6dd6}d}y�td�}tdd|d	|�}|d|kr�d
j||�}nvt}ii|dd6|d6d
6}tdr�dj|||�}n/tdd|d|d	|�dj||�}tj|�Wnotk
r�}	tj	dj|	��|ratd|�n|j
i|	jd6tds�tndd6�|SX||d<|r�|j
i|d6tdr�dntd6�n
t|d<|S(s�
    Assigns a default storage policy to a datastore

    policy
        Name of storage policy

    datastore
        Name of datastore
    s4Running state {0} for policy '{1}', datastore '{2}'.RRRRs&vsphere.get_service_instance_via_proxys0vsphere.list_default_storage_policy_of_datastoret	datastoreRsPStorage policy '{0}' is already assigned to datastore '{1}'. Nothing to be done.RRtdefault_storage_policyRs>State {0} will assign storage policy '{1}' to datastore '{2}'.s2vsphere.assign_default_storage_policy_to_datastoreRs4Storage policy '{0} was assigned to datastore '{1}'.s	Error: {}svsphere.disconnectN(R#R&R%RR'R"RR-RR6R5R7(
RRRORR:R;R=texisting_policyRRF((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pytdefault_storage_policy_assigned�sV







	
(t__doc__t
__future__RtloggingR R	tsalt.exceptionsRRtsalt.utils.dictdifferRtsalt.utils.listdifferRtpyVmomiRRRtImportErrorRt	getLoggert__name__R#RRRGRNRR(((s3/usr/lib/python2.7/site-packages/salt/states/pbm.pyt<module>^s$


	
		�	�

Zerion Mini Shell 1.0