mirror of https://github.com/portainer/portainer
feat(host-details): show disk/devices info for agent
parent
db0fc1382d
commit
fe73fe616d
|
@ -0,0 +1,23 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="fa-code" title-text="PCI Devices"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Vendor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="device in $ctrl.devices">
|
||||
<td>{{device.Name}}</td>
|
||||
<td>{{device.Vendor}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</rd-widget-body>
|
||||
</rd-widget>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,8 @@
|
|||
angular.module('portainer.docker').component('devicesPanel', {
|
||||
templateUrl:
|
||||
'app/docker/components/host-view-panels/devices-panel/devices-panel.html',
|
||||
// controller: 'DevicesPanelController'
|
||||
bindings: {
|
||||
devices: '<'
|
||||
}
|
||||
});
|
|
@ -0,0 +1,23 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="fa-code" title-text="Physical Disks"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Vendor</th>
|
||||
<th>Size</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="disk in $ctrl.disks">
|
||||
<td>{{disk.Vendor}}</td>
|
||||
<td>{{disk.Size | humansize}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</rd-widget-body>
|
||||
</rd-widget>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,8 @@
|
|||
angular.module('portainer.docker').component('disksPanel', {
|
||||
templateUrl:
|
||||
'app/docker/components/host-view-panels/disks-panel/disks-panel.html',
|
||||
// controller: 'DisksPanelController'
|
||||
bindings: {
|
||||
disks: '<'
|
||||
}
|
||||
});
|
|
@ -11,7 +11,8 @@
|
|||
</tr>
|
||||
<tr ng-if="$ctrl.host.os">
|
||||
<td>OS Information</td>
|
||||
<td>{{ $ctrl.host.os.type }} {{$ctrl.host.os.arch}} {{$ctrl.host.os.name}}</td>
|
||||
<td>{{ $ctrl.host.os.type }} {{$ctrl.host.os.arch}}
|
||||
{{$ctrl.host.os.name}}</td>
|
||||
</tr>
|
||||
<tr ng-if="$ctrl.host.kernelVersion">
|
||||
<td>Kernel Version</td>
|
||||
|
@ -25,18 +26,6 @@
|
|||
<td>Total memory</td>
|
||||
<td>{{ $ctrl.host.totalMemory | humansize }}</td>
|
||||
</tr>
|
||||
<tr ng-if="$ctrl.host.physicalDeviceInfo">
|
||||
<td>Physical device information</td>
|
||||
<td>{{ $ctrl.host.physicalDeviceInfo }}</td>
|
||||
</tr>
|
||||
<tr ng-if="$ctrl.host.pciDevices">
|
||||
<td>Installed PCI devices</td>
|
||||
<td>{{ $ctrl.host.pciDevices |commaSeparated }}</td>
|
||||
</tr>
|
||||
<tr ng-if="$ctrl.host.physicalDisk">
|
||||
<td>Physical disk</td>
|
||||
<td>{{ $ctrl.host.physicalDisk }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</rd-widget-body>
|
||||
|
|
|
@ -21,29 +21,21 @@ angular.module('portainer.docker').controller('NodeDetailsViewController', [
|
|||
ctrl.nodeDetails = buildNodeDetails(node);
|
||||
if (ctrl.state.isAgent) {
|
||||
AgentService.hostInfo(node.Hostname).then(function onHostInfoLoad(agentHostInfo) {
|
||||
enhanceHostDetails(ctrl.hostDetails, agentHostInfo);
|
||||
ctrl.devices = agentHostInfo.PCIDevices;
|
||||
ctrl.disks = agentHostInfo.PhysicalDisks;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
function enhanceHostDetails(hostDetails, agentHostInfo) {
|
||||
hostDetails.physicalDeviceInfo = agentHostInfo.PhysicalDeviceInfo;
|
||||
hostDetails.pciDevices = agentHostInfo.InstalledPCIDevices;
|
||||
hostDetails.physicalDisk = agentHostInfo.PhysicalDisk;
|
||||
}
|
||||
|
||||
function buildHostDetails(node) {
|
||||
return {
|
||||
os: {
|
||||
arch: node.PlatformArchitecture,
|
||||
type: node.PlatformOS
|
||||
// name: node.OperatingSystem TODO
|
||||
},
|
||||
name: node.Hostname,
|
||||
// kernelVersion: node.KernelVersion,
|
||||
totalCPU: node.CPUs / 1e9,
|
||||
totalMemory: node.Memory
|
||||
};
|
||||
|
@ -52,10 +44,6 @@ angular.module('portainer.docker').controller('NodeDetailsViewController', [
|
|||
function buildEngineDetails(node) {
|
||||
return {
|
||||
releaseVersion: node.EngineVersion,
|
||||
// apiVersion: versionDetails.ApiVersion, TODO
|
||||
// rootDirectory: node.DockerRootDir, TODO
|
||||
// storageDriver: node.Driver,
|
||||
// loggingDriver: node.LoggingDriver,
|
||||
volumePlugins: transformPlugins(node.Plugins, 'Volume'),
|
||||
networkPlugins: transformPlugins(node.Plugins, 'Network')
|
||||
};
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
engine-details="$ctrl.engineDetails"
|
||||
refresh-url="docker.nodes.node"
|
||||
>
|
||||
<devices-panel ng-if="$ctrl.state.isAgent" devices="$ctrl.devices"></devices-panel>
|
||||
<disks-panel ng-if="$ctrl.state.isAgent" disks="$ctrl.disks"></disks-panel>
|
||||
<swarm-node-details-panel
|
||||
details="$ctrl.nodeDetails"
|
||||
original-node="$ctrl.originalNode"
|
||||
|
|
Loading…
Reference in New Issue