func (e *clusterQuotaAccessor) waitForReadyClusterQuotaNames(namespaceName string) ([]string, error) { var clusterQuotaNames []string // wait for a valid mapping cache. The overall response can be delayed for up to 10 seconds. err := utilwait.PollImmediate(100*time.Millisecond, 8*time.Second, func() (done bool, err error) { var namespaceSelectionFields clusterquotamapping.SelectionFields clusterQuotaNames, namespaceSelectionFields = e.clusterQuotaMapper.GetClusterQuotasFor(namespaceName) namespace, err := e.namespaceLister.Get(namespaceName) if err != nil { return false, err } if kapi.Semantic.DeepEqual(namespaceSelectionFields, clusterquotamapping.GetSelectionFields(namespace)) { return true, nil } return false, nil }) return clusterQuotaNames, err }
func (e *clusterQuotaAccessor) waitForReadyClusterQuotaNames(namespaceName string) ([]string, error) { var clusterQuotaNames []string // wait for a valid mapping cache. The overall response can be delayed for up to 10 seconds. err := utilwait.PollImmediate(100*time.Millisecond, 8*time.Second, func() (done bool, err error) { var namespaceSelectionFields clusterquotamapping.SelectionFields clusterQuotaNames, namespaceSelectionFields = e.clusterQuotaMapper.GetClusterQuotasFor(namespaceName) obj, ok, err := e.namespaceLister.Get(&kapi.Namespace{ObjectMeta: kapi.ObjectMeta{Name: namespaceName}}) if err != nil { return false, err } if !ok { return false, kapierrors.NewNotFound(unversioned.GroupResource{Resource: "namespace"}, namespaceName) } namespace := obj.(*kapi.Namespace) if kapi.Semantic.DeepEqual(namespaceSelectionFields, clusterquotamapping.GetSelectionFields(namespace)) { return true, nil } return false, nil }) return clusterQuotaNames, err }