diff --git a/app/components/container/containerController.js b/app/components/container/containerController.js index 2523c37d2..1908aa8d4 100644 --- a/app/components/container/containerController.js +++ b/app/components/container/containerController.js @@ -269,7 +269,6 @@ function ($q, $scope, $state, $stateParams, $filter, Container, ContainerCommit, ModalService.confirmContainerRecreation(function (result) { if(!result) { return; } - console.log(JSON.stringify(result, null, 4)); var pullImage = false; if (result[0]) { pullImage = true; diff --git a/app/components/createVolume/createVolumeController.js b/app/components/createVolume/createVolumeController.js index 8319337ba..107042181 100644 --- a/app/components/createVolume/createVolumeController.js +++ b/app/components/createVolume/createVolumeController.js @@ -73,7 +73,7 @@ function ($q, $scope, $state, VolumeService, PluginService, ResourceControlServi var endpointProvider = $scope.applicationState.endpoint.mode.provider; var apiVersion = $scope.applicationState.endpoint.apiVersion; if (endpointProvider !== 'DOCKER_SWARM') { - PluginService.volumePlugins(apiVersion < 1.25) + PluginService.volumePlugins(apiVersion < 1.25 || endpointProvider === 'VMWARE_VIC') .then(function success(data) { $scope.availableVolumeDrivers = data; }) diff --git a/app/components/image/imageController.js b/app/components/image/imageController.js index f5c0c6142..d76dfb356 100644 --- a/app/components/image/imageController.js +++ b/app/components/image/imageController.js @@ -1,6 +1,6 @@ angular.module('image', []) -.controller('ImageController', ['$scope', '$stateParams', '$state', '$timeout', 'ImageService', 'RegistryService', 'Notifications', -function ($scope, $stateParams, $state, $timeout, ImageService, RegistryService, Notifications) { +.controller('ImageController', ['$q', '$scope', '$stateParams', '$state', '$timeout', 'ImageService', 'RegistryService', 'Notifications', +function ($q, $scope, $stateParams, $state, $timeout, ImageService, RegistryService, Notifications) { $scope.formValues = { Image: '', Registry: '' @@ -109,11 +109,16 @@ function ($scope, $stateParams, $state, $timeout, ImageService, RegistryService, }); }; - function retrieveImageDetails() { + function initView() { $('#loadingViewSpinner').show(); - ImageService.image($stateParams.id) + var endpointProvider = $scope.applicationState.endpoint.mode.provider; + $q.all({ + image: ImageService.image($stateParams.id), + history: endpointProvider !== 'VMWARE_VIC' ? ImageService.history($stateParams.id) : [] + }) .then(function success(data) { - $scope.image = data; + $scope.image = data.image; + $scope.history = data.history; }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to retrieve image details'); @@ -122,19 +127,7 @@ function ($scope, $stateParams, $state, $timeout, ImageService, RegistryService, .finally(function final() { $('#loadingViewSpinner').hide(); }); - - $('#loadingViewSpinner').show(); - ImageService.history($stateParams.id) - .then(function success(data) { - $scope.history = data; - }) - .catch(function error(err) { - Notifications.error('Failure', err, 'Unable to retrieve image history'); - }) - .finally(function final() { - $('#loadingViewSpinner').hide(); - }); } - retrieveImageDetails(); + initView(); }]); diff --git a/app/components/images/images.html b/app/components/images/images.html index d317e9818..5959c0bf2 100644 --- a/app/components/images/images.html +++ b/app/components/images/images.html @@ -70,7 +70,7 @@
- + @@ -126,7 +126,7 @@ {{ image.Id|truncate:20}} + ng-if="::image.Containers === 0 && applicationState.endpoint.mode.provider !== 'DOCKER_SWARM' && applicationState.endpoint.apiVersion >= 1.25 && applicationState.endpoint.mode.provider !== 'VMWARE_VIC'"> Unused diff --git a/app/components/images/imagesController.js b/app/components/images/imagesController.js index d5f887049..e8c9ca30f 100644 --- a/app/components/images/imagesController.js +++ b/app/components/images/imagesController.js @@ -95,7 +95,7 @@ function ($scope, $state, ImageService, Notifications, Pagination, ModalService) $('#loadImagesSpinner').show(); var endpointProvider = $scope.applicationState.endpoint.mode.provider; var apiVersion = $scope.applicationState.endpoint.apiVersion; - ImageService.images(apiVersion >= 1.25 && endpointProvider !== 'DOCKER_SWARM') + ImageService.images(apiVersion >= 1.25 && endpointProvider !== 'DOCKER_SWARM' && endpointProvider !== 'VMWARE_VIC') .then(function success(data) { $scope.images = data; }) diff --git a/app/components/network/network.html b/app/components/network/network.html index b2c1c9b6e..d5eacd7f1 100644 --- a/app/components/network/network.html +++ b/app/components/network/network.html @@ -67,7 +67,7 @@ -
+
diff --git a/app/components/network/networkController.js b/app/components/network/networkController.js index 291b6ca9e..63f9cb4e8 100644 --- a/app/components/network/networkController.js +++ b/app/components/network/networkController.js @@ -51,8 +51,9 @@ function ($scope, $state, $stateParams, $filter, Network, Container, ContainerHe } function getContainersInNetwork(network) { + var apiVersion = $scope.applicationState.endpoint.apiVersion; if (network.Containers) { - if ($scope.applicationState.endpoint.apiVersion < 1.24) { + if (apiVersion < 1.24) { Container.query({}, function success(data) { var containersInNetwork = data.filter(function filter(container) { if (container.HostConfig.NetworkMode === network.Name) { @@ -81,12 +82,20 @@ function ($scope, $state, $stateParams, $filter, Network, Container, ContainerHe function initView() { $('#loadingViewSpinner').show(); - Network.get({id: $stateParams.id}, function success(data) { + Network.get({id: $stateParams.id}).$promise + .then(function success(data) { $scope.network = data; - getContainersInNetwork(data); - }, function error(err) { + var endpointProvider = $scope.applicationState.endpoint.mode.provider; + if (endpointProvider !== 'VMWARE_VIC') { + getContainersInNetwork(data); + } + }) + .catch(function error(err) { $('#loadingViewSpinner').hide(); Notifications.error('Failure', err, 'Unable to retrieve network info'); + }) + .finally(function final() { + $('#loadingViewSpinner').hide(); }); } diff --git a/app/components/networks/networks.html b/app/components/networks/networks.html index 5d8c110be..7e8442cff 100644 --- a/app/components/networks/networks.html +++ b/app/components/networks/networks.html @@ -29,7 +29,7 @@ Note: The network will be created using the overlay driver and will allow containers to communicate across the hosts of your cluster.
-
+
Note: The network will be created using the bridge driver.
diff --git a/app/components/sidebar/sidebar.html b/app/components/sidebar/sidebar.html index 2f4c79424..0e44812a6 100644 --- a/app/components/sidebar/sidebar.html +++ b/app/components/sidebar/sidebar.html @@ -43,13 +43,13 @@ - -
-
+
diff --git a/app/components/stats/statsController.js b/app/components/stats/statsController.js index d5a76616e..1b8de729d 100644 --- a/app/components/stats/statsController.js +++ b/app/components/stats/statsController.js @@ -213,5 +213,8 @@ function (Pagination, $scope, Notifications, $timeout, Container, ContainerTop, }, function (e) { Notifications.error('Failure', e, 'Unable to retrieve container info'); }); - $scope.getTop(); + var endpointProvider = $scope.applicationState.endpoint.mode.provider; + if (endpointProvider !== 'VMWARE_VIC') { + $scope.getTop(); + } }]); diff --git a/app/helpers/infoHelper.js b/app/helpers/infoHelper.js index fd3aa511a..c78e86bbc 100644 --- a/app/helpers/infoHelper.js +++ b/app/helpers/infoHelper.js @@ -16,7 +16,11 @@ angular.module('portainer.helpers') } } else { if (!info.Swarm || _.isEmpty(info.Swarm.NodeID)) { - mode.provider = 'DOCKER_STANDALONE'; + if (info.ID === 'vSphere Integrated Containers') { + mode.provider = 'VMWARE_VIC'; + } else { + mode.provider = 'DOCKER_STANDALONE'; + } } else { mode.provider = 'DOCKER_SWARM_MODE'; if (info.Swarm.ControlAvailable) { diff --git a/app/services/docker/volumeService.js b/app/services/docker/volumeService.js index 2a67bef4e..8ae9425c6 100644 --- a/app/services/docker/volumeService.js +++ b/app/services/docker/volumeService.js @@ -94,7 +94,7 @@ angular.module('portainer.services') service.createXAutoGeneratedLocalVolumes = function (x) { var createVolumeQueries = []; for (var i = 0; i < x; i++) { - createVolumeQueries.push(service.createVolume({})); + createVolumeQueries.push(service.createVolume({ Driver: 'local' })); } return $q.all(createVolumeQueries); };