code: func (c *Cloud) FindSnapshot(tags map[string]string) ([]string, []string, error) {
  	request := &ec2.DescribeSnapshotsInput{}
  	for k, v := range tags {
  		filter := &ec2.Filter{}
  		filter.SetName(k)
  		filter.SetValues([]*string{&v})
  
  		request.Filters = append(request.Filters, filter)
  	}
  
  	result, err := c.ec2.DescribeSnapshots(request)
  	if err != nil {
  		return nil, nil, err
  	}
  	var snapshotIDs, statuses []string
  	for _, snapshot := range result {
  		id := *snapshot.SnapshotId
  		status := *snapshot.State
  		glog.Infof("found %s, status %s", id, status)
  		snapshotIDs = append(snapshotIDs, id)
  		statuses = append(statuses, status)
  	}
  	return snapshotIDs, statuses, nil
  }
docs: // FindSnapshot returns the found snapshot