-
{{image.dockerImageReference | imageName}} ({{image.metadata.name}})
-
Created:
-
Created from: Build {{build.metadata.labels.buildconfig}} (
{{build.metadata.name.substr(0, 10)}})
+
+
+
+ {{imageStream.metadata.name}}:{{tag.tag}}
+ — No images for this tag
+
+ —
+
+ created
+
+
+
+
+
From Docker repository: {{imageStream.spec.dockerImageRepository}}:{{tag.tag}}
+
+
+
From Docker repository: {{specTag.dockerImageReference}}
+
From image stream: {{specTag.from.namespace}}/{{specTag.from.name}}
+
+
+
+
+
+
+
+ {{image.dockerImageReference}}
+ created
+
+
+
+
+
diff --git a/pkg/assets/bindata.go b/pkg/assets/bindata.go
index 8ba524c2f21f..f29f32bb6365 100644
--- a/pkg/assets/bindata.go
+++ b/pkg/assets/bindata.go
@@ -12074,6 +12074,10 @@ select:invalid {
font-size: 11px;
font-weight: normal;
}
+.short-id {
+ background-color: #f1f1f1;
+ color: #666;
+}
`)
func css_main_css() ([]byte, error) {
@@ -12835,7 +12839,7 @@ return c.join(f, "project.html");
}).build();
h.icon = "dashboard", a.push(h), h = c.create().id(c.join(g, "browse")).title(function() {
return "Browse";
-}).template(d).href(e("browse")).subPath("Builds", "builds", c.join(f, "builds.html")).subPath("Deployments", "deployments", c.join(f, "deployments.html")).subPath("Images", "images", c.join(f, "images.html")).subPath("Pods", "pods", c.join(f, "pods.html")).subPath("Services", "services", c.join(f, "services.html")).build(), h.icon = "sitemap", a.push(h), h = c.create().id(c.join(g, "settings")).title(function() {
+}).template(d).href(e("browse")).subPath("Builds", "builds", c.join(f, "builds.html")).subPath("Deployments", "deployments", c.join(f, "deployments.html")).subPath("Image Streams", "images", c.join(f, "images.html")).subPath("Pods", "pods", c.join(f, "pods.html")).subPath("Services", "services", c.join(f, "services.html")).build(), h.icon = "sitemap", a.push(h), h = c.create().id(c.join(g, "settings")).title(function() {
return "Settings";
}).template(d).href(e("settings")).page(function() {
return c.join(f, "settings.html");
@@ -13249,11 +13253,12 @@ h.push(a), j--, e();
h = h || {};
var i = !!h.force;
delete h.force;
-var j = d.defer();
+var j = d.defer(), k = this._data(b, g);
+if (this._isTypeCached(b) && k && k.by("metadata.name")[e]) return k.by("metadata.name")[e];
if (!i && this._watchInFlight(b, g) && this._resourceVersion(b, g)) {
-var k = this._data(b, g).by("metadata.name")[e];
-c.$apply(k ? function() {
-j.resolve(k);
+var l = k.by("metadata.name")[e];
+c.$apply(l ? function() {
+j.resolve(l);
} :function() {
j.reject({
data:{},
@@ -13265,13 +13270,13 @@ config:{}
});
});
} else {
-var l = this;
+var m = this;
this._getNamespace(b, g, h).then(function(c) {
a(angular.extend({
method:"GET",
-url:l._urlForType(b, e, g, !1, c)
+url:m._urlForType(b, e, g, !1, c)
}, h.http || {})).success(function(a) {
-j.resolve(a);
+m._isTypeCached(b) && (k ? k.update(a, "ADDED") :m._data(b, g, [ a ])), j.resolve(a);
}).error(function(a, c, d, g) {
if (h.errorNotification !== !1) {
var i = "Failed to get " + b + "/" + e;
@@ -13424,6 +13429,8 @@ deploymentConfigs:e.openshift,
images:e.openshift,
imageRepositories:e.openshift,
imageStreams:e.openshift,
+imageStreamImages:e.openshift,
+imageStreamTags:e.openshift,
oAuthAccessTokens:e.openshift,
oAuthAuthorizeTokens:e.openshift,
oAuthClients:e.openshift,
@@ -13489,8 +13496,14 @@ Service:"services",
ResourceQuota:"resourcequotas",
LimitRange:"limitranges"
};
-return i.prototype._objectType = function(a) {
+i.prototype._objectType = function(a) {
return t[a];
+};
+var u = {
+imageStreamImages:!0
+};
+return i.prototype._isTypeCached = function(a) {
+return !!u[a];
}, i.prototype._getNamespace = function(a, b, c) {
var e = d.defer();
return c.namespace ? e.resolve({
@@ -13862,22 +13875,20 @@ a.builds = b.select(a.unfilteredBuilds), g();
b.unwatchAll(f);
});
} ]), angular.module("openshiftConsole").controller("ImagesController", [ "$scope", "DataService", "$filter", "LabelFilter", "Logger", function(a, b, c, d, e) {
-a.images = {}, a.unfilteredImages = {}, a.builds = {}, a.labelSuggestions = {}, a.alerts = a.alerts || {}, a.emptyMessage = "Loading...";
+a.imageStreams = {}, a.unfilteredImageStreams = {}, a.builds = {}, a.labelSuggestions = {}, a.alerts = a.alerts || {}, a.emptyMessage = "Loading...";
var f = [];
-f.push(b.watch("images", a, function(b) {
-a.unfilteredImages = b.by("metadata.name"), d.addLabelSuggestionsFromResources(a.unfilteredImages, a.labelSuggestions), d.setLabelSuggestions(a.labelSuggestions), a.images = d.getLabelSelector().select(a.unfilteredImages), a.emptyMessage = "No images to show", g(), e.log("images (subscribe)", a.images);
-})), f.push(b.watch("builds", a, function(b) {
-a.builds = b.by("metadata.name"), e.log("builds (subscribe)", a.builds);
+f.push(b.watch("imageStreams", a, function(b) {
+a.unfilteredImageStreams = b.by("metadata.name"), d.addLabelSuggestionsFromResources(a.unfilteredImageStreams, a.labelSuggestions), d.setLabelSuggestions(a.labelSuggestions), a.imageStreams = d.getLabelSelector().select(a.unfilteredImageStreams), a.emptyMessage = "No image streams to show", g(), e.log("image streams (subscribe)", a.imageStreams);
}));
var g = function() {
-d.getLabelSelector().isEmpty() || !$.isEmptyObject(a.images) || $.isEmptyObject(a.unfilteredImages) ? delete a.alerts.images :a.alerts.images = {
+d.getLabelSelector().isEmpty() || !$.isEmptyObject(a.imageStreams) || $.isEmptyObject(a.unfilteredImageStreams) ? delete a.alerts.imageStreams :a.alerts.imageStreams = {
type:"warning",
-details:"The active filters are hiding all images."
+details:"The active filters are hiding all image streams."
};
};
d.onActiveFiltersChanged(function(b) {
a.$apply(function() {
-a.images = b.select(a.unfilteredImages), g();
+a.imageStreams = b.select(a.unfilteredImageStreams), g();
});
}), a.$on("$destroy", function() {
b.unwatchAll(f);
@@ -14289,6 +14300,14 @@ placement:"bottom"
}));
}
};
+}).directive("shortId", function() {
+return {
+restrict:"E",
+scope:{
+id:"@"
+},
+template:'
{{id.substring(0, 6)}}
'
+};
}), angular.module("openshiftConsole").directive("labels", function() {
return {
restrict:"E",
@@ -59856,7 +59875,8 @@ select:invalid{box-shadow:none}
.well h1:first-child,.well h2:first-child,.well h3:first-child,.well h4:first-child,.well h5:first-child{margin-top:0}
.attention-message{background-color:#79cef2;border:1px solid #138cbf;position:absolute;top:20%;left:50%;transform:translate(-50%,-50%);padding:1em 1em 2em;min-width:85%}
.attention-message h1,.attention-message p{text-align:center}
-.learn-more-block{display:block;font-size:11px;font-weight:400}`)
+.learn-more-block{display:block;font-size:11px;font-weight:400}
+.short-id{background-color:#f1f1f1;color:#666}`)
func styles_main_css() ([]byte, error) {
return _styles_main_css, nil
@@ -60129,14 +60149,14 @@ var _views_pod_template_html = []byte(`
@@ -60146,7 +60166,7 @@ var _views_pod_template_html = []byte(`
{{build.parameters.revision.git.message}}
-({{build.parameters.revision.git.commit.substr(0, 10)}})
+({{build.parameters.revision.git.commit.substr(0, 10)}})
authored by {{build.parameters.revision.git.author.name}}
@@ -60766,20 +60786,48 @@ func views_directives_copy_to_clipboard_html() ([]byte, error) {
var _views_images_html = []byte(`
-
Images
+
Image Streams
-
+
-
-
{{image.dockerImageReference | imageName}} ({{image.metadata.name}})
-
Created:
-
Created from: Build {{build.metadata.labels.buildconfig}} (
{{build.metadata.name.substr(0, 10)}})
+
+
+
+{{imageStream.metadata.name}}:{{tag.tag}}
+ — No images for this tag
+
+ —
+
+ created
+
+
+
+
+
From Docker repository: {{imageStream.spec.dockerImageRepository}}:{{tag.tag}}
+
+
+
From Docker repository: {{specTag.dockerImageReference}}
+
From image stream: {{specTag.from.namespace}}/{{specTag.from.name}}
-
+
+
+
+
+
+{{image.dockerImageReference}}
+ created
+
+
+
+
+
+
+
+
`)
func views_images_html() ([]byte, error) {