2017-03-01 71 views
0

我想知道有多少个快照在卷上被删除。在这种情况下,卷的快照可用,但卷被删除。我不知道我怎么能找到它。以下是密码找到卷被删除的快照

volList=[{"VolumeId":"vol-sss","State":"in-use"},{"VolumeId":"vol-defghi","State":"available"},{"VolumeId":"vol-sfjfrf","State":"in-use"}] 
snapList=[{"VolumeId":"vol-sss","snap-id":"sna-1356"},{"VolumeId":"vol-sss","snap-id":"sna-asd"},{"VolumeId":"vol-defghi","snap-id":"snap-1256"},{"VolumeId":"vol-defghi","snap-id":"snap-11"},{"VolumeId":"vol-sfjfrf","snap-id":"snap-456"},{"VolumeId":"v-fffff","snap-id":"snap-123"}] 

for snap in snapList: 
    for vol in volList: 
     if snap['VolumeId'] == vol['VolumeId']: 
      print "match volume id :" + snap['VolumeId'] + " state " + vol['State'] + " snap-id : " + snap['snap-id'] 
     else: 
      print "not match volume id :" + snap['VolumeId'] + " state not found" + " snap-id : " + snap['snap-id'] 
+0

您显示代码,但是什么是您的问题? – mootmoot

+0

我的问题是volumeid v-fffff存在于管理单元中,但它在vollist中不可用,我想从列表中提取volumeid –

回答

0

我找到了解决方案。索引是这种情况下的解决方案

volList=[{"VolumeId":"vol-sss","State":"in-use"},{"VolumeId":"vol-defghi","State":"available"},{"VolumeId":"vol-sfjfrf","State":"in-use"}] 
snapList=[{"VolumeId":"vol-sss","snap-id":"sna-1356"},{"VolumeId":"vol-sss","snap-id":"sna-asd"},{"VolumeId":"vol-defghi","snap-id":"snap-1256"},{"VolumeId":"vol-defghi","snap-id":"snap-11"},{"VolumeId":"vol-sfjfrf","snap-id":"snap-456"},{"VolumeId":"v-fffff","snap-id":"snap-123"}] 
print len(snapList) 
volIdList=[] 
for ids in volList: 
    volIdList.append(ids['VolumeId']) 
mainSnap=[] 
for snap in snapList: 
    try: 
     if (volIdList.index(snap['VolumeId'])< 0): 
      print " not match volume id :" + snap['VolumeId'] 
     else: 
      for v in volList: 
       if v['VolumeId']==snap['VolumeId']: 
        print "match volume id :" + snap['VolumeId'] + " " + v['State'] + " " + snap['snap-id'] 

    except ValueError: 
     print " state not found " + snap['VolumeId'] + " " + snap['snap-id']