feat(ui): new exception management

pull/188/head
Anthony Lapenna 2016-09-02 17:40:03 +12:00
parent eac3239817
commit 74b97a0036
13 changed files with 59 additions and 109 deletions

View File

@ -34,13 +34,8 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
}
$('#loadingViewSpinner').hide();
}, function (e) {
if (e.status === 404) {
$('.detail').hide();
Messages.error("Not found", "Container not found.");
} else {
Messages.error("Failure", e.data);
}
$('#loadingViewSpinner').hide();
Messages.error("Failure", e, "Unable to retrieve container info");
});
};
@ -51,7 +46,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container started", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to start." + e.data);
Messages.error("Failure", e, "Unable to start container");
});
};
@ -62,7 +57,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container stopped", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to stop." + e.data);
Messages.error("Failure", e, "Unable to stop container");
});
};
@ -73,7 +68,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container killed", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to die." + e.data);
Messages.error("Failure", e, "Unable to kill container");
});
};
@ -83,13 +78,13 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
var registry = _.toLower($scope.config.Registry);
var imageConfig = ImageHelper.createImageConfig(image, registry);
ContainerCommit.commit({id: $stateParams.id, tag: imageConfig.tag, repo: imageConfig.repo}, function (d) {
update();
$('#createImageSpinner').hide();
update();
Messages.send("Container commited", $stateParams.id);
}, function (e) {
update();
$('#createImageSpinner').hide();
Messages.error("Failure", "Container failed to commit." + e.data);
update();
Messages.error("Failure", e, "Unable to commit container");
});
};
@ -100,7 +95,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container paused", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to pause." + e.data);
Messages.error("Failure", e, "Unable to pause container");
});
};
@ -111,7 +106,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container unpaused", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to unpause." + e.data);
Messages.error("Failure", e, "Unable to unpause container");
});
};
@ -127,12 +122,8 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container removed", $stateParams.id);
}
}, function (e) {
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to remove container');
}
update();
Messages.error("Failure", e, "Unable to remove container");
});
};
@ -143,7 +134,7 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Messages.send("Container restarted", $stateParams.id);
}, function (e) {
update();
Messages.error("Failure", "Container failed to restart." + e.data);
Messages.error("Failure", e, "Unable to restart container");
});
};
@ -151,17 +142,13 @@ function ($scope, $state, $stateParams, $filter, Container, ContainerCommit, Ima
Container.rename({id: $stateParams.id, 'name': $scope.container.newContainerName}, function (d) {
if (d.message) {
$scope.container.newContainerName = $scope.container.Name;
Messages.error("Unable to rename container", d.message);
Messages.error("Unable to rename container", {}, d.message);
} else {
$scope.container.Name = $scope.container.newContainerName;
Messages.send("Container successfully renamed", d.name);
}
}, function (e) {
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to rename container');
}
Messages.error("Failure", e, 'Unable to rename container');
});
$scope.container.edit = false;
};

View File

@ -35,7 +35,7 @@ function ($scope, $stateParams, Settings, Container, Exec, $timeout, Messages) {
Container.exec(execConfig, function(d) {
if (d.message) {
$('#loadConsoleSpinner').hide();
Messages.error('Error', d.message);
Messages.error("Error", {}, d.message);
} else {
var execId = d.Id;
resizeTTY(execId, termHeight, termWidth);
@ -49,11 +49,7 @@ function ($scope, $stateParams, Settings, Container, Exec, $timeout, Messages) {
}
}, function (e) {
$('#loadConsoleSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to start an exec instance');
}
Messages.error("Failure", e, 'Unable to start an exec instance');
});
};
@ -71,10 +67,10 @@ function ($scope, $stateParams, Settings, Container, Exec, $timeout, Messages) {
$timeout(function() {
Exec.resize({id: execId, height: height, width: width}, function (d) {
if (d.message) {
Messages.error('Error', 'Unable to resize TTY');
Messages.error('Error', {}, 'Unable to resize TTY');
}
}, function (e) {
Messages.error("Failure", 'Unable to resize TTY');
Messages.error("Failure", {}, 'Unable to resize TTY');
});
}, 2000);

View File

@ -13,12 +13,8 @@ function ($scope, $stateParams, $anchorScroll, ContainerLogs, Container) {
$scope.container = d;
$('#loadingViewSpinner').hide();
}, function (e) {
if (e.status === 404) {
Messages.error("Not found", "Container not found.");
} else {
Messages.error("Failure", e.data);
}
$('#loadingViewSpinner').hide();
Messages.error("Failure", e, "Unable to retrieve container info");
});
function getLogs() {

View File

@ -54,7 +54,7 @@ function ($scope, Container, ContainerHelper, Info, Settings, Messages, Config)
Messages.send("Container " + msg, c.Id);
complete();
}, function (e) {
Messages.error("Failure", e.data);
Messages.error("Failure", e, "Unable to start container");
complete();
});
}
@ -68,11 +68,7 @@ function ($scope, Container, ContainerHelper, Info, Settings, Messages, Config)
}
complete();
}, function (e) {
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to remove container');
}
Messages.error("Failure", e, 'Unable to remove container');
complete();
});
}
@ -81,7 +77,7 @@ function ($scope, Container, ContainerHelper, Info, Settings, Messages, Config)
Messages.send("Container " + msg, c.Id);
complete();
}, function (e) {
Messages.error("Failure", e.data);
Messages.error("Failure", e, 'An error occured');
complete();
});

View File

@ -61,7 +61,7 @@ function ($scope, $state, Config, Container, Image, Volume, Network, Messages) {
Volume.query({}, function (d) {
$scope.availableVolumes = d.Volumes;
}, function (e) {
Messages.error("Failure", e.data);
Messages.error("Failure", e, "Unable to retrieve volumes");
});
Network.query({}, function (d) {
@ -79,7 +79,7 @@ function ($scope, $state, Config, Container, Image, Volume, Network, Messages) {
}
$scope.availableNetworks = networks;
}, function (e) {
Messages.error("Failure", e.data);
Messages.error("Failure", e, "Unable to retrieve networks");
});
});
@ -88,12 +88,12 @@ function ($scope, $state, Config, Container, Image, Volume, Network, Messages) {
Container.create(config, function (d) {
if (d.message) {
$('#createContainerSpinner').hide();
Messages.error('Error', d.message);
Messages.error('Error', {}, d.message);
} else {
Container.start({id: d.Id}, {}, function (cd) {
if (cd.message) {
$('#createContainerSpinner').hide();
Messages.error('Error', cd.message);
Messages.error('Error', {}, cd.message);
} else {
$('#createContainerSpinner').hide();
Messages.send('Container Started', d.Id);
@ -101,20 +101,12 @@ function ($scope, $state, Config, Container, Image, Volume, Network, Messages) {
}
}, function (e) {
$('#createContainerSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to start container');
}
Messages.error("Failure", e, 'Unable to start container');
});
}
}, function (e) {
$('#createContainerSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to create container');
}
Messages.error("Failure", e, 'Unable to create container');
});
}
@ -125,13 +117,13 @@ function ($scope, $state, Config, Container, Image, Volume, Network, Messages) {
if (err) {
var detail = data[data.length - 1];
$('#createContainerSpinner').hide();
Messages.error('Error', detail.error);
Messages.error('Error', {}, detail.error);
} else {
createContainer(config);
}
}, function (e) {
$('#createContainerSpinner').hide();
Messages.error('Error', 'Unable to pull image ' + image);
Messages.error('Failure', e, 'Unable to pull image');
});
}

View File

@ -29,7 +29,7 @@ function ($scope, $state, Messages, Network) {
Network.create(config, function (d) {
if (d.message) {
$('#createNetworkSpinner').hide();
Messages.error('Unable to create network', d.message);
Messages.error('Unable to create network', {}, d.message);
} else {
Messages.send("Network created", d.Id);
$('#createNetworkSpinner').hide();
@ -37,11 +37,7 @@ function ($scope, $state, Messages, Network) {
}
}, function (e) {
$('#createNetworkSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to create network');
}
Messages.error("Failure", e, 'Unable to create network');
});
}

View File

@ -23,7 +23,7 @@ function ($scope, $state, Volume, Messages) {
Volume.create(config, function (d) {
if (d.message) {
$('#createVolumeSpinner').hide();
Messages.error('Unable to create volume', d.message);
Messages.error('Unable to create volume', {}, d.message);
} else {
Messages.send("Volume created", d.Name);
$('#createVolumeSpinner').hide();
@ -31,11 +31,7 @@ function ($scope, $state, Volume, Messages) {
}
}, function (e) {
$('#createVolumeSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to create volume');
}
Messages.error("Failure", e, 'Unable to create volume');
});
}

View File

@ -21,7 +21,7 @@ function ($scope, Settings, Messages, Events) {
$('#loadEventsSpinner').hide();
},
function (e) {
Messages.error("Unable to load events", e.data);
$('#loadEventsSpinner').hide();
Messages.error("Failure", e, "Unable to load events");
});
}]);

View File

@ -30,7 +30,7 @@ function ($scope, $stateParams, $state, Image, ImageHelper, Messages) {
$state.go('image', {id: $stateParams.id}, {reload: true});
}, function(e) {
$('#loadingViewSpinner').hide();
Messages.error("Unable to tag image", e.data);
Messages.error("Failure", e, "Unable to tag image");
});
};
@ -38,14 +38,14 @@ function ($scope, $stateParams, $state, Image, ImageHelper, Messages) {
$('#loadingViewSpinner').show();
Image.push({tag: tag}, function (d) {
if (d[d.length-1].error) {
Messages.error("Unable to push image", d[d.length-1].error);
Messages.error("Unable to push image", {}, d[d.length-1].error);
} else {
Messages.send('Image successfully pushed');
}
$('#loadingViewSpinner').hide();
}, function (e) {
$('#loadingViewSpinner').hide();
Messages.error("Unable to push image", e.data);
Messages.error("Failure", e, "Unable to push image");
});
};
@ -54,7 +54,7 @@ function ($scope, $stateParams, $state, Image, ImageHelper, Messages) {
Image.remove({id: id}, function (d) {
if (d[0].message) {
$('#loadingViewSpinner').hide();
Messages.error("Unable to remove image", d[0].message);
Messages.error("Unable to remove image", {}, d[0].message);
} else {
// If last message key is 'Deleted' or if it's 'Untagged' and there is only one tag associated to the image
// then assume the image is gone and send to images page
@ -68,11 +68,7 @@ function ($scope, $stateParams, $state, Image, ImageHelper, Messages) {
}
}, function (e) {
$('#loadingViewSpinner').hide();
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to remove image');
}
Messages.error("Failure", e, 'Unable to remove image');
});
};
@ -88,10 +84,6 @@ function ($scope, $stateParams, $state, Image, ImageHelper, Messages) {
$scope.exposedPorts = d.ContainerConfig.ExposedPorts ? Object.keys(d.ContainerConfig.ExposedPorts) : [];
$scope.volumes = d.ContainerConfig.Volumes ? Object.keys(d.ContainerConfig.Volumes) : [];
}, function (e) {
if (e.status === 404) {
Messages.error("Unable to find image", $stateParams.id);
} else {
Messages.error("Unable to retrieve image info", e.data);
}
Messages.error("Failure", e, "Unable to retrieve image info");
});
}]);

View File

@ -47,14 +47,14 @@ function ($scope, $state, Config, Image, Messages) {
if (err) {
var detail = data[data.length - 1];
$('#pullImageSpinner').hide();
Messages.error('Error', detail.error);
Messages.error('Error', {}, detail.error);
} else {
$('#pullImageSpinner').hide();
$state.go('images', {}, {reload: true});
}
}, function (e) {
$('#pullImageSpinner').hide();
Messages.error('Error', 'Unable to pull image ' + image);
Messages.error("Failure", e, "Unable to pull image");
});
};
@ -73,7 +73,7 @@ function ($scope, $state, Config, Image, Messages) {
Image.remove({id: i.Id}, function (d) {
if (d[0].message) {
$('#loadingViewSpinner').hide();
Messages.error("Unable to remove image", d[0].message);
Messages.error("Unable to remove image", {}, d[0].message);
} else {
Messages.send("Image deleted", i.Id);
var index = $scope.images.indexOf(i);
@ -81,11 +81,7 @@ function ($scope, $state, Config, Image, Messages) {
}
complete();
}, function (e) {
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to remove image');
}
Messages.error("Failure", e, 'Unable to remove image');
complete();
});
}
@ -99,8 +95,8 @@ function ($scope, $state, Config, Image, Messages) {
});
$('#loadImagesSpinner').hide();
}, function (e) {
Messages.error("Failure", e.data);
$('#loadImagesSpinner').hide();
Messages.error("Failure", e, "Unable to retrieve images");
});
}

View File

@ -54,11 +54,7 @@ function ($scope, $state, Network, Config, Messages) {
}
complete();
}, function (e) {
if (e.data.message) {
Messages.error("Failure", e.data.message);
} else {
Messages.error("Failure", 'Unable to remove network');
}
Messages.error("Failure", e, 'Unable to remove network');
complete();
});
}
@ -71,8 +67,8 @@ function ($scope, $state, Network, Config, Messages) {
$scope.networks = d;
$('#loadNetworksSpinner').hide();
}, function (e) {
Messages.error("Failure", e.data);
$('#loadNetworksSpinner').hide();
Messages.error("Failure", e, "Unable to retrieve networks");
});
}

View File

@ -112,7 +112,7 @@ function (Settings, $scope, Messages, $timeout, Container, ContainerTop, $stateP
return d[key];
});
if (arr.join('').indexOf('no such id') !== -1) {
Messages.error('Unable to retrieve stats', 'Is this container running?');
Messages.error('Unable to retrieve stats', {}, 'Is this container running?');
return;
}
@ -123,7 +123,7 @@ function (Settings, $scope, Messages, $timeout, Container, ContainerTop, $stateP
updateNetworkChart(d);
timeout = $timeout(updateStats, 5000);
}, function () {
Messages.error('Unable to retrieve stats', 'Is this container running?');
Messages.error('Unable to retrieve stats', {}, 'Is this container running?');
timeout = $timeout(updateStats, 5000);
});
}
@ -188,7 +188,7 @@ function (Settings, $scope, Messages, $timeout, Container, ContainerTop, $stateP
Container.get({id: $stateParams.id}, function (d) {
$scope.container = d;
}, function (e) {
Messages.error("Failure", e.data);
Messages.error("Failure", e, "Unable to retrieve container info");
});
$scope.getTop();
}]);

View File

@ -206,10 +206,17 @@ angular.module('uifordocker.services', ['ngResource', 'ngSanitize'])
}
});
},
error: function (title, text) {
error: function (title, e, fallbackText) {
console.log(JSON.stringify(e, null, 4));
var msg = fallbackText;
if (e.data && e.data.message) {
msg = e.data.message;
} else if (e.message) {
msg = e.message;
}
$.gritter.add({
title: $sanitize(title),
text: $sanitize(text),
text: $sanitize(msg),
time: 10000,
before_open: function () {
if ($('.gritter-item-wrapper').length === 4) {