// initializeCaches fills all controller caches with initial data from etcd in // order to have the caches already filled when first addClaim/addVolume to // perform initial synchronization of the controller. func (ctrl *PersistentVolumeController) initializeCaches(volumeSource, claimSource cache.ListerWatcher) { volumeListObj, err := volumeSource.List(api.ListOptions{}) if err != nil { glog.Errorf("PersistentVolumeController can't initialize caches: %v", err) return } volumeList, ok := volumeListObj.(*api.List) if !ok { glog.Errorf("PersistentVolumeController can't initialize caches, expected list of volumes, got: %+v", volumeListObj) return } for _, volume := range volumeList.Items { // Ignore template volumes from kubernetes 1.2 deleted := ctrl.upgradeVolumeFrom1_2(volume.(*api.PersistentVolume)) if !deleted { storeObjectUpdate(ctrl.volumes.store, volume, "volume") } } claimListObj, err := claimSource.List(api.ListOptions{}) if err != nil { glog.Errorf("PersistentVolumeController can't initialize caches: %v", err) return } claimList, ok := claimListObj.(*api.List) if !ok { glog.Errorf("PersistentVolumeController can't initialize caches, expected list of claims, got: %+v", volumeListObj) return } for _, claim := range claimList.Items { storeObjectUpdate(ctrl.claims, claim, "claim") } glog.V(4).Infof("controller initialized") }
// initializeCaches fills all controller caches with initial data from etcd in // order to have the caches already filled when first addClaim/addVolume to // perform initial synchronization of the controller. func (ctrl *PersistentVolumeController) initializeCaches(volumeSource, claimSource cache.ListerWatcher) { volumeListObj, err := volumeSource.List(v1.ListOptions{}) if err != nil { glog.Errorf("PersistentVolumeController can't initialize caches: %v", err) return } volumeList, ok := volumeListObj.(*v1.PersistentVolumeList) if !ok { glog.Errorf("PersistentVolumeController can't initialize caches, expected list of volumes, got: %#v", volumeListObj) return } for _, volume := range volumeList.Items { // Ignore template volumes from kubernetes 1.2 deleted := ctrl.upgradeVolumeFrom1_2(&volume) if !deleted { clone, err := api.Scheme.DeepCopy(&volume) if err != nil { glog.Errorf("error cloning volume %q: %v", volume.Name, err) continue } volumeClone := clone.(*v1.PersistentVolume) ctrl.storeVolumeUpdate(volumeClone) } } claimListObj, err := claimSource.List(v1.ListOptions{}) if err != nil { glog.Errorf("PersistentVolumeController can't initialize caches: %v", err) return } claimList, ok := claimListObj.(*v1.PersistentVolumeClaimList) if !ok { glog.Errorf("PersistentVolumeController can't initialize caches, expected list of claims, got: %#v", claimListObj) return } for _, claim := range claimList.Items { clone, err := api.Scheme.DeepCopy(&claim) if err != nil { glog.Errorf("error cloning claim %q: %v", claimToClaimKey(&claim), err) continue } claimClone := clone.(*v1.PersistentVolumeClaim) ctrl.storeClaimUpdate(claimClone) } glog.V(4).Infof("controller initialized") }