Ñò ’Ã_Kc@s ddkZddklZddklZddklZddklZlZddklZddk Tddk Tddk l Z ddk Tdd klZdd klZddkZddkZdd klZeiid id eƒZd„Zd„Zdefd„ƒYZdS(iÿÿÿÿN(texpose(texception_handler(tutil(tInvalidRequestErrortOperationalError(tdatetime(t*(tError(t DeviceMap(t generate_uuid(tconfigtglobalssmoon.myth_supportcCsKtiiiddƒiƒ}|p"tiiiddƒiƒ}n|S(Nt tg_formatttAccepttdefault(tcherrypytrequesttparamstgettlowertheaders(tformat((s3/usr/local/www/smolt/hardware/controllers/client.pytrequest_formats"cCs$|}|idƒo d}n|S(NtDells Dell, Inc.(t startswith(tvendortrc((s3/usr/local/www/smolt/hardware/controllers/client.pyt _fix_vendors tClientcBsmeZeƒZd„Zedddeƒeeiddƒdddd„ƒƒZ edddeƒeeiddƒddd „ƒƒZ edd ƒeei ddƒdd „ƒƒZ ed ƒeei ddƒd „ƒƒZed ƒeei ddƒd„ƒƒZeddƒeei ddƒd„ƒƒZeƒd„ƒZeƒd„ƒZd„ZRS(cCs||_||_dS(N(tsmolt_protocolttoken(tselfRR((s3/usr/local/www/smolt/hardware/controllers/client.pyt__init__(s ttemplateshardware.templates.showt allow_jsontruless$isinstance(tg_exceptions,ValueError)R cCs|o |}ny#d|iƒ}|idƒ}Wntdƒ‚nXy%titƒid|ƒiƒ}Wn_y2titƒid|ƒ}td|i ƒ‚WqÑt j otd|ƒ‚qÑXnX|o|i i ||i ƒ}nh}tdƒ}x’|iD]‡}|i}|i o|i oqnd } |i|id |iƒ} | o| d jo| | 7} n|i|i|id |id |iƒ} | o| d jo| d | 7} n|i|iƒ} | o| d jo| d | 7} n|i|i|i|i|iƒ} | o| d jo| d | 7} ntd|id| dt|ƒd|id|id|iƒ||iestjsont host_objecttdevicest host_linkt ratingwidgett getOSWikiLinktadmin($tstriptencodet ValueErrortsessiontquerytHostt filter_bytonet selectone_byR&RRtcheck_admin_tokenR'RR7tdevicet vendor_idt device_idRR)R1tsubsys_device_idt subdevicetsubsys_vendor_idtdicttgetDeviceWikiLinkR/R0tvaluestsortRtNonetgetHostWikiLinktSingleRatingWidgetR:(R R'tUUIDR;R6R7tventdevRFt device_nametvnametdnametsvnametsdname((s3/usr/local/www/smolt/hardware/controllers/client.pytshow,sl %   *$        shardware.templates.showallcCs9y#d|iƒ}|idƒ}Wntdƒ‚nXy%titƒid|ƒiƒ}Wntd|ƒ‚nX|o|ii ||i ƒ}nh}x*|i D]}|i |i f||iR?R@RARBRCRRER'R7RFR0RHRRNRORLRQRRRMR:(R R'R;R6R7RURT((s3/usr/local/www/smolt/hardware/controllers/client.pytshow_allrs2%       shardware.templates.deletecCs€y%titƒid|ƒiƒ}Wntd|ƒ‚nXyti|ƒtiƒWntdƒ‚nXtdƒ‚dS(NR's!Critical: UUID does not exist %s sKCritical: Could not delete UUID - Please contact the smolt development teamsSuccess: UUID Removed(R?R@RARBRCR>tdeletetflush(R R'thost((s3/usr/local/www/smolt/hardware/controllers/client.pyR]”s% R5cCs„titƒid|d|ƒititiƒidƒƒi tiƒ}h}x#|D]}|d||diR?R@RARDtfiletreadtIOErrort UUIDErrorR&R^RL(R R'R6R&((s3/usr/local/www/smolt/hardware/controllers/client.pytregenerate_pub_uuid«s"  shardware.templates.pub_uuidcsD||ijotdƒ‚n||ijotdƒ‚n|ii||ƒti|ƒ}y%titƒi d|ƒi ƒ‰Wnut j o/tƒ‰|dˆ_ t dtƒˆ_n<tj o/tƒ‰|dˆ_ t dtƒˆ_nX|ddjo dˆ_n|dˆ_|dˆ_|d ˆ_|d ˆ_|d ˆ_|d ˆ_|d ˆ_|dˆ_|dˆ_|dˆ_|dˆ_t|dƒˆ_|dˆ_|dˆ_|dˆ_ t!i"ƒˆ_#ˆi djo dˆ_ n|dˆ_%y|dˆ_&Wnt'j odˆ_&nXy+|dˆ_(|dˆ_)|dˆ_*Wn*t'j odˆ_(ˆ_)ˆ_*nX|dˆ_+t,tjo#ddk-l.}|ˆ|ƒ‰ng}ˆi/D]}||i0qò~} xk|d D]_}|d!i1d"ƒ} |d#} | djo d$} n|d%} | djo d$} n|d&} | djo d$} n|d'}|djo d$}ny‚tit2ƒi d#| d%| d&| d'|d!| ƒi ƒ}|i3| jo| i4|i3ƒn"t5ƒ}ˆ|_6||_7|}Wqt j o1|d(}|djo d)}nt2ƒ}| |_0| |_8| |_9||_:|d*|_;|d+|_<||_=|d!|_>t!i?ƒ|_@|}y.titAƒi d,|ƒi ƒ}||_BWnAt j o5tAƒ}||_=d-|_C||_BtiDƒnXtiDƒt5ƒ}ˆ|_6||_7qXqWxm| D]e}tit5ƒiEtFt5i0|jt5iGˆi3jƒƒ}|o"|d$jotiH|d$ƒq€q€WtiDƒtItiHˆiJƒ‡fd.†}ytI||d/ƒWnnXtKd0ˆiƒS(1Ns1Critical: Outdated smolt client. Please upgrade.s3Woah there marty mcfly, you got to go back to 1955!R'tpublictossFedora 11 LeonidassFedora release 11 (Leonidas)tdefault_runleveltlanguagetplatformtbogomipst cpu_vendort cpu_modelt cpu_speedtnum_cpust system_memoryt system_swapRR`tkernel_versiont formfactortunknowntselinux_enabledtselinux_policytUnknownt cpu_steppingt cpu_familyt cpu_model_numtselinux_enforceiÿÿÿÿ(tadd_to_host_sqlR7R1tUTF8RHiRGRKRIttypetNONER)tdriverR/s Fill me in!cs±tƒ}|d|_|d|_|d|_|d|_|d|_|d|_|d|_|d|_|d |_ |d |_ |d|dd |_ ˆ|_ dS( Ntmnt_pnttfs_typetf_favailtf_bsizetf_frsizetf_blockstf_bfreetf_bavailtf_filestf_ffreei( t FileSystemR‹RŒRRŽRRR‘R’R“R”tf_fssizeR_(tfs_dicttnew_fs(thost_sql(s3/usr/local/www/smolt/hardware/controllers/client.pytadd_fsNs           tfssR&(LRR>Rt check_tokent simplejsontloadsR?R@RARBRCRR'R tTrueR&RRqRrRsRtRuRvRwRxRyRzR{RRR`R|R}Rtnowt last_modifiedRPRR€tKeyErrorR‚RƒR„R…t myth_supportt myth_clientR†R7RHR=tComputerLogicalDeviceR,tremovetHostLinkR_RFRGRKRIR)RŠR/R1ttodayt date_addedt HardwareClassthardware_classtclass_descriptionR^tfiltertand_t host_link_idR]tmapt file_systemsRL(R R'R_RRt host_dictR†t_[1]RFt orig_devicesR1RHRGRKRIt device_sqlt host_link_sqlthlR/tdt class_sqlR8t device_sql_idt bad_host_linkRš((R™s3/usr/local/www/smolt/hardware/controllers/client.pytadd_jsonÃsø%                                                       !         c Osa|idƒ}|idƒ}d|GHd|GH|idƒo|idƒ}|djoL|d}titƒid |ƒiƒ}t|ƒ|_ ti ƒt ƒS|d|!}||d }|id ƒoƒt|d ƒ}titƒid |ƒiƒ}xO|i D]@} | i |jo*t|ƒ| _ ti || gƒt ƒSqWqZnt ƒS( NtratingIDtvaluesID: %ss RATING: %sRAt@iÿÿÿÿiR'itDevicei(RRtfindR?R@RARBRCtintR0R^RLR7RH( R targstkwargsR,R0tsepthost_idR_RHRF((s3/usr/local/www/smolt/hardware/controllers/client.pyt rate_objectcs0    !  ! cCs;ttigti|jƒiƒiƒd}td|ƒS(NiR&(tselectRAR&R'texecutetfetchoneRL(R R'R&((s3/usr/local/www/smolt/hardware/controllers/client.pyR&€s.cCsdS(N((R R'((s3/usr/local/www/smolt/hardware/controllers/client.pyt new_pub_uuid…sN(t__name__t __module__RterrorR!RRŸRt error_webRPR[R\t error_clientR]RiRoR¼RÇR&RË(((s3/usr/local/www/smolt/hardware/controllers/client.pyR&s(  D  ! ! !Ÿ(Rt turbogearsRRRtsqlalchemy.exceptionsRRRt hardware.wikithardware.ratingwidgetthardware.controllers.errorRthardware.modelthardware.hwdataRt hardware.uuidR RtgcR t configMapRtFalseR£RRtobjectR(((s3/usr/local/www/smolt/hardware/controllers/client.pyts$