ó i'dWc@sºdZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z m Z mZddlmZmZmZmZmZmZmZddlmZddlmZddlmZiiejd 6ejd 6ej ƒd 6d 6iej!d 6ejd 6ej ƒd 6d 6iej"d 6ejd 6ej ƒd 6d6iej#d 6ejd 6dd 6d6Z%d„Z&ej'dd„Z(defd„ƒYZ)dS(s archiveadm - archive utility iÿÿÿÿN(tOptiont OptionParser(tApplicationDatat_tcheck_auth_and_euidtUnauthorizedUserErrortARCHIVE_ADMIN_AUTH(tcreatetinfotmediatguesttLOGFILEt USER_LOGFILEtUSER_TEMP_DOC_DIR(t ArchiveError(t InstallEngine(tINSTALL_LOGGER_NAMEtexectoptstusageRRs create-mediaR cCsýtjddƒtƒ\}}}t}|dkrgyttƒWq‘tk rc}t|ƒ‚q‘Xn*|dkr‘tj ƒdkr‘t }q‘ny2|r¶t tj dsB     "  icCs&tdƒ}x)dddgD]}|t|d7}qWtd|dtƒ}|sv|jdtjƒtjdƒn|d jd ƒr™|j |ƒn|j d ƒ}|tj ƒkrótjj td ƒƒ|jdtjƒtjdƒnt|ddk r|jt|dƒnt|d |ƒ|j |ƒ\}}t|ƒd kr¾|dkrtjj tdƒ|ƒntjj tdƒ|ƒ|jdtjƒtjdƒn|dkrt|ƒd krtjj tdƒ|ƒ|jdtjƒtjdƒn|||fS(slSet up a new parser. Default input is command line args, can be overridden for testing purposes. s0 archiveadm [options] RRs create-mediaRt option_classRiit-sinvalid command RiR s'%s': data required s'%s': archive path required sunexpected arguments: %s N(RR1RtCliCustomOptiont print_helpR%R&R't startswitht parse_argstpoptkeystwritetNonet set_usagetlen(R9t usage_strtcmdtparserR7R8((scli.pyRzs:  RBcBsKeZdZejdZejdZejdZejdZd„ZRS(s=An OptionParser customization to handle comma-separated liststextendcCsZ|dkr7|jdƒ}|j|gƒj|ƒntj|||||||ƒdS(NROt,(tsplitt ensure_valueRORt take_action(tselftactiontdesttopttvaluetvaluesRNtlvalue((scli.pyRS½s (sextend(sextend(sextend(sextend( t__name__t __module__t__doc__RtACTIONSt STORE_ACTIONSt TYPED_ACTIONStALWAYS_TYPED_ACTIONSRS(((scli.pyRBµs     (*R]RR(RR%R#toptparseRRtsolaris_installRRRRRtsolaris_install.archiveRRR R R R R tsolaris_install.archive.utilRtsolaris_install.engineRtsolaris_install.loggerRR*t run_createt setup_optionst get_usagetrun_infotrun_create_mediat run_guestRIR1R?R-RRB(((scli.pyts6     (4         <;