Skip to content

Commit

Permalink
Merge pull request #6130 from spadgett/topology-deployments
Browse files Browse the repository at this point in the history
Merged by openshift-bot
  • Loading branch information
OpenShift Bot committed Dec 1, 2015
2 parents f95bec5 + ef214a6 commit 44a37a2
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 28 deletions.
37 changes: 35 additions & 2 deletions assets/app/scripts/controllers/overview.js
Expand Up @@ -406,6 +406,32 @@ angular.module('openshiftConsole')
topologyItems[makeId(service)] = service;
});

var isRecentDeployment = $filter('isRecentDeployment');
$scope.isVisibleDeployment = function(deployment) {
// If this is a replication controller and not a deployment, then it's visible.
var dcName = annotationFilter(deployment, 'deploymentConfig');
if (!dcName) {
return true;
}

// If the deployment is active, it's visible.
if (hashSizeFilter($scope.podsByDeployment[deployment.metadata.name]) > 0) {
return true;
}

// Otherwise, show the deployment only if it's the latest.
if (!$scope.deploymentConfigs) {
return false;
}

var dc = $scope.deploymentConfigs[dcName];
if (!dc) {
return false;
}

return isRecentDeployment(deployment, dc);
};

// Add everything related to services, each of these tables are in
// standard form with string keys, pointing to a map of further
// name -> resource mappings.
Expand All @@ -420,9 +446,16 @@ angular.module('openshiftConsole')
var service = $scope.services[serviceName];
if (!serviceName || service) {
angular.forEach(resources, function(resource) {
if (map !== $scope.monopodsByService || showMonopod(resource)) {
topologyItems[makeId(resource)] = resource;
// Filter some items to be consistent with the tiles view.
if (map === $scope.monopodsByService && !showMonopod(resource)) {
return;
}

if (map === $scope.deploymentsByService && !$scope.isVisibleDeployment(resource)) {
return;
}

topologyItems[makeId(resource)] = resource;
});
}
});
Expand Down
4 changes: 2 additions & 2 deletions assets/app/views/project.html
Expand Up @@ -166,8 +166,8 @@ <h2 ng-if="!displayRouteByService[serviceId]">
</div>

<div ng-repeat="deployment in deployments | orderObjectsByDate : true track by (deployment | uid)"
ng-if="(podsByDeployment[deployment.metadata.name] | hashSize) > 0 || (deployment | isRecentDeployment : deploymentConfigs[deploymentConfigId]) || !(deployment | isDeployment)"
class="animate-repeat">
ng-if="isVisibleDeployment(deployment)"
class="animate-repeat">

<!-- Make sure deploymentConfigs are loaded before testing if the deployment config is missing. -->
<overview-deployment
Expand Down
57 changes: 33 additions & 24 deletions pkg/assets/bindata.go
Expand Up @@ -3191,42 +3191,51 @@ function b(a) {
return a.kind + a.metadata.uid;
}
B = null;
var c = [], d = {};
var e = [], f = {};
angular.forEach(a.services, function(a) {
d[b(a)] = a;
}), [ a.podsByService, a.monopodsByService, a.deploymentsByService, a.deploymentConfigsByService, a.routesByService ].forEach(function(c) {
angular.forEach(c, function(e, f) {
var g = a.services[f];
(!f || g) && angular.forEach(e, function(e) {
(c !== a.monopodsByService || p(e)) && (d[b(e)] = e);
});
});
}), [ a.podsByService, a.monopodsByService, a.routesByService ].forEach(function(d) {
angular.forEach(d, function(d, e) {
var f = a.services[e];
f && angular.forEach(d, function(a) {
c.push({
f[b(a)] = a;
});
var g = m("isRecentDeployment");
a.isVisibleDeployment = function(b) {
var e = c(b, "deploymentConfig");
if (!e) return !0;
if (d(a.podsByDeployment[b.metadata.name]) > 0) return !0;
if (!a.deploymentConfigs) return !1;
var f = a.deploymentConfigs[e];
return f ? g(b, f) :!1;
}, [ a.podsByService, a.monopodsByService, a.deploymentsByService, a.deploymentConfigsByService, a.routesByService ].forEach(function(c) {
angular.forEach(c, function(d, e) {
var g = a.services[e];
(!e || g) && angular.forEach(d, function(d) {
(c !== a.monopodsByService || p(d)) && (c !== a.deploymentsByService || a.isVisibleDeployment(d)) && (f[b(d)] = d);
});
});
}), [ a.podsByService, a.monopodsByService, a.routesByService ].forEach(function(c) {
angular.forEach(c, function(c, d) {
var f = a.services[d];
f && angular.forEach(c, function(a) {
e.push({
source:b(f),
target:b(a)
});
});
});
}), angular.forEach(a.podsByDeployment, function(e, f) {
var g = a.deployments[f];
b(g) in d && angular.forEach(e, function(a) {
d[b(a)] = a, c.push({
}), angular.forEach(a.podsByDeployment, function(c, d) {
var g = a.deployments[d];
b(g) in f && angular.forEach(c, function(a) {
f[b(a)] = a, e.push({
source:b(g),
target:b(a)
});
});
}), angular.forEach(a.deployments, function(d, e) {
var f, g = d.metadata.annotations || {}, h = g["openshift.io/deployment-config.name"] || e;
h && a.deploymentConfigs && (f = a.deploymentConfigs[h], f && c.push({
}), angular.forEach(a.deployments, function(c, d) {
var f, g = c.metadata.annotations || {}, h = g["openshift.io/deployment-config.name"] || d;
h && a.deploymentConfigs && (f = a.deploymentConfigs[h], f && e.push({
source:b(f),
target:b(d)
target:b(c)
}));
}), a.$evalAsync(function() {
a.topologyItems = d, a.topologyRelations = c;
a.topologyItems = f, a.topologyRelations = e;
});
}
function x() {
Expand Down Expand Up @@ -9464,7 +9473,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
"\n" +
"<triggers triggers=\"deploymentConfigsByService[serviceId][deploymentConfigId].spec.triggers\" builds-by-output-image=\"recentBuildsByOutputImage\" namespace=\"projectName\"></triggers>\n" +
"</div>\n" +
"<div ng-repeat=\"deployment in deployments | orderObjectsByDate : true track by (deployment | uid)\" ng-if=\"(podsByDeployment[deployment.metadata.name] | hashSize) > 0 || (deployment | isRecentDeployment : deploymentConfigs[deploymentConfigId]) || !(deployment | isDeployment)\" class=\"animate-repeat\">\n" +
"<div ng-repeat=\"deployment in deployments | orderObjectsByDate : true track by (deployment | uid)\" ng-if=\"isVisibleDeployment(deployment)\" class=\"animate-repeat\">\n" +
"\n" +
"<overview-deployment rc=\"deployment\" deployment-config-id=\"deploymentConfigId\" deployment-config-missing=\"deploymentConfigs && !deploymentConfigs[deploymentConfigId]\" deployment-config-different-service=\"deploymentConfigs[deploymentConfigId] && !deploymentConfigsByService[serviceId][deploymentConfigId]\" images-by-docker-reference=\"imagesByDockerReference\" builds=\"builds\" pods=\"podsByDeployment[deployment.metadata.name]\" alerts=\"alerts\">\n" +
"</overview-deployment>\n" +
Expand Down

0 comments on commit 44a37a2

Please sign in to comment.