2016-04-22 16 views
-2
の終わりに最終結果を印刷

コードブロックはがループ全体

regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1'] 

data = [] 
header = ["Port","Open For","Security group","Instance Details"] 

    for region in regions: 
     connection=ec2.connect_to_region(region) 
     sg = connection.get_all_security_groups() 
     try: 
      for securityGroup in sg: 
       for rule in securityGroup.rules: 
        if '0.0.0.0/0' in str(rule.grants): 
         for instanceid in securityGroup.instances(): 
          instanceId=str(instanceid) 
         # print instanceId 
          tag = getTag(connection, instanceId.split(':')[1]) 
          if tag is not None: 
          # print tab    
           tab =[str(rule.to_port),"0.0.0.0/0",str(securityGroup.name),str(getTag(connection, instanceId.split(':')[1]))] 
           data.append(tab) 
      print tabulate(data, headers=header, tablefmt='simple') 

これはその結果を生成ようになっています。いつかここ

Port Open For Security group   Instance Details 
------ ---------- ----------------------- ------------------------------------------------------------------------ 
65535 0.0.0.0/0 launch-wizard-mingjun (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1) 
    22 0.0.0.0/0 launch-wizard-mingjun (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1) 
    80 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    22 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    443 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    22 0.0.0.0/0 na-prod-1w-secgroup  (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1) 

待機してから印刷し

Port Open For Security group   Instance Details 
------ ---------- ----------------------- ------------------------------------------------------------------------ 
65535 0.0.0.0/0 launch-wizard-mingjun (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1) 
    22 0.0.0.0/0 launch-wizard-mingjun (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1) 
    80 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    22 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    443 0.0.0.0/0 SSH+HTTPS    (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1) 
    22 0.0.0.0/0 na-prod-1w-secgroup  (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1) 
    443 0.0.0.0/0 na-prod-1w-secgroup  (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1) 
    80 0.0.0.0/0 sfo01-devops-haproxy-sg (u'sfo01-cwptest-LBi-f207da47', u'192.168.80.171', RegionInfo:us-west-1) 
    80 0.0.0.0/0 sfo01-devops-haproxy-sg (u'sfo01-cwptest-LBi-e1a72422', u'192.168.80.156', RegionInfo:us-west-1) 
    443 0.0.0.0/0 sfo01-devops-haproxy-sg (u'sfo01-cwptest-LBi-f207da47', u'192.168.80.171', RegionInfo:us-west-1) 
    443 0.0.0.0/0 sfo01-devops-haproxy-sg (u'sfo01-cwptest-LBi-e1a72422', u'192.168.80.156', RegionInfo:us-west-1) 
65535 0.0.0.0/0 Nishant-Open    (u'POC-demo-es/kib', u'10.205.11.150', RegionInfo:us-west-2) 
    22 0.0.0.0/0 Nishant-Open    (u'POC-demo-es/kib', u'10.205.11.150', RegionInfo:us-west-2) 
    5601 0.0.0.0/0 Nishant-Open 
.... 

なぜ1つには行かないのですか?

+0

headerと呼ばれるリスト変数を作成する前に、あなたは何ができますか。かなりシンプルでなければならない。 –

答えて

2

ループを開始するためだけの辞書やリストにデータをプッシュし、ループ終了後にそれを解析data

data = [] 
header = ["Port","Open For","Security group","Instance Details"] 
for region in regions: 
    # your code.... 
    . 
    . 
    . 
    if tag is not None: 
     tab =[str(rule.to_port),"0.0.0.0/0",str(securityGroup.name),str(getTag(connection, instanceId.split(':')[1]))]  
     data.append(tab) 
print tabulate(data, headers=header, tablefmt='grid') 
+0

最後の印刷ステートメントのインデントに何か問題がある –

+1

エラーを表示することはできますか?第1ループの終了時にprintステートメントを置く必要があります。 – Hackaholic

+0

がそこにハングアップする –

0

タグの値を辞書に格納するか、またはリストして、プログラムの最後に辞書を印刷してください。印刷形式を使用して表形式で印刷することができます。