Ñò ÃÅ]Kc@sSddklZddkTddkTdddddgZdefd „ƒYZd S( iÿÿÿÿ(texpose(t*tidtuuidtpub_uuidt last_modifiedtbogomipstReportscBs=eZeƒd„ƒZeddƒd„ƒZeddƒd„ƒZeddƒd„ƒZeddƒd „ƒZedd ƒd d „ƒZedd ƒd d„ƒZ eddƒd„ƒZ eddƒd„ƒZ eddƒd„ƒZ eddƒd„ƒZ eddƒd„ƒZedƒd„ƒZRS(cCs |iƒS(N(tsearch(tself((s4/usr/local/www/smolt/hardware/controllers/reports.pytindex sttemplates hardware.templates.report_recentcCsÛttitigtitiƒtddƒjƒittiƒƒi dƒi ƒi ƒ}tt i it i igt i itiƒtddƒjƒitt i iƒƒi dƒi ƒi ƒ}td|d|ƒS(s( Shows recently added hosts and devices tdaysiZii2trecent_pub_uuidtrecent_devices(tselecttHostRRtdatettodayt timedeltatorder_bytdesctlimittexecutetfetchalltcomputer_logical_devicestct descriptiont date_addedtdict(R R R((s4/usr/local/www/smolt/hardware/controllers/reports.pytrecents%'  + s&hardware.templates.report_host_ratingscCs‚ttititititiƒgtidjƒitiƒit titiƒƒƒi dƒi ƒi ƒ}t d|ƒS(s" Return basic ratings information ii2t host_ratings(RRtsystemtvendortratingtfunctcounttgroup_byRRRRRR(R R((s4/usr/local/www/smolt/hardware/controllers/reports.pyR s00s(hardware.templates.report_device_ratingscCs¾ttitititiƒidƒgtidjƒititiƒit dƒƒi dƒi dƒ}tt i |ii|iigt i|iijƒiƒiƒ}td|ƒS(s" Return basic ratings information tcntiiôthtdevice_ratings(RtHostLinkt device_idR"R#R$tlabelR%RRRtaliastComputerLogicalDeviceRRR&RRRR(R R'R(((s4/usr/local/www/smolt/hardware/controllers/reports.pyR(/s -!Bs)hardware.templates.report_search_profilescCstƒS(N(R(R ((s4/usr/local/www/smolt/hardware/controllers/reports.pytsearch_profiles9ss'hardware.templates.report_view_profilesic OsÀttititititiƒgtti|jttii d|ƒtii d|ƒƒƒƒi tititiƒi t titiƒƒƒi dƒiƒiƒ}td|ƒS(Ns%%%s%%iôtfound(RRR R!R"R#R$tand_tor_tlikeR%RRRRRR(R tprofilet not_ratedtargstkeysR/((s4/usr/local/www/smolt/hardware/controllers/reports.pyt view_profiles=s!-s&hardware.templates.report_view_profilec Os1ttititititiƒgtti|jttii d|ƒtii d|ƒƒƒƒi tititiƒi t titiƒƒƒi dƒiƒiƒ}ttitigttidjttii d|ƒtii d|ƒƒƒƒi dƒiƒiƒ}td|d|ƒS(Ns%%%s%%iôtR/t pub_uuids(RRR R!R"R#R$R0R1R2R%RRRRRRR(R R3R4R5R6R/R9((s4/usr/local/www/smolt/hardware/controllers/reports.pyt view_profileGs!-@+s(hardware.templates.report_search_devicescCstƒS(N(R(R ((s4/usr/local/www/smolt/hardware/controllers/reports.pytsearch_devicesSss&hardware.templates.report_view_devicescOs<|d}tit_tid|ƒiƒ}td|ƒS(Ntdevices„SELECT host_links.rating, count(host_links.rating) AS cnt, d.description, d.vendor_id, d.device_id, d.subsys_vendor_id, d.subsys_device_id FROM host_links use index(rating), (SELECT device.id AS id, device.vendor_id AS vendor_id, device.device_id AS device_id, device.subsys_vendor_id AS subsys_vendor_id, device.subsys_device_id AS subsys_device_id, device.description AS description FROM device WHERE device.description like '%%%%%s%%%%' LIMIT 500) AS d WHERE host_links.device_id = d.id and host_links.rating != 0 GROUP BY host_links.rating, d.description, d.vendor_id, d.device_id, d.subsys_vendor_id, d.subsys_device_id ORDER BY cnt DESC;R/(tmetadatatbindtsessionRRR(R R5R6R<R/((s4/usr/local/www/smolt/hardware/controllers/reports.pyt view_devicesWs  s%hardware.templates.report_view_devicecOsãtit_tid|ƒiƒ}ttiigtii |jƒi dƒ}tt i gt i |iijƒidƒi dƒ}ttititigti|ii jƒiƒiƒ}|}td|d|d|ƒS(NsySELECT host_links.rating, count(host_links.rating) AS cnt, d.description, d.vendor_id, d.device_id, d.subsys_vendor_id, d.subsys_device_id FROM host_links use index(rating), (SELECT device.id AS id, device.vendor_id AS vendor_id, device.device_id AS device_id, device.subsys_vendor_id AS subsys_vendor_id, device.subsys_device_id AS subsys_device_id, device.description AS description FROM device WHERE device.description = '%s' LIMIT 500) AS d WHERE host_links.device_id = d.id and host_links.rating != 0 GROUP BY host_links.rating, d.description, d.vendor_id, d.device_id, d.subsys_vendor_id, d.subsys_device_id ORDER BY cnt DESC;tdièthlR/tprofilesR<(R=R>R?RRRRRRRR,R)t host_link_idR*RRRR R!R(R R<R5R6R/RARBRC((s4/usr/local/www/smolt/hardware/controllers/reports.pyt view_devicecs  *<s hardware.templates.report_searchcCsFg}tiD]}||iq~}td„|ƒ}td|ƒS(NcSs |tjS((t hosts_ban(tx((s4/usr/local/www/smolt/hardware/controllers/reports.pytstfields(thostsRtnametfilterR(R t_[1]tcolt host_cols((s4/usr/local/www/smolt/hardware/controllers/reports.pyR|s'shardware.templates.report_viewc sÚ|d}|d}|d}tti|ƒ‰|GH‡fd†}ttt||ƒƒ}|GHttg|ƒidƒ}tdt|i|ƒdt ƒ} t | ƒ} t |ƒ} t d| d | d |d |d |ƒS( Ntrestrict_fieldt table_valuest count_fieldcs ˆ|jS(N((ta(t limit_col(s4/usr/local/www/smolt/hardware/controllers/reports.pytcmp_up‰sttmp_hostttmpRtresultsttotalRKtrestrictt restrict_vals( tgetattrRJRtreduceR1tmapRR,tsimple_counted_viewtTruet just_selectt just_countR( R R5R6RZR[tto_countRUtrestrict_clauset temp_hosttviewtdataRY((RTs4/usr/local/www/smolt/hardware/controllers/reports.pyRf‚s      tjsoncOs{|d}tti|ƒ}tti|ƒgƒi|ƒiƒiƒ}g}|D]}||dqT~}t d|ƒS(Ntcol_nameitvalues( R\RJRRR#tdistinctRRRR(R R5R6RiRNtvalsRMtval((s4/usr/local/www/smolt/hardware/controllers/reports.pytvalues_for_column•s  -%(t__name__t __module__RR RRR(R.R7R:R;R@RERRfRn(((s4/usr/local/www/smolt/hardware/controllers/reports.pyR s     N(t turbogearsRthardware.modeltsqlalchemy.sqlRFtobjectR(((s4/usr/local/www/smolt/hardware/controllers/reports.pyts