diff --git a/app/agent/services/agentService.js b/app/agent/services/agentService.js
index 5f011d01c..a1eb96681 100644
--- a/app/agent/services/agentService.js
+++ b/app/agent/services/agentService.js
@@ -1,24 +1,39 @@
-angular.module('portainer.agent')
-.factory('AgentService', ['$q', 'Agent', function AgentServiceFactory($q, Agent) {
- 'use strict';
- var service = {};
+angular.module('portainer.agent').factory('AgentService', [
+ '$q', 'Agent',
+ function AgentServiceFactory($q, Agent) {
+ 'use strict';
+ var service = {};
- service.agents = function() {
- var deferred = $q.defer();
+ service.agents = agents;
+ service.hostInfo = hostInfo;
- Agent.query({}).$promise
- .then(function success(data) {
- var agents = data.map(function (item) {
- return new AgentViewModel(item);
+ function hostInfo() {
+ return $q.when({
+ PhysicalDeviceVendor: 'hello',
+ DeviceVersion: '1.9',
+ DeviceSerialNumber: '144f',
+ InstalledPCIDevices: ['usb', 'printer'],
+ PhysicalDisk: 'none'
});
- deferred.resolve(agents);
- })
- .catch(function error(err) {
- deferred.reject({ msg: 'Unable to retrieve agents', err: err });
- });
+ }
- return deferred.promise;
- };
+ function agents() {
+ var deferred = $q.defer();
- return service;
-}]);
+ Agent.query({})
+ .$promise.then(function success(data) {
+ var agents = data.map(function(item) {
+ return new AgentViewModel(item);
+ });
+ deferred.resolve(agents);
+ })
+ .catch(function error(err) {
+ deferred.reject({ msg: 'Unable to retrieve agents', err: err });
+ });
+
+ return deferred.promise;
+ }
+
+ return service;
+ }
+]);
diff --git a/app/docker/components/host-view-panels/host-details-panel/host-details-panel.html b/app/docker/components/host-view-panels/host-details-panel/host-details-panel.html
index a8cbcc027..f4e481b6c 100644
--- a/app/docker/components/host-view-panels/host-details-panel/host-details-panel.html
+++ b/app/docker/components/host-view-panels/host-details-panel/host-details-panel.html
@@ -31,7 +31,7 @@
Installed PCI devices |
- {{ $ctrl.host.pciDevices }} |
+ {{ $ctrl.host.pciDevices |commaSeperated }} |
Physical disk |
diff --git a/app/docker/views/nodes/node-details/node-details-view-controller.js b/app/docker/views/nodes/node-details/node-details-view-controller.js
index f419a51c1..c20bb8947 100644
--- a/app/docker/views/nodes/node-details/node-details-view-controller.js
+++ b/app/docker/views/nodes/node-details/node-details-view-controller.js
@@ -1,9 +1,9 @@
angular.module('portainer.docker').controller('NodeDetailsViewController', [
- '$stateParams', 'NodeService', 'LabelHelper', 'Notifications', '$state', 'StateManager',
- function NodeDetailsViewController($stateParams, NodeService, LabelHelper, Notifications, $state, StateManager) {
+ '$stateParams', 'NodeService', 'LabelHelper', 'Notifications', '$state', 'StateManager', 'AgentService',
+ function NodeDetailsViewController($stateParams, NodeService, LabelHelper, Notifications, $state, StateManager, AgentService) {
var ctrl = this;
var originalNode;
-
+
ctrl.$onInit = initView;
ctrl.updateLabels = updateLabels;
ctrl.updateAvailability = updateAvailability;
@@ -13,15 +13,30 @@ angular.module('portainer.docker').controller('NodeDetailsViewController', [
};
function initView() {
- NodeService.node($stateParams.id).then(function(node) {
+ var applicationState = StateManager.getState();
+ ctrl.state.isAgent = applicationState.endpoint.mode.agentProxy;
+
+ var nodeId = $stateParams.id;
+ NodeService.node(nodeId).then(function(node) {
originalNode = node;
ctrl.hostDetails = buildHostDetails(node);
ctrl.engineDetails = buildEngineDetails(node);
ctrl.nodeDetails = buildNodeDetails(node);
+ if (ctrl.state.isAgent) {
+ AgentService.hostInfo(nodeId).then(function onHostInfoLoad(agentHostInfo) {
+ console.log(agentHostInfo);
+ enhanceHostDetails(ctrl.hostDetails, agentHostInfo);
+ });
+ }
});
- var applicationState = StateManager.getState();
- ctrl.state.isAgent = applicationState.endpoint.mode.agentProxy;
+
+ }
+
+ function enhanceHostDetails(hostDetails, agentHostInfo) {
+ hostDetails.physicalDeviceInfo = agentHostInfo.PhysicalDeviceInfo;
+ hostDetails.pciDevices = agentHostInfo.InstalledPCIDevices;
+ hostDetails.physicalDisk = agentHostInfo.PhysicalDisk;
}
function buildHostDetails(node) {
@@ -81,7 +96,7 @@ angular.module('portainer.docker').controller('NodeDetailsViewController', [
Id: node.Id,
Version: node.Version
};
-
+
NodeService.updateNode(config)
.then(onUpdateSuccess)
.catch(notifyOnError);