mò þ̪Jc@sÁdkZdklZdklZdklZdklZlZdklZdk Tdk Tdk l Z dk TdklZd klZdkZdkZd „Zd efd „ƒYZdS( N(sexpose(sexception_handler(sutil(sInvalidRequestErrorsOperationalError(sdatetime(t*(sError(s DeviceMap(s generate_uuidcCsKtiiiddƒiƒ}|p"tiiiddƒiƒ}n|S(Nt tg_formatttAccepttdefault(tcherrypytrequesttparamstgettlowertformattheaders(R ((t5/usr/share/smolt/smoon/hardware/controllers/client.pytrequest_formats"tClientcBsvtZeƒZd„Zedddeƒeeiddƒdddd„ƒƒZ edd deƒeeiddƒddd „ƒƒZ edd ƒeei ddƒdd „ƒƒZ ed ƒeei ddƒd„ƒƒZed ƒeei ddƒd„ƒƒZd„Zeddƒeei ddƒd„ƒƒZeƒd„ƒZeƒd„ƒZd„ZRS(NcCs||_||_dS(N(tsmolt_protocoltselfttoken(RRR((R t__init__s ttemplateshardware.templates.showt allow_jsontruless$isinstance(tg_exceptions,ValueError)RcCs|o |}ny#d|iƒ}|idƒ}Wntdƒ‚nXy%titƒid|ƒi ƒ}Wn_y2titƒi d|ƒ}td|i ƒ‚WqÑt j otd|ƒ‚qÑXnX|o|ii||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} nt$d|id| dt%| ƒd| i&d|i'd| iƒ| |iYstjsont host_objecttdevicest host_linkt ratingwidgett getOSWikiLinktadmin(/tUUIDRtstriptencodet ValueErrortsessiontquerytHostt filter_bytoneR't selectone_byRtInvalidRequestErrorR,RRtcheck_admin_tokenR(t DeviceMaptventdevtdevicet vendor_idt device_idt device_nametvendorRtvnameR"tdnametsubsys_device_idtsvnamet subdevicetsubsys_vendor_idtsdnametdicttgetDeviceWikiLinkR R!tvaluestsortR tNonetgetHostWikiLinktSingleRatingWidgetR+(RRR-R,R;RGR'R:RAR<R(R?RBRD((R tshow sl %   *$         shardware.templates.showallcCs9y#d|iƒ}|idƒ}Wntdƒ‚nXy%titƒid|ƒiƒ}Wntd|ƒ‚nX|o|i i ||iƒ}nh}x*|iD]}|i|if||iR9R:RJRKRHRMRNRIR+(RRR,R'R(R;R:((R tshow_allfs2%       shardware.templates.deletecCs€y%titƒid|ƒiƒ}Wntd|ƒ‚nXyti|ƒti ƒWntdƒ‚nXtdƒ‚dS(NRs!Critical: UUID does not exist %s sKCritical: Could not delete UUID - Please contact the smolt development teamsSuccess: UUID Removed( R1R2R3R4RR5thostR0tdeletetflush(RRRQ((R RRˆs% R&cCs„titƒid|d|ƒititi ƒi dƒƒi ti ƒ}h}x#|D]}|d||di iR=RFRCttypetNONERtdriverR 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 FileSystemtnew_fstfs_dictRR‚RƒR„R…R†R‡RˆR‰RŠtf_fssizethost_sqlRQ(RRŒ(R(R tadd_fsLs           tfssR(VRRR0Rt check_tokenRt simplejsontloadsRQt host_dictR1R2R3R4R5RR7t generate_uuidtTrueRtOperationalErrorRiRjRkRlRmRnRoRpRqRrRsRgR@RTRtRutdatetimetnowt last_modifiedRLRwRxtKeyErrorRzR{R|R}t_[1]R(R<R>t orig_devicesR"R=RFRCtComputerLogicalDevicet device_sqlRtremovetHostLinkt host_link_sqlthlR RR€ttodayt date_addedtdt HardwareClasst class_sqlthardware_classtclass_descriptionRSR)t device_sql_idtfiltertand_t host_link_idt bad_host_linkRRtmapt file_systemsRRH(RRRQRRR¬RCR)RR R°RžR£R R"R=R¤R<R©R>R•R§RRRF((RR tadd_json¼sì%                        '                              !          c Osg|idƒ}|idƒ}d|GHd|GH|idƒo |idƒ}|djoO|d}ti t ƒi d |ƒi ƒ}t|ƒ|_tiƒtƒSn|d|!}||d }|id ƒo†t|d ƒ} ti t ƒi d |ƒi ƒ}xR|iD]C}|i| jo-t|ƒ|_ti||gƒtƒSqqWq`ntƒS( NtratingIDtvaluesID: %ss RATING: %sR3t@iÿÿÿÿiRitDevicei(tkwargsRRR!Rftfindtsepthost_idR1R2R3R4R5RQtintRSRHR>R(R<( RtargsR¸R!RºRQR<R»RR>((R t rate_objectas0    !   ! cCs;ttigti|jƒiƒiƒd}td|ƒS(NiR(tselectR3RRtexecutetfetchoneRH(RRR((R R~s.cCsdS(N((RR((R t new_pub_uuidƒs(t__name__t __module__tErrorterrorRtexposeR—texception_handlert error_webRLRORPt error_clientRRR]RcRgR³R¾RRÂ(((R Rs