// WatchRoutes begins watching for new, changed, or deleted route configurations. func (registry *Etcd) WatchRoutes(ctx kapi.Context, label labels.Selector, field fields.Selector, resourceVersion string) (watch.Interface, error) { if !label.Empty() { return nil, fmt.Errorf("label selectors are not supported on routes yet") } version, err := storage.ParseWatchResourceVersion(resourceVersion, "pod") if err != nil { return nil, err } if value, found := field.RequiresExactMatch("ID"); found { key, err := makeRouteKey(ctx, value) if err != nil { return nil, err } return registry.Watch(key, version, storage.Everything) } if field.Empty() { key := kubeetcd.MakeEtcdListKey(ctx, RoutePath) return registry.WatchList(key, version, storage.Everything) } return nil, fmt.Errorf("only the 'ID' and default (everything) field selectors are supported") }
func makeRouteListKey(ctx kapi.Context) string { return kubeetcd.MakeEtcdListKey(ctx, RoutePath) }
func makeBuildListKey(ctx kapi.Context) string { return kubeetcd.MakeEtcdListKey(ctx, BuildPath) }