func agedStream(registry, namespace, name string, ageInMinutes int64, tags map[string]imageapi.TagEventList) imageapi.ImageStream { stream := imageapi.ImageStream{ ObjectMeta: kapi.ObjectMeta{ Namespace: namespace, Name: name, }, Status: imageapi.ImageStreamStatus{ DockerImageRepository: fmt.Sprintf("%s/%s/%s", registry, namespace, name), Tags: tags, }, } if ageInMinutes >= 0 { stream.CreationTimestamp = util.NewTime(util.Now().Add(time.Duration(-1*ageInMinutes) * time.Minute)) } return stream }
// done marks the stream as being processed due to an error or failure condition func (c *ImportController) done(stream *api.ImageStream, reason string, retry int) error { if len(reason) == 0 { reason = util.Now().UTC().Format(time.RFC3339) } if stream.Annotations == nil { stream.Annotations = make(map[string]string) } stream.Annotations[api.DockerImageRepositoryCheckAnnotation] = reason if _, err := c.streams.ImageStreams(stream.Namespace).Update(stream); err != nil && !errors.IsNotFound(err) { if errors.IsConflict(err) && retry > 0 { if stream, err := c.streams.ImageStreams(stream.Namespace).Get(stream.Name); err == nil { return c.done(stream, reason, retry-1) } } return err } return nil }
// dockerImageRepository determines the docker image stream for stream. // If stream.DockerImageRepository is set, that value is returned. Otherwise, // if a default registry exists, the value returned is of the form // <default registry>/<namespace>/<stream name>. func (s Strategy) dockerImageRepository(stream *api.ImageStream) string { if len(stream.Spec.DockerImageRepository) != 0 { return stream.Spec.DockerImageRepository } registry, ok := s.defaultRegistry.DefaultRegistry() if !ok { return "" } if len(stream.Namespace) == 0 { stream.Namespace = kapi.NamespaceDefault } ref := api.DockerImageReference{ Registry: registry, Namespace: stream.Namespace, Name: stream.Name, } return ref.String() }