in app/scripts/modules/kubernetes/instance/details/details.controller.js [48:142]
function retrieveInstance() {
var extraData = {};
var instanceSummary, loadBalancers, account, namespace;
if (!app.serverGroups) {
// standalone instance
instanceSummary = {};
loadBalancers = [];
account = instance.account;
namespace = instance.region;
} else {
app.serverGroups.data.some(function (serverGroup) {
return serverGroup.instances.some(function (possibleInstance) {
if (possibleInstance.id === instance.instanceId) {
instanceSummary = possibleInstance;
loadBalancers = serverGroup.loadBalancers;
account = serverGroup.account;
namespace = serverGroup.region;
extraData.serverGroup = serverGroup.name;
return true;
}
});
});
if (!instanceSummary) {
// perhaps it is in a server group that is part of another application
app.loadBalancers.data.some(function (loadBalancer) {
return loadBalancer.instances.some(function (possibleInstance) {
if (possibleInstance.id === instance.instanceId) {
instanceSummary = possibleInstance;
loadBalancers = [loadBalancer.name];
account = loadBalancer.account;
namespace = loadBalancer.region;
return true;
}
});
});
if (!instanceSummary) {
// perhaps it is in a disabled server group via a load balancer
app.loadBalancers.data.some(function (loadBalancer) {
return loadBalancer.serverGroups.some(function (serverGroup) {
if (!serverGroup.isDisabled) {
return false;
}
return serverGroup.instances.some(function (possibleInstance) {
if (possibleInstance.id === instance.instanceId) {
instanceSummary = possibleInstance;
loadBalancers = [loadBalancer.name];
account = loadBalancer.account;
namespace = loadBalancer.region;
return true;
}
});
});
});
}
}
}
if (instanceSummary && account && namespace) {
extraData.account = account;
extraData.namespace = namespace;
recentHistoryService.addExtraDataToLatest('instances', extraData);
return instanceReader.getInstanceDetails(account, namespace, instance.instanceId).then(function(details) {
$scope.state.loading = false;
$scope.instance = _.defaults(details, instanceSummary);
$scope.instance.account = account;
$scope.instance.namespace = namespace;
$scope.instance.region = namespace;
$scope.instance.loadBalancers = loadBalancers;
var pod = $scope.instance.pod;
$scope.instance.dnsPolicy = pod.spec.dnsPolicy;
$scope.instance.apiVersion = pod.apiVersion;
$scope.instance.kind = pod.kind;
$scope.instance.nodeName = pod.spec.nodeName;
$scope.instance.restartPolicy = pod.spec.restartPolicy;
$scope.instance.terminationGracePeriodSeconds = pod.spec.terminationGracePeriodSeconds;
$scope.instance.hostIp = pod.status.hostIP;
$scope.instance.podIp = pod.status.podIP;
$scope.instance.phase = pod.status.phase;
$scope.instance.volumes = pod.spec.volumes;
$scope.instance.metadata = pod.metadata;
$scope.instance.imagePullSecrets = pod.spec.imagePullSecrets;
$scope.instance.containers = pod.spec.containers;
$scope.instance.containerStatuses = pod.status.containerStatuses;
},
autoClose
);
}
if (!instanceSummary) {
$scope.instanceIdNotFound = instance.instanceId;
$scope.state.loading = false;
}
return $q.when(null);
}