// Search for a check bundle given a predetermined set of criteria func (cm *CheckManager) checkBundleSearch(criteria string) (*api.CheckBundle, error) { checkBundles, err := cm.apih.CheckBundleSearch(api.SearchQueryType(criteria)) if err != nil { return nil, err } if len(checkBundles) == 0 { return nil, nil // trigger creation of a new check } numActive := 0 checkID := -1 for idx, check := range checkBundles { if check.Status == statusActive { numActive++ checkID = idx } } if numActive > 1 { return nil, fmt.Errorf("[ERROR] Multiple possibilities multiple check bundles match criteria %s\n", criteria) } return &checkBundles[checkID], nil }
// Search for a check bundle given a predetermined set of criteria func (cm *CheckManager) checkBundleSearch(criteria string, filter map[string][]string) (*api.CheckBundle, error) { search := api.SearchQueryType(criteria) checkBundles, err := cm.apih.SearchCheckBundles(&search, &filter) if err != nil { return nil, err } if len(*checkBundles) == 0 { return nil, nil // trigger creation of a new check } numActive := 0 checkID := -1 for idx, check := range *checkBundles { if check.Status == statusActive { numActive++ checkID = idx } } if numActive > 1 { return nil, fmt.Errorf("[ERROR] multiple check bundles match criteria %s", criteria) } bundle := (*checkBundles)[checkID] return &bundle, nil }