func (s *consulStore) FindWhereLabeled(podID types.PodID, availabilityZone fields.AvailabilityZone, clusterName fields.ClusterName) ([]fields.PodCluster, error) { sel := klabels.Everything(). Add(fields.PodIDLabel, klabels.EqualsOperator, []string{podID.String()}). Add(fields.AvailabilityZoneLabel, klabels.EqualsOperator, []string{availabilityZone.String()}). Add(fields.ClusterNameLabel, klabels.EqualsOperator, []string{clusterName.String()}) podClusters, err := s.applicator.GetMatches(sel, labels.PC) if err != nil { return nil, err } ret := make([]fields.PodCluster, len(podClusters)) for i, pc := range podClusters { ret[i], err = s.Get(fields.ID(pc.ID)) if err != nil { return nil, err } } return ret, nil }
func pcCreateLockPath(podID types.PodID, availabilityZone fields.AvailabilityZone, clusterName fields.ClusterName) string { return path.Join(consulutil.LOCK_TREE, podID.String(), availabilityZone.String(), clusterName.String()) }
func selectorFrom(az fields.AvailabilityZone, cn fields.ClusterName, podID types.PodID) klabels.Selector { return klabels.Everything(). Add(fields.PodIDLabel, klabels.EqualsOperator, []string{podID.String()}). Add(fields.AvailabilityZoneLabel, klabels.EqualsOperator, []string{az.String()}). Add(fields.ClusterNameLabel, klabels.EqualsOperator, []string{cn.String()}) }