Current File : //usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyc
�
.�P`c@smddlmZmZmZmZmZmZmZmZm	Z	ddl
mZdeefd��YZdS(i����(	t	uri_parsetVERSIONtCapabilitiestINfstIStorageAreaNetworktsearch_propertytClienttLsmErrortErrorNumber(tSimArrayt	SimPlugincBsJeZdZd�Zdd�Zdd�Zdd�Zdd�Zed��Z	dd�Z
dd	�Zdd
�Zdd�Z
dd�Zdd
�ZdAdAdd�ZdAdAdd�ZdAdAdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdAdAdd�Zdd�Zdd�Zdd�Zdd�Z dd�Z!dd�Z"dd �Z#dd!�Z$dd"�Z%dd#�Z&dd$�Z'dAdAdd%�Z(dd&�Z)dd'�Z*dd(�Z+dAdd)�Z,dAdd*�Z-dd+�Z.dd,�Z/dd-�Z0e1dd.�Z2dd/�Z3dd0�Z4dd1�Z5dAdAdd2�Z6dd3�Z7dd4�Z8dAdAdd5�Z9dd6�Z:dd7�Z;dd8�Z<dd9�Z=dd:�Z>dd;�Z?dAdAe@jAd<�ZBe@jAd=�ZCe@jAd>�ZDe@jAd?�ZEe@jAd@�ZFRS(BsU
    Simple class that implements enough to allow the framework to be exercised.
    cCsd|_d|_d|_dS(N(tNoneturitpasswordt	sim_array(tself((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt__init__s		icCs�||_||_t|�}d|krkd|dkrk|dddk	rkt|dd|�|_ntd|�|_dS(Nt
parameterst	statefile(RR
RRR	R(RRR
ttimeouttflagstqp((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pytplugin_register"s		cCsdS(N((RR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pytplugin_unregister1scCs|jj||�S(N(Rt
job_status(Rtjob_idR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR4scCs|jj||�S(N(Rtjob_free(RRR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR7scCs|S(s
        Fake converter. SimArray already do SimData to LSM data convert.
        We move data convert to SimArray to make this sample plugin looks
        clean.
        But in real world, data converting is often handled by plugin itself
        rather than array.
        ((tsim_data((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt_sim_data_2_lsm:s	cCs|jj||�dS(N(Rttime_out_setR(RtmsR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyREscCs|jj|�S(N(Rttime_out_get(RR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRIscCs	t�}|j�|jtjtj�|jtjtj�|jtjtj�|jtjtj�|jtjtj�|jtj	tj�|jtj
tj�|jtjtj�|jtjtj�|jtj
tj�|jtjtj�|S(N(Rt
enable_alltsettPOOLS_QUICK_SEARCHtUNSUPPORTEDtVOLUMES_QUICK_SEARCHtDISKS_QUICK_SEARCHtFS_QUICK_SEARCHtACCESS_GROUPS_QUICK_SEARCHtNFS_EXPORTS_QUICK_SEARCHtTARGET_PORTS_QUICK_SEARCHt.VOLUME_PHYSICAL_DISK_CACHE_UPDATE_SYSTEM_LEVELt,VOLUME_WRITE_CACHE_POLICY_UPDATE_IMPACT_READt0VOLUME_WRITE_CACHE_POLICY_UPDATE_WB_IMPACT_OTHERt,VOLUME_READ_CACHE_POLICY_UPDATE_IMPACT_WRITE(RtsystemRtrc((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pytcapabilitiesLs(	






cCs
dtfS(NsStorage simulator(R(RR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pytplugin_infobscCs/|jj�}g|D]}tj|�^qS(N(RtsystemsR
R(RRtsim_syssts((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR2escCs|jj||�S(N(Rtsystem_read_cache_pct_update(RR.tread_pctR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR5iscCs>|jj|�}tg|D]}tj|�^q||�S(N(RtpoolsRR
R(Rt
search_keytsearch_valueRt	sim_poolstp((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR7lscCs;|jj�}tg|D]}tj|�^q||�S(N(RtvolumesRR
R(RR8R9Rtsim_volstv((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR<rscCs;|jj�}tg|D]}tj|�^q||�S(N(RtdisksRR
R(RR8R9Rt	sim_diskstd((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR?xscCs.|jj|j||||�}tj|�S(N(Rt
volume_createtidR
R(Rtpooltvolume_namet
size_bytestprovisioningRtsim_vol((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRB~s	cCs|jj|j|�S(N(Rt
volume_deleteRC(RtvolumeR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRI�scCs(|jj|j||�}tj|�S(N(Rt
volume_resizeRCR
R(RRJtnew_size_bytesRRH((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRK�s	cCs@|dk	r|j}n	|j}|jj|||j||�S(N(RRCtpool_idRtvolume_replicate(RRDtrep_typet
volume_srctnameRtdst_pool_id((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRN�s
		cCs|jj|j|�S(N(Rt!volume_replicate_range_block_sizeRC(RR.R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRS�s	cCs"|jj||j|j||�S(N(Rtvolume_replicate_rangeRC(RRORPtvolume_desttrangesR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRT�s	cCs|jj|j|�S(N(Rt
volume_enableRC(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRW�scCs|jj|j|�S(N(Rtvolume_disableRC(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRX�scCs;|jj�}tg|D]}tj|�^q||�S(N(RtagsRR
R(RR8R9Rtsim_agsta((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt
access_groups�scCs.|jj||||j|�}tj|�S(N(Rtaccess_group_createRCR
R(RRQtinit_idt	init_typeR.Rtsim_ag((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR]�s	cCs|jj|j|�S(N(Rtaccess_group_deleteRC(Rtaccess_groupR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRa�scCs+|jj|j|||�}tj|�S(N(Rtaccess_group_initiator_addRCR
R(RRbR^R_RR`((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRc�s	cCs+|jj|j|||�}tj|�S(N(Rtaccess_group_initiator_deleteRCR
R(RRbR^R_RR`((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRd�s	cCs|jj|j|j|�S(N(Rtvolume_maskRC(RRbRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRe�s	cCs|jj|j|j|�S(N(Rt
volume_unmaskRC(RRbRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRf�s	cCs8|jj|j|�}g|D]}tj|�^qS(N(Rt"volumes_accessible_by_access_groupRCR
R(RRbRR=R>((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRg�s	cCs8|jj|j|�}g|D]}tj|�^qS(N(Rtaccess_groups_granted_to_volumeRCR
R(RRJRR=R>((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRh�s	c
CsX|r9|r9|dks$|dkr9ttjd��n|jj||||||�S(Ns?out_user and out_password only supported if inbound is supplied(RRRtINVALID_ARGUMENTRtiscsi_chap_auth(RR^tin_usertin_passwordtout_usertout_passwordR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRj�s		cCs|jj|j|�S(N(Rtvolume_child_dependencyRC(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRo�scCs|jj|j|�S(N(Rtvolume_child_dependency_rmRC(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRp�scCs;|jj�}tg|D]}tj|�^q||�S(N(RtfsRR
R(RR8R9Rtsim_fsstf((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRq�scCs(|jj|j||�}tj|�S(N(Rt	fs_createRCR
R(RRDRQRFRtsim_fs((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRt�scCs|jj|j|�S(N(Rt	fs_deleteRC(RRqR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRv�scCs(|jj|j||�}tj|�S(N(Rt	fs_resizeRCR
R(RRqRLRRu((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRw�s	cCsG|dkr(|jj|j|d|�S|jj|j||j|�S(N(RRtfs_cloneRC(Rtsrc_fstdest_fs_nametsnapshotR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRx�s
		cCsM|dkr+|jj|j||d|�S|jj|j|||j|�S(N(RRt
fs_file_cloneRC(RRqt
src_file_nametdest_file_nameR{R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR|�s
		cCs8|jj|j|�}g|D]}tj|�^qS(N(Rtfs_snapshotsRCR
R(RRqRt	sim_snapsR4((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyRscCs|jj|j||�S(N(Rtfs_snapshot_createRC(RRqt
snapshot_nameR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�s	cCs|jj|j|j|�S(N(Rtfs_snapshot_deleteRC(RRqR{R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�
s	cCs%|jj|j|j||||�S(N(Rtfs_snapshot_restoreRC(RRqR{tfilest
restore_filest	all_filesR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�s	cCs|jj|j||�S(N(Rtfs_child_dependencyRC(RRqR�R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�scCs|jj|j||�S(N(Rtfs_child_dependency_rmRC(RRqR�R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�scCsdgS(Ntstandard((RR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pytexport_authscCs>|jj|�}tg|D]}tj|�^q||�S(N(RtexportsRR
R(RR8R9Rtsim_expste((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�scCs=|jj|||||||||	dd�	}tj|�S(NRi(Rt	fs_exportR
R(Rtfs_idtexport_patht	root_listtrw_listtro_listtanon_uidtanon_gidt	auth_typetoptionsRtsim_exp((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt	export_fs#s	cCs|jj|j|�S(N(Rtfs_unexportRC(RtexportR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt
export_remove*scCs;|jj�}tg|D]}tj|�^q||�S(N(Rttarget_portsRR
R(RR8R9Rtsim_tgtstt((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�-scCs|jj|�S(N(Rtvolume_raid_info(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�3scCs|jj|�S(N(Rtpool_member_info(RRDR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�6scCs|jj|�S(N(Rtvolume_raid_create_cap_get(RR.R((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�9scCs|jj||||�S(N(Rtvolume_raid_create(RRQt	raid_typeR?t
strip_sizeR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�<s	cCs|jj|�S(N(Rtvolume_ident_led_on(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�AscCs|jj|�S(N(Rtvolume_ident_led_off(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�DscCs;|jj�}tg|D]}tj|�^q||�S(N(Rt	batteriesRR
R(RR8R9Rt
sim_batteriestb((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�GscCs|jj|�S(N(Rtvolume_cache_info(RRJR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�NscCs|jj||�S(N(Rt!volume_physical_disk_cache_update(RRJtpdcR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�QscCs|jj||�S(N(Rtvolume_read_cache_policy_update(RRJtrcpR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�UscCs|jj||�S(N(Rt volume_write_cache_policy_update(RRJtwcpR((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR�YsN(Gt__name__t
__module__t__doc__RRRRRtstaticmethodRRRR0R1R2R5RR7R<R?RBRIRKRNRSRTRWRXR\R]RaRcRdReRfRgRhRjRoRpRqRtRvRwRxR|RR�R�tFalseR�R�R�R�R�R�R�R�R�R�R�R�R�R�Rt	FLAG_RSVDR�R�R�R�R�(((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyR
s�		N(
tlsmRRRRRRRRRtlsm.plugin.sim.simarrayR	R
(((s</usr/lib/python2.7/site-packages/lsm/plugin/sim/simulator.pyt<module>s@