Add ansible module `fuel` 13/33013/5
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Wed, 5 Apr 2017 14:30:32 +0000 (22:30 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Thu, 6 Apr 2017 08:51:18 +0000 (16:51 +0800)
This module will be used to generate a dynamic inventory of fuel nodes
for performance testing

Change-Id: Idaa491c5fc3050abfb8ba36328f2113cf2885179
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
qtip/ansible_library/__init__.py [new file with mode: 0644]
qtip/ansible_library/modules/__init__.py [new file with mode: 0644]
qtip/ansible_library/modules/fuel.py [new file with mode: 0644]
tests/data/external/fuel/fuel-node.json [new file with mode: 0644]
tests/unit/ansible_library/modules/fuel_test.py [new file with mode: 0644]

diff --git a/qtip/ansible_library/__init__.py b/qtip/ansible_library/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/qtip/ansible_library/modules/__init__.py b/qtip/ansible_library/modules/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/qtip/ansible_library/modules/fuel.py b/qtip/ansible_library/modules/fuel.py
new file mode 100644 (file)
index 0000000..ea2d78b
--- /dev/null
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+
+###############################################################
+# Copyright (c) 2017 ZTE Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+from collections import defaultdict
+import json
+
+from ansible.module_utils.basic import AnsibleModule
+
+
+ANSIBLE_METADATA = {'metadata_version': '1.0',
+                    'status': ['preview'],
+                    'supported_by': 'community'}
+
+DOCUMENTATION = '''
+---
+module: fuel
+short_description: collecting facts from fuel environments
+description:
+    - Use this module to create a dynamic inventory from fuel master.
+version_added: "2.2"
+author: "Yujun Zhang (@yujunz)"
+options:
+notes:
+requirements:
+    - Host 'fuel-master' is in ~/.ssh/config
+'''
+
+RETURN = '''
+ansible_facts:
+  description: facts collected for ansible
+  returned: success
+  type: dictionary
+  contains:
+    hosts:
+      description: host grouped by hostname, cluster, role and manufacture
+      type: dict
+    hosts_meta:
+      description: hosts meta data indexed by hostname
+      type: dict
+'''
+
+EXAMPLES = '''
+---
+- hosts: fuel-master
+  tasks:
+  - name: collect facts of fuel hosts
+    fuel:
+  - debug: var=hostvars
+  - name: add compute node to ansible inventory
+    add_host:
+      name: "{{ hosts_meta[item]['ip'] }}"
+      groups: fuel-compute
+      ansible_user: root
+      ansible_ssh_common_args: '-o StrictHostKeyChecking=No -o ProxyJump=fuel-master'
+    with_items: "{{ hosts.compute }}"
+- hosts: fuel-compute
+  tasks:
+  - name: check ssh connection
+    ping:
+'''
+
+
+def generate_inventory(nodes):
+    """Generate ansible inventory from node list in json format
+
+    Modified from https://github.com/martineg/ansible-fuel-inventory/blob/master/fuel.py
+    """
+    hosts = defaultdict(list)
+    hosts_meta = {}
+
+    for node in nodes:
+        # skip deleting, offline, deploying and discovering/unprovisioned nodes
+        if node['pending_deletion'] or (not node['online']) \
+                or node['status'] == 'deploying' or node['status'] == 'discover':
+            continue
+
+        hostname = node['hostname']
+        cluster_id = node['cluster']
+        hw_vendor = node['meta']['system']['manufacturer'].lower()
+
+        [hosts[role.strip()].append(hostname) for role in node['roles'].split(",")]
+        hosts["cluster-{0}".format(cluster_id)].append(hostname)
+        hosts["hw-{0}-servers".format(hw_vendor)].append(hostname)
+
+        node_meta = {
+            'name': node['name'],
+            'online': node['online'],
+            'os_platform': node['os_platform'],
+            'status': node['status'],
+            'ip': node['ip'],
+            'mac': node['mac'],
+            'cluster': cluster_id,
+            'ansible_ssh_host': node['ip']
+        }
+        hosts["node-{}".format(node['id'])].append(hostname)
+        hosts_meta[hostname] = node_meta
+
+    return {'hosts': hosts, 'hosts_meta': hosts_meta}
+
+
+def main():
+    module = AnsibleModule(argument_spec=dict())
+
+    cmd = [module.get_bin_path('fuel', True), 'node', '--json']
+    (rc, out, err) = module.run_command(cmd)
+
+    if rc is not None and rc != 0:
+        return module.fail_json(msg=err)
+
+    nodes = json.loads(out)
+
+    module.exit_json(changed=False, ansible_facts=generate_inventory(nodes))
+
+
+if __name__ == '__main__':
+    main()
diff --git a/tests/data/external/fuel/fuel-node.json b/tests/data/external/fuel/fuel-node.json
new file mode 100644 (file)
index 0000000..82e25d2
--- /dev/null
@@ -0,0 +1,10229 @@
+[
+    {
+        "error_type": null,
+        "ip": "10.20.11.18",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": null,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:1f",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:20",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:15",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:16",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "ip": "10.20.11.18",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:71:bb",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "netmask": "255.255.255.0",
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:71:bc",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af9c1",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0ETFV8B",
+                        "disk/by-id/scsi-350000397386af9c1"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386afaa9",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0F0FV8B",
+                        "disk/by-id/scsi-350000397386afaa9"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A40171B8-744A-0000-0010-000048ADD057",
+                "family": "Blade",
+                "fqdn": "bootstrap.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "runtime_uuid": "902b5c80-438c-4979-850f-b1adee9d42de",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 10,
+        "hostname": "node-10",
+        "network_data": [],
+        "online": true,
+        "progress": 0,
+        "pending_roles": "",
+        "status": "discover",
+        "mac": "74:4a:a4:01:71:bb",
+        "manufacturer": "ZTE",
+        "name": "Untitled (71:bb)",
+        "roles": "",
+        "fqdn": "node-10.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": null
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.16",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": null,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:8c:93",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:8c:94",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:8c:97",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:8c:98",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "ip": "10.20.11.16",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:63:61",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "netmask": "255.255.255.0",
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:63:62",
+                    "max_speed": 1000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af1fd",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CBFV8B",
+                        "disk/by-id/scsi-350000397386af1fd"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386afcb1",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0F9FV8B",
+                        "disk/by-id/scsi-350000397386afcb1"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A401635E-744A-0000-0010-0000304CB357",
+                "family": "Blade",
+                "fqdn": "bootstrap.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "runtime_uuid": "902b5c80-438c-4979-850f-b1adee9d42de",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 18,
+        "hostname": "node-18",
+        "network_data": [],
+        "online": true,
+        "progress": 0,
+        "pending_roles": "",
+        "status": "discover",
+        "mac": "74:4a:a4:01:63:61",
+        "manufacturer": "ZTE",
+        "name": "Untitled (63:61)",
+        "roles": "",
+        "fqdn": "node-18.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": null
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.11",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:1d",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:88:1e",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:1b",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:1c",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:73:50",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:73:51",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af825",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0E7FV8B",
+                        "disk/by-id/scsi-350000397386af825"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af2bd",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CVFV8B",
+                        "disk/by-id/scsi-350000397386af2bd"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A401734D-744A-0000-0010-0000201FD257",
+                "family": "Blade",
+                "fqdn": "node-24.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 24,
+        "hostname": "node-24",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.3/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.1/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.12/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.11/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:01:73:50",
+        "manufacturer": "ZTE",
+        "name": "Untitled (73:50)",
+        "roles": "controller, mongo",
+        "fqdn": "node-24.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.16",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": null,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:07",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:08",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:87:fb",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:87:fc",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "ip": "10.20.11.16",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:80:92",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "netmask": "255.255.255.0",
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:80:93",
+                    "max_speed": 1000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386a9c2d",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A018FV8B",
+                        "disk/by-id/scsi-350000397386a9c2d"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386a9cc1",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A024FV8B",
+                        "disk/by-id/scsi-350000397386a9cc1"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A401808F-744A-0000-0010-0000BCA7F857",
+                "family": "Blade",
+                "fqdn": "bootstrap.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "runtime_uuid": "902b5c80-438c-4979-850f-b1adee9d42de",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 16,
+        "hostname": "node-16",
+        "network_data": [],
+        "online": false,
+        "progress": 0,
+        "pending_roles": "",
+        "status": "discover",
+        "mac": "74:4a:a4:01:80:92",
+        "manufacturer": "ZTE",
+        "name": "Untitled (80:92)",
+        "roles": "",
+        "fqdn": "node-16.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": null
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.15",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:03",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:88:04",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:05",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:06",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:61:ae",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:61:af",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386a9c41",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A01DFV8B",
+                        "disk/by-id/scsi-350000397386a9c41"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386a9bf5",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A00XFV8B",
+                        "disk/by-id/scsi-350000397386a9bf5"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A40161AB-744A-0000-0010-000018C4F857",
+                "family": "Blade",
+                "fqdn": "node-26.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 26,
+        "hostname": "node-26",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.4/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.2/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.13/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.15/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:01:61:ae",
+        "manufacturer": "ZTE",
+        "name": "Untitled (61:ae)",
+        "roles": "ceph-osd, compute",
+        "fqdn": "node-26.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.10",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:88:09",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:88:0a",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:11",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:88:12",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:71:61",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:71:62",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386afb49",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0F5FV8B",
+                        "disk/by-id/scsi-350000397386afb49"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af70d",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0DWFV8B",
+                        "disk/by-id/scsi-350000397386af70d"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A401715E-744A-0000-0010-00003C5FD057",
+                "family": "Blade",
+                "fqdn": "node-23.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 23,
+        "hostname": "node-23",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.7/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.5/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.16/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.10/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:01:71:61",
+        "manufacturer": "ZTE",
+        "name": "Untitled (71:61)",
+        "roles": "controller",
+        "fqdn": "node-23.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.14",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:86:bd",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:86:be",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:86:17",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:86:18",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:74:63",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:74:64",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af241",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CKFV8B",
+                        "disk/by-id/scsi-350000397386af241"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af1c9",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0C9FV8B",
+                        "disk/by-id/scsi-350000397386af1c9"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A4017460-744A-0000-0010-00008414D357",
+                "family": "Blade",
+                "fqdn": "node-28.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 28,
+        "hostname": "node-28",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.6/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.4/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.15/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.14/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:01:74:63",
+        "manufacturer": "ZTE",
+        "name": "Untitled (74:63)",
+        "roles": "ceph-osd, compute",
+        "fqdn": "node-28.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.12",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:87:51",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:87:52",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:87:4d",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:87:4e",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:00:d8:76",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:00:d8:77",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af221",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CHFV8B",
+                        "disk/by-id/scsi-350000397386af221"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af3c5",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0D8FV8B",
+                        "disk/by-id/scsi-350000397386af3c5"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A400D873-744A-0000-0010-0000506D5457",
+                "family": "Blade",
+                "fqdn": "node-25.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 25,
+        "hostname": "node-25",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.5/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.3/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.14/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.12/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:00:d8:76",
+        "manufacturer": "ZTE",
+        "name": "Untitled (d8:76)",
+        "roles": "controller",
+        "fqdn": "node-25.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    },
+    {
+        "error_type": null,
+        "ip": "10.20.11.13",
+        "labels": {},
+        "pending_addition": false,
+        "cluster": 4,
+        "meta": {
+            "pci_devices": {},
+            "interfaces": [
+                {
+                    "name": "ens1f0",
+                    "driver": "ixgbe",
+                    "state": "down",
+                    "mac": "74:4a:a4:01:86:b5",
+                    "max_speed": 10000,
+                    "current_speed": null,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.0"
+                },
+                {
+                    "name": "ens1f1",
+                    "driver": "ixgbe",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:86:b6",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 1,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:81:00.1"
+                },
+                {
+                    "name": "ens2f0",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:86:91",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.0"
+                },
+                {
+                    "name": "ens2f1",
+                    "driver": "ixgbe",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:86:92",
+                    "max_speed": 10000,
+                    "current_speed": 10000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 63,
+                        "pci_id": "8086:10f8",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 63,
+                            "pci_id": "8086:10ed"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "hw-tc-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "l2-fwd-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "ntuple-filters",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "large-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:06:00.1"
+                },
+                {
+                    "name": "ens4f0",
+                    "driver": "igb",
+                    "state": "forwarding",
+                    "mac": "74:4a:a4:01:82:c0",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": true,
+                    "bus_info": "0000:01:00.0"
+                },
+                {
+                    "name": "ens4f1",
+                    "driver": "igb",
+                    "state": "up",
+                    "mac": "74:4a:a4:01:82:c1",
+                    "max_speed": 1000,
+                    "current_speed": 1000,
+                    "interface_properties": {
+                        "numa_node": 0,
+                        "max_queues": 8,
+                        "pci_id": "8086:1523",
+                        "sriov": {
+                            "available": true,
+                            "sriov_totalvfs": 7,
+                            "pci_id": "8086:1520"
+                        }
+                    },
+                    "offloading_modes": [
+                        {
+                            "state": null,
+                            "name": "rx-all",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-nocache-copy",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "receive-hashing",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-vlan-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-receive-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "generic-segmentation-offload",
+                            "sub": []
+                        },
+                        {
+                            "state": null,
+                            "name": "tcp-segmentation-offload",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp6-segmentation",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-tcp-segmentation",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "scatter-gather",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-scatter-gather",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "tx-checksumming",
+                            "sub": [
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-sctp",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv6",
+                                    "sub": []
+                                },
+                                {
+                                    "state": null,
+                                    "name": "tx-checksum-ipv4",
+                                    "sub": []
+                                }
+                            ]
+                        },
+                        {
+                            "state": null,
+                            "name": "rx-checksumming",
+                            "sub": []
+                        }
+                    ],
+                    "pxe": false,
+                    "bus_info": "0000:01:00.1"
+                }
+            ],
+            "disks": [
+                {
+                    "paths": null,
+                    "name": "sda",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af2ed",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CWFV8B",
+                        "disk/by-id/scsi-350000397386af2ed"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy0-lun-0",
+                    "size": 600127266816
+                },
+                {
+                    "paths": null,
+                    "name": "sdb",
+                    "extra": [
+                        "disk/by-id/wwn-0x50000397386af21d",
+                        "disk/by-id/scsi-STOSHIBA_AL14SEB060N_86U0A0CGFV8B",
+                        "disk/by-id/scsi-350000397386af21d"
+                    ],
+                    "opt_io": 512,
+                    "removable": "0",
+                    "model": "AL14SEB060N",
+                    "disk": "disk/by-path/pci-0000:04:00.0-sas-phy1-lun-0",
+                    "size": 600127266816
+                }
+            ],
+            "system": {
+                "product": "EC600G3",
+                "uuid": "A40182BD-744A-0000-0010-0000283CE957",
+                "family": "Blade",
+                "fqdn": "node-27.zte.com.cn",
+                "version": "N/A",
+                "serial": "123456789",
+                "manufacturer": "ZTE"
+            },
+            "numa_topology": {
+                "numa_nodes": [
+                    {
+                        "memory": 67159945216,
+                        "pcidevs": [
+                            "0000:01:00.0",
+                            "0000:01:00.1",
+                            "0000:04:00.0",
+                            "0000:06:00.0",
+                            "0000:06:00.1",
+                            "0000:0a:00.0",
+                            "0000:00:1f.2"
+                        ],
+                        "cpus": [
+                            0,
+                            20,
+                            1,
+                            21,
+                            2,
+                            22,
+                            3,
+                            23,
+                            4,
+                            24,
+                            5,
+                            25,
+                            6,
+                            26,
+                            7,
+                            27,
+                            8,
+                            28,
+                            9,
+                            29
+                        ],
+                        "id": 0
+                    },
+                    {
+                        "memory": 67607306240,
+                        "pcidevs": [
+                            "0000:81:00.0",
+                            "0000:81:00.1"
+                        ],
+                        "cpus": [
+                            10,
+                            30,
+                            11,
+                            31,
+                            12,
+                            32,
+                            13,
+                            33,
+                            14,
+                            34,
+                            15,
+                            35,
+                            16,
+                            36,
+                            17,
+                            37,
+                            18,
+                            38,
+                            19,
+                            39
+                        ],
+                        "id": 1
+                    }
+                ],
+                "distances": [
+                    [
+                        "1.000000",
+                        "2.100000"
+                    ],
+                    [
+                        "2.100000",
+                        "1.000000"
+                    ]
+                ],
+                "supported_hugepages": [
+                    2048,
+                    1048576
+                ]
+            },
+            "memory": {
+                "slots": 16,
+                "total": 137438953472,
+                "maximum_capacity": 549755813888,
+                "devices": [
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    },
+                    {
+                        "frequency": 2133,
+                        "type": "DDR4",
+                        "size": 17179869184
+                    }
+                ]
+            },
+            "cpu": {
+                "real": 2,
+                "total": 40,
+                "spec": [
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    },
+                    {
+                        "model": "Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz",
+                        "frequency": 3000
+                    }
+                ]
+            }
+        },
+        "os_platform": "ubuntu",
+        "id": 27,
+        "hostname": "node-27",
+        "network_data": [
+            {
+                "cidr": null,
+                "vlan": null,
+                "name": "private",
+                "dev": "ens1f1"
+            },
+            {
+                "name": "management",
+                "ip": "192.168.111.8/24",
+                "vlan": 211,
+                "dev": "ens2f0",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.111.0/24",
+                "brd": "192.168.111.255",
+                "gateway": null
+            },
+            {
+                "name": "storage",
+                "ip": "192.168.112.6/24",
+                "vlan": 212,
+                "dev": "ens2f1",
+                "netmask": "255.255.255.0",
+                "cidr": "192.168.112.0/24",
+                "brd": "192.168.112.255",
+                "gateway": null
+            },
+            {
+                "name": "public",
+                "ip": "172.110.0.17/24",
+                "vlan": 213,
+                "dev": "ens4f1",
+                "netmask": "255.255.255.0",
+                "cidr": "172.110.0.0/24",
+                "brd": "172.110.0.255",
+                "gateway": "172.110.0.1"
+            },
+            {
+                "name": "fuelweb_admin",
+                "ip": "10.20.11.13/24",
+                "vlan": null,
+                "dev": "ens4f0",
+                "netmask": "255.255.255.0",
+                "cidr": "10.20.11.0/24",
+                "brd": "10.20.11.255",
+                "gateway": "10.20.11.2"
+            }
+        ],
+        "online": true,
+        "progress": 100,
+        "pending_roles": "",
+        "status": "ready",
+        "mac": "74:4a:a4:01:82:c0",
+        "manufacturer": "ZTE",
+        "name": "Untitled (82:c0)",
+        "roles": "ceph-osd, compute",
+        "fqdn": "node-27.zte.com.cn",
+        "platform_name": "EC600G3",
+        "kernel_params": null,
+        "pending_deletion": false,
+        "group_id": 4
+    }
+]
diff --git a/tests/unit/ansible_library/modules/fuel_test.py b/tests/unit/ansible_library/modules/fuel_test.py
new file mode 100644 (file)
index 0000000..6a440e0
--- /dev/null
@@ -0,0 +1,60 @@
+###############################################################
+# Copyright (c) 2017 ZTE Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import json
+import os
+
+from qtip.ansible_library.modules import fuel
+
+
+def test_generate_inventory(data_root):
+    nodes = json.load(open(os.path.join(data_root, 'external', 'fuel', 'fuel-node.json')))
+    inventory = fuel.generate_inventory(nodes)
+    assert dict(inventory['hosts']) == {
+        u'ceph-osd': [u'node-26', u'node-28', u'node-27'],
+        'cluster-4': [u'node-24',
+                      u'node-26',
+                      u'node-23',
+                      u'node-28',
+                      u'node-25',
+                      u'node-27'],
+        u'compute': [u'node-26', u'node-28', u'node-27'],
+        u'controller': [u'node-24', u'node-23', u'node-25'],
+        'hw-zte-servers': [u'node-24',
+                           u'node-26',
+                           u'node-23',
+                           u'node-28',
+                           u'node-25',
+                           u'node-27'],
+        u'mongo': [u'node-24'],
+        'node-23': [u'node-23'],
+        'node-24': [u'node-24'],
+        'node-25': [u'node-25'],
+        'node-26': [u'node-26'],
+        'node-27': [u'node-27'],
+        'node-28': [u'node-28']}
+    assert dict(inventory['hosts_meta']) == {
+        u'node-23': {'ansible_ssh_host': u'10.20.11.10', 'cluster': 4, 'ip': u'10.20.11.10',
+                     'mac': u'74:4a:a4:01:71:61', 'name': u'Untitled (71:61)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'},
+        u'node-24': {'ansible_ssh_host': u'10.20.11.11', 'cluster': 4, 'ip': u'10.20.11.11',
+                     'mac': u'74:4a:a4:01:73:50', 'name': u'Untitled (73:50)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'},
+        u'node-25': {'ansible_ssh_host': u'10.20.11.12', 'cluster': 4, 'ip': u'10.20.11.12',
+                     'mac': u'74:4a:a4:00:d8:76', 'name': u'Untitled (d8:76)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'},
+        u'node-26': {'ansible_ssh_host': u'10.20.11.15', 'cluster': 4, 'ip': u'10.20.11.15',
+                     'mac': u'74:4a:a4:01:61:ae', 'name': u'Untitled (61:ae)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'},
+        u'node-27': {'ansible_ssh_host': u'10.20.11.13', 'cluster': 4, 'ip': u'10.20.11.13',
+                     'mac': u'74:4a:a4:01:82:c0', 'name': u'Untitled (82:c0)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'},
+        u'node-28': {'ansible_ssh_host': u'10.20.11.14', 'cluster': 4, 'ip': u'10.20.11.14',
+                     'mac': u'74:4a:a4:01:74:63', 'name': u'Untitled (74:63)', 'online': True, 'os_platform': u'ubuntu',
+                     'status': u'ready'}}