当前位置: 首页>>代码示例>>Python>>正文


Python HTML.tr_list方法代码示例

本文整理汇总了Python中HTML.HTML.tr_list方法的典型用法代码示例。如果您正苦于以下问题:Python HTML.tr_list方法的具体用法?Python HTML.tr_list怎么用?Python HTML.tr_list使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HTML.HTML的用法示例。


在下文中一共展示了HTML.tr_list方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(srdfObj,site,datacenter):
    Alerts = {}
    alert = 0
    www = HTML()
    f = Files()
    mailObj = EMail()
    dates = DateString()
    page = []
    csvpage = []
    htmlfile = '/www/SRDF.html'
    csvfile = '/www/SRDF.csv'
    reportDate =  str(time.strftime("%c")) 
    page.append(www.start_html('SRDF Report'))
    html = '<p>Report Date: ' + reportDate + '<br><br>'
    html += 'SRDF Status Report<br><br>'
    page.append(html)
    for group in srdfObj.SRDF_Groups:
      # Print header table
      page.append('<p><br><table align=center  border=3>\n')
      row = ['Group ID','SymID','RemoteSymID','Tracks Pending','Delta Time']
      page.append(www.th_list(row))  
      csvpage.append(', '.join(row) + '\n')
      info = srdfObj.SRDF_Groups_Info[group]
      row = [  group, info['symid'],info['remote_symid'],info['tracks'],info['delta']  ]
      page.append(www.tr_list(row)) 
      page.append(www.end_table)
      csvpage.append(', '.join(row) + '\n')
      # Print Pair data
      page.append('<p><br><table align=center  border=3>\n')
      row = ['Source','Target','Link State','Mode','Replication State']
      page.append(www.th_list(row)) 
      csvpage.append(', '.join(row) + '\n')     
      pairs = srdfObj.SRDF_Groups_Pairs[group]
      for pair in pairs:
        list = pair.split(',')
        if  list[4] != 'Consistent':
          bgcolor="#B0B3AF"
          alert += 1
          Alerts[group] = "SRDF is not in a consistent state for " + group
        else:
          bgcolor="#69F24E"
        page.append(www.tr_list(list,bgcolor)) 
        csvpage.append(', '.join(list) + '\n')     
      page.append(www.end_table)
     
    
    page.append(www.end_html)
    f.write_file(htmlfile,page)
    f.write_file(csvfile,csvpage)

    if alert > 0:
      alertMessage = "The Following SRDF Groups are not Consistent\n\n"
      for groupalert in Alerts:
        alertMessage += Alerts[groupalert]     
      mailObj.subject = "VMAX SRDF Alert " + site + ', ' + datacenter
      mailObj.message = alertMessage
      mailObj.send_mail()   
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:59,代码来源:SRDF_TF.py

示例2: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(symObj,site,datacenter,sid):
    #
    www = HTML()
    # Create directories if they don't exist
    f = Files()
    f.dir = "/www/" + site + "/OR/"
    f.mkdir()
    htmlfile = '/www/' + site + '/OR/index.html'
    perf = '/opt/EMC/Scripts/shell/rcopyperf_' + sid + '.log'
    f.read_file(perf)
    page = []
    page.append(www.start_html_refresh('OR Sessions'))
    page.append(www.EMC_Header(site,datacenter))
    page.append(www.start_table(1,"OR Port Performance"))
    header = ["FA Port","MB/s","Ceiling","Number of Devices"]
    page.append(www.th_list(header))
    perftotal = 0
    for line in f.readfile:
      line = line.strip()
      fields = line.split()
      if len(fields) == 5:
        fields = fields[1:5]
      perftotal += int(fields[1])
      page.append(www.tr_list(fields))
    page.append(www.tr + www.th + "Total OR MB/s" + www.th + str(perftotal))
    page.append(www.end_table)  
    page.append('<br><br><pre>\n')
    for line in symObj.or_list:
      page.append(line)
    f.write_file(htmlfile,page)
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:32,代码来源:vmax3_OR_Monitor.py

示例3: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(fpObj,site,datacenter):
  htmlpage = []
  csvpage = []
  www = HTML()
  f = Files()
  html_index = '/www/' + site + '/fast_demand.html'
  fastCSV = '/www/' + site + '/CSV/' + site + '_fast_demand.csv'
  
  htmlpage.append(www.start_html('MV Summary'))
  linkpath = "/" + site + "/CSV/"  + site + '_fast_demand.csv'
  fpSummLink = '<a href=' + linkpath + '>FAST CSV</a>\n'
  htmlpage.append(www.EMC_Header(site,datacenter,'',fpSummLink))
  csvpage.append('FAST-VP Report for ' + site + '\n\n')
  
  htmlpage.append(www.start_table(3,'FAST-VP Demand report'))
  heading = ['SG_Name']
  for tier in fpObj.tiernames:
    heading.append(tier)
  htmlpage.append(www.th_list(heading))
  csvpage.append(', '.join(heading))

  for sg in fpObj.tiers:
    # 
    line = [str(sg)]
    for tiername in fpObj.tiernames:
      if tiername in fpObj.tiers[sg]:
        line.append(fpObj.tiers[sg][tiername])
      else:
        line.append('0')
    
    csvpage.append(', '.join(line))
    htmlpage.append(www.tr_list(line))
  htmlpage.append(www.end_table)  
  htmlpage.append(www.end_html)  
  f.write_file(html_index,htmlpage)
  f.write_file(fastCSV,csvpage)    
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:38,代码来源:fast_dev.py

示例4: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(sgObj,site,datacenter):
    #
    # Create directories if they don't exist
    orange = '#F7EE6F'
    green =  '#69F24E'       
    dir = "/www/" + site + "/SG/"
    if not os.path.isdir(dir):
      subprocess.call(["mkdir", dir]) 
    dir = '/www/' + site + '/CSV'      
    if not os.path.isdir(dir):
      subprocess.call(["mkdir", dir]) 
    #
    #    
    reportDate =  str(time.strftime("%c"))
    GB =  float(sgObj.ProvisionedCapacity)/1024
    ProvisionedGB = "%.2f" % GB
    info1 = 'Total Porvisioned(GB)=' + str(ProvisionedGB)

    www = HTML()
    html_index = '/www/' + site + '/index.html'
    sgSummCSV = '/www/' + site + '/CSV/' + site + '_SG_Summary.csv'
    f_index = open(html_index,'w')
    f_SummCSV = open(sgSummCSV,'w')
    f_SummCSV.write("Storage Group,FAST Policy,Capacity GB,Masking View,Max IOPS,Max MB/s\n")
    linkpath = "/" + site + "/CSV/"  + site + '_SG_Summary.csv'
    sgSummLink = '<a href=' + linkpath + '>Summary CSV</a>\n'
    f_index.write(www.start_html('SG Summary'))
    f_index.write(www.EMC_Header(site,datacenter,info1,sgSummLink))
    f_index.write(www.start_table())
    f_index.write(www.end_table)
    
    # Dictionary: key = policy name and value is a list of html formatted lines, one line per SG with that policy.
    fpTables = {}
    # Dictionary of policies. Used to iterate over the above var.
    policies = {}
    demandpage = '/www/' + site + '/fast_demand.html'
    f = Files()
    f.read_file(demandpage)
    dp = f.readfile[:]
    for sg in sgObj.SGs:
      #
      #
      found = False 
      demandtable = ''
      for txt in dp:
        if 'SG_Name' in txt:
          hr = txt
        if str(sg) in txt:
          found = True
          rowdata = txt
      if found:
        demandtable = '<br><p><table border=3 align=center><caption>FAST-VP Demand</caption>\n' 
        demandtable += hr
        demandtable += '\n'
        demandtable += rowdata
        demandtable += '\n'
        demandtable += '\n</table>'
      
       
      color = ''      
      if sg in sgObj.Associations:
        fp = sgObj.Associations[sg]
      else:
        fp = 'NO_FAST_POLICY'
        color = orange
      #
      policies[fp] = 1
      if not fp in fpTables:
        fpTables[fp] = []
      #
      link = "/" + site + "/SG/" + sg + ".html"
      sgGB = float(sgObj.SG2Capacity[sg])/1024
      sgProvisionedGB = "%.2f" % sgGB
      MVs = sgObj.SGinMV[sg]
      IOPS_LIMIT = str(sgObj.SG_IOPS_Limit[sg])
      MB_LIMIT = str(sgObj.SG_MB_Limit[sg])
      if MVs.upper() == 'NO':
        color = orange
      
      rowlist = ["<a href=" + link + '>' + sg + "</a>",fp, str(sgProvisionedGB),MVs,IOPS_LIMIT,MB_LIMIT]
      SGhtml = www.tr_list(rowlist,color)
      fpTables[fp].append(SGhtml)
      f_SummCSV.write(sg + ',' + fp + ',' + str(sgProvisionedGB)   + ',' + MVs + ',' + IOPS_LIMIT + ',' + MB_LIMIT + "\n")
      # go ahead and write out the sg detail HTML page.
      sgfile = "/www/" + site + "/SG/" + sg + ".html"
      sgCSV = "/www/" + site + "/CSV/" + site + '_' + sg + ".csv"
      linkpath = "/" + site + "/CSV/" + site + '_' + sg + ".csv"
      link1 = '<a href=' + linkpath + '>SG CSV</a>\n'
      f_sg = open(sgfile,'w')
      f_sgCSV = open(sgCSV,'w')
      f_sgCSV.write('Storage Group Report for ' + sg + '\n\n\n')
      f_sg.write(www.start_html('SG Detail'))
      f_sg.write(www.EMC_Header(site,datacenter,'',link1))
      html = "<p><H3><center>Detailed Storage Report for " + sg + " SSC_VMAX40K_1794</center></H3>\n"
      f_sg.write(html)
      f_sg.write(www.start_table())
      f_sg.write(www.tr + www.th + "Storage Group<th>FAST<TH>Capacity GB</tr>\n") 
      html = www.tr + www.td +  sg + www.td + fp + www.td + str(sgProvisionedGB) + "\n"
      f_sg.write(html)
      f_sg.write(www.end_table)  
#.........这里部分代码省略.........
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:103,代码来源:sg_report.py

示例5: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(sgObj,site,datacenter):
    #
    # Create directories if they don't exist
    orange = '#F7EE6F'
    green =  '#69F24E'       
    dir = "/www/" + site + "/SG/"
    if not os.path.isdir(dir):
      subprocess.call(["mkdir", dir]) 
    dir = '/www/' + site + '/CSV'      
    if not os.path.isdir(dir):
      subprocess.call(["mkdir", dir]) 
    #
    #    
    reportDate =  str(time.strftime("%c"))
    GB =  float(sgObj.ProvisionedCapacity)/1024
    ProvisionedGB = "%.2f" % GB
    info1 = 'Total Porvisioned(GB)=' + str(ProvisionedGB)

    www = HTML()
    html_index = '/www/' + site + '/index.html'
    sgSummCSV = '/www/' + site + '/CSV/' + site + '_SG_Summary.csv'
    f_index = open(html_index,'w')
    f_SummCSV = open(sgSummCSV,'w')
    f_SummCSV.write("Storage Group,SLO Policy,Capacity GB,Masking View,Max IOPS,Max MB/s\n")
    linkpath = "/" + site + "/CSV/"  + site + '_SG_Summary.csv'
    sgSummLink = '<a href=' + linkpath + '>Summary CSV</a>\n'
    f_index.write(www.start_html('SG Summary'))
    f_index.write(www.EMC_Header(site,datacenter,info1,sgSummLink))
    f_index.write(www.start_table())
    f_index.write(www.end_table)
    fpTables = {}
    policies = {}
    for sg in sgObj.SGs:

      #
      color = ''  
      link = "/" + site + "/SG/" + sg + ".html"
      sgGB = float(sgObj.SG2Capacity[sg])/1024
      sgProvisionedGB = "%.2f" % sgGB
      MVs = sgObj.SGinMV[sg]
      fp = sgObj.SGinSLO[sg]
      policies[fp] = 1
      if not fp in fpTables:
        fpTables[fp] = []      
      IOPS_LIMIT = str(sgObj.SG_IOPS_Limit[sg])
      MB_LIMIT = str(sgObj.SG_MB_Limit[sg])
      if MVs.upper() == 'NO':
        color = orange
      
      rowlist = ["<a href=" + link + '>' + sg + "</a>",fp, str(sgProvisionedGB),MVs,IOPS_LIMIT,MB_LIMIT]
      SGhtml = www.tr_list(rowlist,color)
      fpTables[fp].append(SGhtml)
      
      f_SummCSV.write(sg + ',' + fp + ',' + str(sgProvisionedGB)   + ',' + MVs + ',' + IOPS_LIMIT + ',' + MB_LIMIT + "\n")
      # go ahead and write out the sg detail HTML page.
      sgfile = "/www/" + site + "/SG/" + sg + ".html"
      sgCSV = "/www/" + site + "/CSV/" + site + '_' + sg + ".csv"
      linkpath = "/" + site + "/CSV/" + site + '_' + sg + ".csv"
      link1 = '<a href=' + linkpath + '>SG CSV</a>\n'
      f_sg = open(sgfile,'w')
      f_sgCSV = open(sgCSV,'w')
      f_sgCSV.write('Storage Group Report for ' + sg + '\n\n\n')
      f_sg.write(www.start_html('SG Detail'))
      f_sg.write(www.EMC_Header(site,datacenter,'',link1))
      html = "<p><H3><center>Detailed Storage Report for " + sg + " SSC_VMAX40K_1794</center></H3>\n"
      f_sg.write(html)
      f_sg.write(www.start_table())
      f_sg.write(www.tr + www.th + "Storage Group<th>SLO Policy<TH>Capacity GB</tr>\n") 
      html = www.tr + www.td +  sg + www.td + fp + www.td + str(sgProvisionedGB) + "\n"
      f_sg.write(html)
      f_sg.write(www.end_table)  
      
      f_sg.write(www.start_table(3,'Device List'))
      f_sg.write(www.tr + www.th + "Device<th>Capacity GB</tr>\n") 
      f_sgCSV.write("Volume,Capacity GB\n")
      for device in sgObj.SGs[sg]:
        devGB = float(sgObj.SGs[sg][device])/1024
        dev_formatted = "%.2f" % devGB
        html = www.tr + www.td + device + www.td + str(dev_formatted) +"\n"
        f_sg.write(html)
        f_sgCSV.write(device + ',' + str(dev_formatted) + '\n')
      f_sg.write(www.end_table)
      f_sg.write(www.end_html)
      f_sg.close()
      f_sgCSV.close()
      
    for fp in policies:
      f_index.write(www.start_table(3,'Groups with SLO ' + fp + ' Policy'))
      f_index.write("<tr><th>Storage Group<th>SLO Policy<TH>Capacity GB<TH>Masking View<TH>IOPS Limit<TH>MB/s Limit</tr>\n")   
      for line in fpTables[fp]:
        f_index.write(line)
      f_index.write(www.end_table)    
    f_index.write(www.end_html)  
    f_index.close()
    f_SummCSV.close()
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:97,代码来源:sg_vmax3_report.py

示例6: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(sgObj,site,datacenter):
    www = HTML()
    mailObj = EMail()
    
    dates = DateString()
    tiers = ['EFD','FC','SATA']
    alertLimits = {}
    alertLimits['EFD'] = 99
    alertLimits['FC'] = 80
    alertLimits['SATA'] = 85
    page = []
    csvpage = []
    temppage = []    
    today =  dates.today
    yesterday = dates.yesterday
    tomorrow = dates.tomorrow
    pagedirs = ['download','history']
    subdirs = [today,tomorrow,yesterday]
    f = Files()
    for dir in pagedirs:
      f.dir = '/var/www/html/' + dir
      f.mkdir() 
      for sub in subdirs:
        f.dir = '/var/www/html/' + dir + '/' + sub
        f.mkdir() 
    csvfile = '/www/download/' + today + '/' + site + '_pools.csv'
    csvfileperm = '/www/download/' + site + '_pools.csv'
    csvlink = '<a href=/download/' + today + '/' + site + '_pools.csv>CSV</a>'
    yesterdaylink = '<a href=/history/' + yesterday + '/' + datacenter + site + '_EMC_Summary.html>' + yesterday + '</a>'  
    tomorrowlink = '<a href=/history/' + tomorrow + '/' + datacenter + site + '_EMC_Summary.html>' + tomorrow + '</a>' 
    htmlfile1 = '/www/history/' + today + '/' + datacenter + site + '_EMC_Summary.html'
    tempfile = '/www/history/' + tomorrow + '/' + datacenter + site + '_EMC_Summary.html'
    htmlfile2 = '/www/' + datacenter + site + '_EMC_Summary.html'

        
    reportDate =  str(time.strftime("%c")) 

    page.append(www.start_html('Thin Pool Report for ' + site))
    page.append(www.EMC_Header(site,datacenter,'',csvlink))
    
    page.append('<p><br><table align=center  border=3>\n')
    row = ['EMC Storage Summary Report',tomorrowlink,yesterdaylink]
    page.append(www.th_list(row)) 
    page.append(www.end_table)
    
    
    page.append(www.start_table(3,site))
    heading = ['Pool','Capacity','Used','Percent Used','Free','Provisioned','Subscription','Subscription Limit','PRC','Technology','Protection']
    page.append(www.th_list(heading))
    total_usable = 0 
    total_provisioned = 0 
    total_used = 0
    total_free = 0
    #csvpage.append('Thin Pool Report for ' + site + '\n\n')
    csvpage.append(', '.join(heading) + '\n')

    
    alertMessage = 'The following pools exceed set thresholds...\n\n'
    alerts = 0
    for tier in tiers:
      for pool in sgObj.pools.keys():
        comparepool = str(pool)
        comparepool = pool.upper()
        if tier in comparepool:
          ##########
          compression = sgObj.pooldetails[pool]['COMPRESSION']
          subscription_limit = sgObj.pooldetails[pool]['SUBSCRIPTION_LIMIT']
          PRC = sgObj.pooldetails[pool]['PRC']
          tech = sgObj.pooldetails[pool]['TECH']
          protection = sgObj.pooldetails[pool]['LAYOUT']
          ##########
          usable = float(sgObj.pools[pool]['total_usable_tracks_gb'])
          used = float(sgObj.pools[pool]['total_used_tracks_gb'])
          percent_used = sgObj.pools[pool]['percent_full']
          free = float(sgObj.pools[pool]['total_free_tracks_gb'])
          subscription = sgObj.pools[pool]['subs_percent']
          usable = int(round(usable,0))
          used = int(round(used,0))
          free = int(round(free,0))
          if int(subscription) == 0:
            provisioned = 0;
          else:
            provisioned = usable * ( float(subscription) / 100)
          total_provisioned += provisioned
          total_usable += usable
          total_used += used
          total_free += free
          html = www.tr
          if int(percent_used) >= alertLimits[tier]:
            html = www.alerttr
            alertMessage += "Thin pool " + comparepool + " is " + str(percent_used) + "% used.\n"
            alertMessage += str(free) + " GB free remain in the pool\n"
            alertMessage +=  " The threshold for " + comparepool + ' is set to ' + str(alertLimits[tier]) + '%\n\n'
            alerts += 1
          row = [pool,str(usable),str(used),str(percent_used),str(free),str(provisioned),subscription,subscription_limit,PRC,tech,protection]
          csvpage.append(', '.join(row) + '\n')
          
          page.append(www.tr_list(row))
          
    total_pct_used = int((int(total_used) / float(total_usable)) * 100)
#.........这里部分代码省略.........
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:103,代码来源:pool_report.py

示例7: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(mvObj,site,datacenter):
    reportDate =  str(time.strftime("%c"))
    GB =  float(mvObj.mvCapTotal)/1024
    ProvisionedGB = "%.2f" % GB    
    info1 = 'Total Porvisioned=' + str(ProvisionedGB)
    www = HTML()
    f = Files()
    html_index = '/www/' + site + '/views.html'
    viewsCSV = '/www/' + site + '/CSV/' + site + '_views.csv'
    htmlpage = []
    csvpage = []
    
    htmlpage.append(www.start_html('MV Summary'))
    linkpath = "/" + site + "/CSV/"  + site + '_views.csv'
    mvSummLink = '<a href=' + linkpath + '>Views CSV</a>\n'
    htmlpage.append(www.EMC_Header(site,datacenter,info1,mvSummLink))
    csvpage.append('MV Report for ' + site + '\n\n')

    # Write out a table for Masking Views

    csvpage.append("View Name,SG,IG,PG,Capacity\n")
    for pg in mvObj.portgroups:
      htmlpage.append(www.start_table(3,'Masking Views on PG, ' + pg ))
      htmlpage.append("<tr><th>View Name<th>SG<th>IG<th>PG<th>Capacity</tr>\n")
      for mv in mvObj.portgroups[pg]:
        viewname = mv['MV']
        ig = mv['IG']
        pg = mv['PG']
        sg = mv['SG']
        gb = float(mv['MB'])/1024
        fmtgb =  "%.2f" % gb
        gb = str(fmtgb)
        sglink = "<a href=/" + site + "/SG/" + sg + ".html>" + sg + "</a>\n"
        iglink = "<a href=/" + site + "/IG/" + ig + ".html>" + ig + "</a>\n"
        row = [viewname,sglink,iglink,pg,gb]      
        htmlpage.append(www.tr_list(row))    
        csrow = [viewname,sg,ig,pg,gb]
        csvpage.append(', '.join(csrow) + '\n')
      htmlpage.append(www.end_table)    
    htmlpage.append(www.end_html)
    f.write_file(html_index,htmlpage)
    f.write_file(viewsCSV,csvpage)    


    
    
    dir = "/www/" + site + "/IG/"
    if not os.path.isdir(dir):
      subprocess.call(["mkdir", dir]) 
    
    for IG in mvObj.HostInitiatorGroups:
      igPage = '/www/' + site + '/IG/' + IG + '.html'
      f_ig = open(igPage,'w')
      f_ig.write(www.start_html('Initiator Group ' + IG))
      f_ig.write(www.EMC_Header(site,datacenter))
      # Write out a table for Masking Views
      f_ig.write(www.start_table(3,'Initiator Group ' + IG))
      f_ig.write("<tr><th>HBA Initiators</tr>\n")
     
      for wwpn in mvObj.HostInitiatorGroups[IG]:
        f_ig.write("<tr><th>" + wwpn + "</tr>\n")
      f_ig.write(www.end_table) 
      f_ig.write(www.end_html)
      f_ig.close()      

    for IG in mvObj.ClusterInitiatorGroups:
      igPage = '/www/' + site + '/IG/' + IG + '.html'
      f_ig = open(igPage,'w')
      f_ig.write(www.start_html('Cluster Initiator Group ' + IG))
      f_ig.write(www.EMC_Header(site,datacenter))
      # Write out a table for Masking Views
      f_ig.write(www.start_table(3,'Initiator Group ' + IG))
      f_ig.write("<tr><th>Cluster Nodes</tr>\n")
     
      for wwpn in mvObj.ClusterInitiatorGroups[IG]:
        link = '<a href=/' + site + '/IG/' + wwpn + '.html>' + wwpn + '</a>\n'
        f_ig.write("<tr><th>" + link + "</tr>\n")
      f_ig.write(www.end_table) 
      f_ig.write(www.end_html)
      f_ig.close()            

    # Database section
    # First, grab a list of known WWPN logins
    vmaxdb=mysql.connect(host="chatst3utsan01",user="emc",passwd="emc",db="vmax")
    cur = vmaxdb.cursor()
    query = "SELECT wwpn,ig FROM initiatorgroups"
    results  = cur.execute(query)
    rows = cur.fetchall()
    # Now create a simple list of logins. We use this to check whether we've seen a login before.
    # If we know this login, we just update the time seen and array/port.
    knownwwpns = []
    p = re.compile('\w+')
    for row in rows:
      wwpn = row[0]
      ig = row[1]

      key = ''.join(p.findall(wwpn + ig)).lower()    
      knownwwpns.append(key)
    # Now get the current date and time.
    today = datetime.date.today()
#.........这里部分代码省略.........
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:103,代码来源:provisioning_report.py

示例8: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(sgObj,site,datacenter):
    www = HTML()
    mailObj = EMail()
    
    dates = DateString()
    page = []
    csvpage = []
    temppage = []    
    today =  dates.today
    yesterday = dates.yesterday
    tomorrow = dates.tomorrow
    pagedirs = ['download','history']
    subdirs = [today,tomorrow,yesterday]
    f = Files()
    for dir in pagedirs:
      f.dir = '/var/www/html/' + dir
      f.mkdir() 
      for sub in subdirs:
        f.dir = '/var/www/html/' + dir + '/' + sub
        f.mkdir() 
    csvfile = '/www/download/' + today + '/' + site + '_failed_disks.csv'
    csvfileperm = '/www/download/' + site + '_failed_disks.csv'
    csvlink = '<a href=/download/' + today + '/' + site + '_failed_disks.csv>CSV</a>'
    yesterdaylink = '<a href=/history/' + yesterday + '/' + datacenter + '_Failed_disks.html>' + yesterday + '</a>'  
    tomorrowlink = '<a href=/history/' + tomorrow + '/' + datacenter + '_Failed_disks.html>' + tomorrow + '</a>' 
    htmlfile1 = '/www/history/' + today + '/' + datacenter + '_Failed_disks.html'
    tempfile = '/www/history/' + tomorrow + '/' + datacenter + '_Failed_disks.html'
    htmlfile2 = '/www/' + datacenter + site + '_Failed_disks.html'
    logfile = '/www/' + site + '_Failed_disks.log'
    log = []
        
    reportDate =  str(time.strftime("%c")) 

    page.append(www.start_html('Failed Disk Report for ' + site))
    page.append(www.EMC_Header(site,datacenter,'',csvlink))
    
    page.append('<p><br><table align=center  border=3>\n')
    row = ['Failed Disk Report',tomorrowlink,yesterdaylink]
    page.append(www.th_list(row)) 
    page.append(www.end_table)
    
    
    page.append(www.start_table(3,site))
    heading = ['Disk_ID','DA_Port','Spindle_ID','Tech','Speed','Vendor','Size','Failed']
    page.append(www.th_list(heading))
    csvpage.append(', '.join(heading) + '\n')

    
    alertMessage = 'Disk Error...\n\n'
    alertMessage += ', '.join(heading) + '\n\n'
    alerts = 0

    for disk in sgObj.FailedDisks:
      alerts += 1
      info = sgObj.FailedDisks[disk].split()
      row = [info[0],info[1],info[2],info[3],info[4],info[5],info[6],info[7]]
      alertMessage += ', '.join(row) + '\n\n'
      csvpage.append(', '.join(row) + '\n')
      page.append(www.tr_list(row))
          

    page.append(www.end_table)
    page.append(www.end_html)
    f.write_file(htmlfile2,page)
    f.write_file(htmlfile1,page)
    f.write_file(csvfile,csvpage)
    f.write_file(csvfileperm,csvpage)
    temppage.append(www.start_html())
    temppage.append(www.Not_Found_Header('Report not created yet for '+tomorrow))
    temppage.append(www.end_html)
    f.write_file(tempfile,temppage)
    if alerts > 0:
      
      mailObj.subject = "WARNING: DISK ERROR - VMAX Failed Disk Alert " + site + ', ' + datacenter
      mailObj.message = alertMessage
      mailObj.send_mail()

      if len(sgObj.New_Failures.keys()) > 0:
        reportDate =  str(time.strftime("%x - %X"))
        for failed_disk in sgObj.New_Failures.keys():
          log.append(reportDate + " :" + mailObj.subject + " " + failed_disk + "\n")      
        f.write_file(logfile,log) 
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:84,代码来源:failed_disk_report.py

示例9: createReports

# 需要导入模块: from HTML import HTML [as 别名]
# 或者: from HTML.HTML import tr_list [as 别名]
def createReports(sgObj,site,datacenter):
    www = HTML()
    mailObj = EMail()
    swObj = BRCD()
    swObj.get_connection_map()    
    dates = DateString()

    page = []
    csvpage = []
    temppage = []    
    today =  dates.today
    yesterday = dates.yesterday
    tomorrow = dates.tomorrow
    pagedirs = ['download','history']
    subdirs = [today,tomorrow,yesterday]
    f = Files()
    for dir in pagedirs:
      f.dir = '/var/www/html/' + dir
      f.mkdir() 
      for sub in subdirs:
        f.dir = '/var/www/html/' + dir + '/' + sub
        f.mkdir() 
    csvfile = '/www/download/' + today + '/' + site + '_FA.csv'
    csvlink = '<a href=/download/' + today + '/' + site + '_FA.csv>CSV</a>'
    htmlfile = '/www/' + site + '/FA_Ports.html'

        
    reportDate =  str(time.strftime("%c")) 

    page.append(www.start_html('FA Port Report for ' + site))
    page.append(www.EMC_Header(site,datacenter,'',csvlink))
    
     
    page.append(www.start_table(3,site))
    heading = ['FA Port','WWN','Device Count', 'Switch', 'Portname', 'Port']
    page.append(www.th_list(heading))
 
    csvpage.append('FA Port Report for ' + site + '\n\n')
    csvpage.append(', '.join(heading) + '\n')
    
 
    for FAPORT in sorted(sgObj.FA2WWNmap):
      port = str(FAPORT)

      wwn = str(sgObj.FA2WWNmap[FAPORT])
      if wwn.lower() in swObj.connectionmap:
        fields = swObj.connectionmap[wwn.lower()]
        switchname = fields[0] 
        switchportname =   fields[1]
        switchport =   fields[2]
      else:
        switchname = 'Not_Connected' 
        switchportname =   'Not_Connected' 
        switchport =   'Not_Connected'       
      if 'Total' in port:
        color = '#C7C5C6'
        switchname = '---' 
        switchportname =   '---' 
        switchport =   '---'       
      else:
        color = '#DEF2FA'              
      dev_count  = str(sgObj.FA_Device_Count[FAPORT])
      row = [port,wwn, dev_count, switchname, switchportname, switchport]
      csvpage.append(', '.join(row) + '\n')
      page.append(www.tr_list(row,color))
    page.append(www.end_table)
    page.append(www.end_html)
    f.write_file(htmlfile,page)
    f.write_file(csvfile,csvpage)
开发者ID:vicengle,项目名称:EMC_VMAX,代码行数:71,代码来源:FA_report.py


注:本文中的HTML.HTML.tr_list方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。