Merge "DRAC: Fix OOB introspection to use pxe_enabled flag in idrac driver" into stable/rocky

This commit is contained in:
Zuul 2019-08-19 14:40:04 +00:00 committed by Gerrit Code Review
commit 1b4d8effa8
6 changed files with 1056 additions and 4 deletions

View File

@ -28,6 +28,11 @@ from ironic.drivers.modules.drac import common as drac_common
from ironic import objects from ironic import objects
drac_exceptions = importutils.try_import('dracclient.exceptions') drac_exceptions = importutils.try_import('dracclient.exceptions')
drac_utils = importutils.try_import('dracclient.utils')
DCIM_NICEnumeration = ('http://schemas.dell.com/wbem/wscim/1/cim-schema/2/'
'DCIM_NICEnumeration') # noqa
NS_WSMAN = 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -119,10 +124,16 @@ class DracInspect(base.InspectInterface):
{'node_uuid': node.uuid, 'error': exc}) {'node_uuid': node.uuid, 'error': exc})
raise exception.HardwareInspectionFailure(error=exc) raise exception.HardwareInspectionFailure(error=exc)
pxe_dev_nics = self._get_pxe_dev_nics(client, nics, node)
if not pxe_dev_nics:
LOG.warning('No PXE enabled NIC was found for node '
'%(node_uuid)s.', {'node_uuid': node.uuid})
for nic in nics: for nic in nics:
try: try:
port = objects.Port(task.context, address=nic.mac, port = objects.Port(task.context, address=nic.mac,
node_id=node.id) node_id=node.id,
pxe_enabled=(nic.id in pxe_dev_nics))
port.create() port.create()
LOG.info('Port created with MAC address %(mac)s ' LOG.info('Port created with MAC address %(mac)s '
'for node %(node_uuid)s during inspection', 'for node %(node_uuid)s during inspection',
@ -161,3 +172,79 @@ class DracInspect(base.InspectInterface):
return cpu.cores * 2 return cpu.cores * 2
else: else:
return cpu.cores return cpu.cores
def _get_pxe_dev_nics(self, client, nics, node):
"""Get a list of pxe device interfaces.
:param client: Dracclient to list the bios settings and nics
:param nics: list of nics
:param node: Baremetal Node object
:returns: list of pxe device interfaces.
"""
pxe_dev_nics = []
nic_cap = {}
pxe_params = ["PxeDev1EnDis", "PxeDev2EnDis",
"PxeDev3EnDis", "PxeDev4EnDis"]
pxe_nics = ["PxeDev1Interface", "PxeDev2Interface",
"PxeDev3Interface", "PxeDev4Interface"]
try:
bios_settings = client.list_bios_settings()
except drac_exceptions.BaseClientException as exc:
LOG.error('DRAC driver failed to list bios settings '
'for %(node_uuid)s. Reason: %(error)s.',
{'node_uuid': node.uuid, 'error': exc})
raise exception.HardwareInspectionFailure(error=exc)
if bios_settings["BootMode"].current_value == "Uefi":
for param, nic in zip(pxe_params, pxe_nics):
if param in bios_settings and bios_settings[
param].current_value == "Enabled":
pxe_dev_nics.append(
bios_settings[nic].current_value)
elif bios_settings["BootMode"].current_value == "Bios":
for nic in nics:
try:
nic_cap = self._list_nic_settings(client, nic.id)
except drac_exceptions.BaseClientException as exc:
LOG.error('DRAC driver failed to list nic settings '
'for %(node_uuid)s. Reason: %(error)s.',
{'node_uuid': node.uuid, 'error': exc})
raise exception.HardwareInspectionFailure(error=exc)
if ("LegacyBootProto" in nic_cap and nic_cap[
'LegacyBootProto'] == "PXE"):
pxe_dev_nics.append(nic.id)
return pxe_dev_nics
def _list_nic_settings(self, client, nic_id):
"""Get nic attributes.
:param client: Dracclient instance
:param nic_id: an FQDD of NIC
:returns: a dict of FQDD, LegacyBootProto.
"""
result = {}
doc = client.client.enumerate(DCIM_NICEnumeration)
items = doc.find('.//{%s}Items' % NS_WSMAN)
for item in items:
if nic_id == drac_utils.get_wsman_resource_attr(
item, DCIM_NICEnumeration, 'FQDD'):
name = drac_utils.get_wsman_resource_attr(item,
DCIM_NICEnumeration,
'AttributeName')
current_value = drac_utils.get_wsman_resource_attr(
item,
DCIM_NICEnumeration,
'CurrentValue',
nullable=True)
if name == 'LegacyBootProto':
result[name] = current_value
result['FQDD'] = nic_id
return result

View File

@ -15,6 +15,8 @@
Test class for DRAC inspection interface Test class for DRAC inspection interface
""" """
from xml.etree import ElementTree
from dracclient import exceptions as drac_exceptions from dracclient import exceptions as drac_exceptions
import mock import mock
@ -27,6 +29,7 @@ from ironic import objects
from ironic.tests.unit.drivers.modules.drac import utils as test_utils from ironic.tests.unit.drivers.modules.drac import utils as test_utils
from ironic.tests.unit.objects import utils as obj_utils from ironic.tests.unit.objects import utils as obj_utils
INFO_DICT = test_utils.INFO_DICT INFO_DICT = test_utils.INFO_DICT
@ -121,6 +124,20 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
'speed': '1000 Mbps', 'speed': '1000 Mbps',
'duplex': 'full duplex', 'duplex': 'full duplex',
'media_type': 'Base T'}] 'media_type': 'Base T'}]
bios_boot_settings = {'BootMode': {'current_value': 'Bios'}}
uefi_boot_settings = {'BootMode': {'current_value': 'Uefi'},
'PxeDev1EnDis': {'current_value': 'Enabled'},
'PxeDev2EnDis': {'current_value': 'Disabled'},
'PxeDev3EnDis': {'current_value': 'Disabled'},
'PxeDev4EnDis': {'current_value': 'Disabled'},
'PxeDev1Interface': {
'current_value': 'NIC.Embedded.1-1-1'},
'PxeDev2Interface': None,
'PxeDev3Interface': None,
'PxeDev4Interface': None}
self.nic_settings = {'LegacyBootProto': 'PXE',
'FQDD': 'NIC.Embedded.1-1-1'}
self.memory = [test_utils.dict_to_namedtuple(values=m) for m in memory] self.memory = [test_utils.dict_to_namedtuple(values=m) for m in memory]
self.cpus = [test_utils.dict_to_namedtuple(values=c) for c in cpus] self.cpus = [test_utils.dict_to_namedtuple(values=c) for c in cpus]
self.virtual_disks = [test_utils.dict_to_namedtuple(values=vd) self.virtual_disks = [test_utils.dict_to_namedtuple(values=vd)
@ -128,27 +145,36 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
self.physical_disks = [test_utils.dict_to_namedtuple(values=pd) self.physical_disks = [test_utils.dict_to_namedtuple(values=pd)
for pd in physical_disks] for pd in physical_disks]
self.nics = [test_utils.dict_to_namedtuple(values=n) for n in nics] self.nics = [test_utils.dict_to_namedtuple(values=n) for n in nics]
self.bios_boot_settings = test_utils.dict_of_object(bios_boot_settings)
self.uefi_boot_settings = test_utils.dict_of_object(uefi_boot_settings)
def test_get_properties(self): def test_get_properties(self):
expected = drac_common.COMMON_PROPERTIES expected = drac_common.COMMON_PROPERTIES
driver = drac_inspect.DracInspect() driver = drac_inspect.DracInspect()
self.assertEqual(expected, driver.get_properties()) self.assertEqual(expected, driver.get_properties())
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True, @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True) autospec=True)
@mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True) @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
def test_inspect_hardware(self, mock_port_create, mock_get_drac_client): def test_inspect_hardware(self,
mock_port_create,
mock_get_drac_client,
mock__list_nic_settings):
expected_node_properties = { expected_node_properties = {
'memory_mb': 32768, 'memory_mb': 32768,
'local_gb': 1116, 'local_gb': 1116,
'cpus': 18, 'cpus': 18,
'cpu_arch': 'x86_64'} 'cpu_arch': 'x86_64'}
mock_client = mock.Mock() mock_client = mock.Mock()
mock__list_nic_settings.return_value = self.nic_settings
mock_get_drac_client.return_value = mock_client mock_get_drac_client.return_value = mock_client
mock_client.list_memory.return_value = self.memory mock_client.list_memory.return_value = self.memory
mock_client.list_cpus.return_value = self.cpus mock_client.list_cpus.return_value = self.cpus
mock_client.list_virtual_disks.return_value = self.virtual_disks mock_client.list_virtual_disks.return_value = self.virtual_disks
mock_client.list_nics.return_value = self.nics mock_client.list_nics.return_value = self.nics
mock_client.list_bios_settings.return_value = self.bios_boot_settings
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task: shared=True) as task:
@ -176,11 +202,14 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
self.assertRaises(exception.HardwareInspectionFailure, self.assertRaises(exception.HardwareInspectionFailure,
task.driver.inspect.inspect_hardware, task) task.driver.inspect.inspect_hardware, task)
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True, @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True) autospec=True)
@mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True) @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
def test_inspect_hardware_no_virtual_disk(self, mock_port_create, def test_inspect_hardware_no_virtual_disk(self, mock_port_create,
mock_get_drac_client): mock_get_drac_client,
mock__list_nic_settings):
expected_node_properties = { expected_node_properties = {
'memory_mb': 32768, 'memory_mb': 32768,
'local_gb': 279, 'local_gb': 279,
@ -188,11 +217,13 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
'cpu_arch': 'x86_64'} 'cpu_arch': 'x86_64'}
mock_client = mock.Mock() mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client mock_get_drac_client.return_value = mock_client
mock__list_nic_settings.return_value = self.nic_settings
mock_client.list_memory.return_value = self.memory mock_client.list_memory.return_value = self.memory
mock_client.list_cpus.return_value = self.cpus mock_client.list_cpus.return_value = self.cpus
mock_client.list_virtual_disks.return_value = [] mock_client.list_virtual_disks.return_value = []
mock_client.list_physical_disks.return_value = self.physical_disks mock_client.list_physical_disks.return_value = self.physical_disks
mock_client.list_nics.return_value = self.nics mock_client.list_nics.return_value = self.nics
mock_client.list_bios_settings.return_value = self.bios_boot_settings
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task: shared=True) as task:
@ -221,11 +252,14 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
self.assertRaises(exception.HardwareInspectionFailure, self.assertRaises(exception.HardwareInspectionFailure,
task.driver.inspect.inspect_hardware, task) task.driver.inspect.inspect_hardware, task)
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True, @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True) autospec=True)
@mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True) @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
def test_inspect_hardware_with_existing_ports(self, mock_port_create, def test_inspect_hardware_with_existing_ports(self, mock_port_create,
mock_get_drac_client): mock_get_drac_client,
mock__list_nic_settings):
expected_node_properties = { expected_node_properties = {
'memory_mb': 32768, 'memory_mb': 32768,
'local_gb': 1116, 'local_gb': 1116,
@ -233,10 +267,12 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
'cpu_arch': 'x86_64'} 'cpu_arch': 'x86_64'}
mock_client = mock.Mock() mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client mock_get_drac_client.return_value = mock_client
mock__list_nic_settings.return_value = self.nic_settings
mock_client.list_memory.return_value = self.memory mock_client.list_memory.return_value = self.memory
mock_client.list_cpus.return_value = self.cpus mock_client.list_cpus.return_value = self.cpus
mock_client.list_virtual_disks.return_value = self.virtual_disks mock_client.list_virtual_disks.return_value = self.virtual_disks
mock_client.list_nics.return_value = self.nics mock_client.list_nics.return_value = self.nics
mock_client.list_bios_settings.return_value = self.bios_boot_settings
mock_port_create.side_effect = exception.MACAlreadyExists("boom") mock_port_create.side_effect = exception.MACAlreadyExists("boom")
with task_manager.acquire(self.context, self.node.uuid, with task_manager.acquire(self.context, self.node.uuid,
@ -271,3 +307,117 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
self.cpus[1]) self.cpus[1])
self.assertEqual(6, cpu) self.assertEqual(6, cpu)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__get_pxe_dev_nics_with_UEFI_boot_mode(self, mock_get_drac_client):
expected_pxe_nic = self.uefi_boot_settings[
'PxeDev1Interface'].current_value
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock_client.list_bios_settings.return_value = self.uefi_boot_settings
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
mock_client, self.nics, self.node)
self.assertEqual(expected_pxe_nic, pxe_dev_nics[0])
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__get_pxe_dev_nics_with_BIOS_boot_mode(self,
mock_get_drac_client,
mock__list_nic_settings):
expected_pxe_nic = self.nic_settings['FQDD']
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock__list_nic_settings.return_value = self.nic_settings
mock_client.list_bios_settings.return_value = self.bios_boot_settings
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
mock_client, self.nics, self.node)
self.assertEqual(expected_pxe_nic, pxe_dev_nics[0])
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__get_pxe_dev_nics_list_boot_setting_failure(
self, mock_get_drac_client, mock__list_nic_settings):
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock_client.list_bios_settings.side_effect = (
drac_exceptions.BaseClientException('foo'))
mock__list_nic_settings.return_value = self.nic_settings
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
self.assertRaises(exception.HardwareInspectionFailure,
task.driver.inspect._get_pxe_dev_nics,
mock_client,
self.nics,
self.node)
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__get_pxe_dev_nics_list_nic_setting_failure(
self, mock_get_drac_client, mock__list_nic_settings):
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock_client.list_bios_settings.return_value = self.bios_boot_settings
mock__list_nic_settings.side_effect = (
drac_exceptions.BaseClientException('bar'))
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
self.assertRaises(exception.HardwareInspectionFailure,
task.driver.inspect._get_pxe_dev_nics,
mock_client,
self.nics,
self.node)
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__get_pxe_dev_nics_with_empty_list(self,
mock_get_drac_client,
mock__list_nic_settings):
expected_pxe_nic = []
nic_setting = []
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock__list_nic_settings.return_value = nic_setting
mock_client.list_bios_settings.return_value = self.bios_boot_settings
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
mock_client, self.nics, self.node)
self.assertEqual(expected_pxe_nic, pxe_dev_nics)
@mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
spec_set=True, autospec=True)
@mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
autospec=True)
def test__list_nic_settings(self,
mock_get_drac_client,
mock__list_nic_settings):
pxe_nic = self.nic_settings['FQDD']
nic_setting = {}
mock_client = mock.Mock()
mock_get_drac_client.return_value = mock_client
mock__list_nic_settings.return_value = self.nic_settings
mock_client.invoke.return_value = ElementTree.fromstring(
test_utils.NICEnumerations[drac_inspect.DCIM_NICEnumeration]['ok'])
with task_manager.acquire(self.context,
self.node.uuid,
shared=True) as task:
nic_setting = task.driver.inspect._list_nic_settings(mock_client,
pxe_nic)
self.assertEqual(self.nic_settings, nic_setting)

View File

@ -12,6 +12,7 @@
# under the License. # under the License.
import collections import collections
import os
from ironic.tests.unit.db import base as db_base from ironic.tests.unit.db import base as db_base
from ironic.tests.unit.db import utils as db_utils from ironic.tests.unit.db import utils as db_utils
@ -19,6 +20,18 @@ from ironic.tests.unit.db import utils as db_utils
INFO_DICT = db_utils.get_test_drac_info() INFO_DICT = db_utils.get_test_drac_info()
DCIM_NICEnumeration = ('http://schemas.dell.com/wbem/wscim/1/cim-schema/2/'
'DCIM_NICEnumeration') # noqa
FAKE_ENDPOINT = {
'host': '1.2.3.4',
'port': '443',
'path': '/wsman',
'protocol': 'https',
'username': 'admin',
'password': 's3cr3t'
}
class BaseDracTest(db_base.DbTestCase): class BaseDracTest(db_base.DbTestCase):
def setUp(self): def setUp(self):
@ -31,6 +44,13 @@ class BaseDracTest(db_base.DbTestCase):
enabled_raid_interfaces=['idrac', 'fake', 'no-raid']) enabled_raid_interfaces=['idrac', 'fake', 'no-raid'])
class DictToObj(object):
"""Returns a dictionary into a class"""
def __init__(self, dictionary):
for key in dictionary:
setattr(self, key, dictionary[key])
def dict_to_namedtuple(name='GenericNamedTuple', values=None): def dict_to_namedtuple(name='GenericNamedTuple', values=None):
"""Converts a dict to a collections.namedtuple""" """Converts a dict to a collections.namedtuple"""
@ -38,3 +58,30 @@ def dict_to_namedtuple(name='GenericNamedTuple', values=None):
values = {} values = {}
return collections.namedtuple(name, list(values))(**values) return collections.namedtuple(name, list(values))(**values)
def dict_of_object(data):
"""Create a dictionary object"""
for k, v in data.items():
if isinstance(v, dict):
dict_obj = DictToObj(v)
data[k] = dict_obj
return data
def load_wsman_xml(name):
"""Helper function to load a WSMan XML response from a file."""
with open(os.path.join(os.path.dirname(__file__), 'wsman_mocks',
'%s.xml' % name), 'r') as f:
xml_body = f.read()
return xml_body
NICEnumerations = {
DCIM_NICEnumeration: {
'ok': load_wsman_xml('nic_enumeration-enum-ok'),
}
}

View File

@ -0,0 +1,767 @@
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
xmlns:n1="http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_NICEnumeration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<s:Header>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
</wsa:To>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/EnumerateResponse
</wsa:Action>
<wsa:RelatesTo>uuid:608d7722-0302-4feb-8080-4652e0e0ab48
</wsa:RelatesTo>
<wsa:MessageID>uuid:07820ac0-71f0-11f0-a4a1-a53ffbd9bed4
</wsa:MessageID>
</s:Header>
<s:Body>
<wsen:EnumerateResponse>
<wsman:Items>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Link Status</n1:AttributeDisplayName>
<n1:AttributeName>LinkStatus</n1:AttributeName>
<n1:CurrentValue>Connected</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>Main Configuration Page</n1:GroupDisplayName>
<n1:GroupID>VndrConfigPage</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:LinkStatus</n1:InstanceID>
<n1:IsReadOnly>true</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disconnected</n1:PossibleValues>
<n1:PossibleValues>Connected</n1:PossibleValues>
<n1:PossibleValuesDescription>Disconnected
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Connected
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>TCP/IP Parameters via DHCP
</n1:AttributeDisplayName>
<n1:AttributeName>TcpIpViaDHCP</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv6</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:TcpIpViaDHCP</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>IP Autoconfiguration
</n1:AttributeDisplayName>
<n1:AttributeName>IpAutoConfig</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv4</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:IpAutoConfig</n1:InstanceID>
<n1:IsReadOnly>true</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>iSCSI Parameters via DHCP
</n1:AttributeDisplayName>
<n1:AttributeName>IscsiViaDHCP</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:IscsiViaDHCP</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>CHAP Authentication
</n1:AttributeDisplayName>
<n1:AttributeName>ChapAuthEnable</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:ChapAuthEnable</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Boot to iSCSI Target
</n1:AttributeDisplayName>
<n1:AttributeName>IscsiTgtBoot</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:IscsiTgtBoot</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValues>OneTimeDisabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>One Time Disabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use TCP Timestamp
</n1:AttributeDisplayName>
<n1:AttributeName>TcpTimestmp</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:TcpTimestmp</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Target as First HDD
</n1:AttributeDisplayName>
<n1:AttributeName>FirstHddTarget</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:FirstHddTarget</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>IP Version</n1:AttributeDisplayName>
<n1:AttributeName>IpVer</n1:AttributeName>
<n1:CurrentValue>IPv4</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:IpVer</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>IPv4</n1:PossibleValues>
<n1:PossibleValues>IPv6</n1:PossibleValues>
<n1:PossibleValuesDescription>IPv4</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>IPv6</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
<n1:AttributeName>ConnectFirstTgt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI First Target Parameters
</n1:GroupDisplayName>
<n1:GroupID>IscsiFirstTgtParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:ConnectFirstTgt</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
<n1:AttributeName>ConnectSecondTgt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI Second Target Parameters
</n1:GroupDisplayName>
<n1:GroupID>IscsiSecondTgtParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:ConnectSecondTgt
</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Legacy Boot Protocol
</n1:AttributeDisplayName>
<n1:AttributeName>LegacyBootProto</n1:AttributeName>
<n1:CurrentValue>PXE</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:LegacyBootProto</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue>NONE</n1:PendingValue>
<n1:PossibleValues>PXE</n1:PossibleValues>
<n1:PossibleValues>iSCSI</n1:PossibleValues>
<n1:PossibleValues>NONE</n1:PossibleValues>
<n1:PossibleValuesDescription>PXE</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>iSCSI</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>NONE</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Boot Strap Type</n1:AttributeDisplayName>
<n1:AttributeName>BootStrapType</n1:AttributeName>
<n1:CurrentValue>AutoDetect</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:BootStrapType</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>AutoDetect</n1:PossibleValues>
<n1:PossibleValues>BBS</n1:PossibleValues>
<n1:PossibleValues>Int18h</n1:PossibleValues>
<n1:PossibleValues>Int19h</n1:PossibleValues>
<n1:PossibleValuesDescription>Auto Detect
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>BBS</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Int 18h
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Int 19h
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Hide Setup Prompt
</n1:AttributeDisplayName>
<n1:AttributeName>HideSetupPrompt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:HideSetupPrompt</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Link Speed</n1:AttributeDisplayName>
<n1:AttributeName>LnkSpeed</n1:AttributeName>
<n1:CurrentValue>AutoNeg</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:LnkSpeed</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>AutoNeg</n1:PossibleValues>
<n1:PossibleValues>10MbpsHalf</n1:PossibleValues>
<n1:PossibleValues>10MbpsFull</n1:PossibleValues>
<n1:PossibleValues>100MbpsHalf</n1:PossibleValues>
<n1:PossibleValues>100MbpsFull</n1:PossibleValues>
<n1:PossibleValuesDescription>AutoNeg
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>10Mbps Half
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>10Mbps Full
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>100Mbps Half
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>100Mbps Full
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Pre-boot Wake On LAN
</n1:AttributeDisplayName>
<n1:AttributeName>WakeOnLan</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:WakeOnLan</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>VLAN Mode</n1:AttributeDisplayName>
<n1:AttributeName>VLanMode</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:VLanMode</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use Independent Target Portal
</n1:AttributeDisplayName>
<n1:AttributeName>UseIndTgtPortal</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
<n1:GroupID>SecondaryDevice</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:UseIndTgtPortal</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use Independent Target Name
</n1:AttributeDisplayName>
<n1:AttributeName>UseIndTgtName</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
<n1:GroupID>SecondaryDevice</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-3-1:UseIndTgtName</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Link Status</n1:AttributeDisplayName>
<n1:AttributeName>LinkStatus</n1:AttributeName>
<n1:CurrentValue>Disconnected</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>Main Configuration Page</n1:GroupDisplayName>
<n1:GroupID>VndrConfigPage</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:LinkStatus</n1:InstanceID>
<n1:IsReadOnly>true</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disconnected</n1:PossibleValues>
<n1:PossibleValues>Connected</n1:PossibleValues>
<n1:PossibleValuesDescription>Disconnected
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Connected
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>TCP/IP Parameters via DHCP
</n1:AttributeDisplayName>
<n1:AttributeName>TcpIpViaDHCP</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv6</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:TcpIpViaDHCP</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>IP Autoconfiguration
</n1:AttributeDisplayName>
<n1:AttributeName>IpAutoConfig</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv4</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:IpAutoConfig</n1:InstanceID>
<n1:IsReadOnly>true</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>iSCSI Parameters via DHCP
</n1:AttributeDisplayName>
<n1:AttributeName>IscsiViaDHCP</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:IscsiViaDHCP</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>CHAP Authentication
</n1:AttributeDisplayName>
<n1:AttributeName>ChapAuthEnable</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:ChapAuthEnable</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Boot to iSCSI Target
</n1:AttributeDisplayName>
<n1:AttributeName>IscsiTgtBoot</n1:AttributeName>
<n1:CurrentValue>Enabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:IscsiTgtBoot</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValues>OneTimeDisabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>One Time Disabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use TCP Timestamp
</n1:AttributeDisplayName>
<n1:AttributeName>TcpTimestmp</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:TcpTimestmp</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Target as First HDD
</n1:AttributeDisplayName>
<n1:AttributeName>FirstHddTarget</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:FirstHddTarget</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>IP Version</n1:AttributeDisplayName>
<n1:AttributeName>IpVer</n1:AttributeName>
<n1:CurrentValue>IPv4</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
<n1:GroupID>IscsiGenParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:IpVer</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>IPv4</n1:PossibleValues>
<n1:PossibleValues>IPv6</n1:PossibleValues>
<n1:PossibleValuesDescription>IPv4</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>IPv6</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
<n1:AttributeName>ConnectFirstTgt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI First Target Parameters
</n1:GroupDisplayName>
<n1:GroupID>IscsiFirstTgtParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:ConnectFirstTgt</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
<n1:AttributeName>ConnectSecondTgt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>iSCSI Second Target Parameters
</n1:GroupDisplayName>
<n1:GroupID>IscsiSecondTgtParams</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:ConnectSecondTgt
</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Legacy Boot Protocol
</n1:AttributeDisplayName>
<n1:AttributeName>LegacyBootProto</n1:AttributeName>
<n1:CurrentValue>NONE</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:LegacyBootProto</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>PXE</n1:PossibleValues>
<n1:PossibleValues>iSCSI</n1:PossibleValues>
<n1:PossibleValues>NONE</n1:PossibleValues>
<n1:PossibleValuesDescription>PXE</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>iSCSI</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>NONE</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Boot Strap Type</n1:AttributeDisplayName>
<n1:AttributeName>BootStrapType</n1:AttributeName>
<n1:CurrentValue>AutoDetect</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:BootStrapType</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>AutoDetect</n1:PossibleValues>
<n1:PossibleValues>BBS</n1:PossibleValues>
<n1:PossibleValues>Int18h</n1:PossibleValues>
<n1:PossibleValues>Int19h</n1:PossibleValues>
<n1:PossibleValuesDescription>Auto Detect
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>BBS</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Int 18h
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Int 19h
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Hide Setup Prompt
</n1:AttributeDisplayName>
<n1:AttributeName>HideSetupPrompt</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:HideSetupPrompt</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Link Speed</n1:AttributeDisplayName>
<n1:AttributeName>LnkSpeed</n1:AttributeName>
<n1:CurrentValue>AutoNeg</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:LnkSpeed</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>AutoNeg</n1:PossibleValues>
<n1:PossibleValues>10MbpsHalf</n1:PossibleValues>
<n1:PossibleValues>10MbpsFull</n1:PossibleValues>
<n1:PossibleValues>100MbpsHalf</n1:PossibleValues>
<n1:PossibleValues>100MbpsFull</n1:PossibleValues>
<n1:PossibleValuesDescription>AutoNeg
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>10Mbps Half
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>10Mbps Full
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>100Mbps Half
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>100Mbps Full
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Pre-boot Wake On LAN
</n1:AttributeDisplayName>
<n1:AttributeName>WakeOnLan</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:WakeOnLan</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>VLAN Mode</n1:AttributeDisplayName>
<n1:AttributeName>VLanMode</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency xsi:nil="true" />
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
<n1:GroupID>NICConfig</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:VLanMode</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use Independent Target Portal
</n1:AttributeDisplayName>
<n1:AttributeName>UseIndTgtPortal</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
<n1:GroupID>SecondaryDevice</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:UseIndTgtPortal</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
<n1:DCIM_NICEnumeration>
<n1:AttributeDisplayName>Use Independent Target Name
</n1:AttributeDisplayName>
<n1:AttributeName>UseIndTgtName</n1:AttributeName>
<n1:CurrentValue>Disabled</n1:CurrentValue>
<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
<n1:GroupID>SecondaryDevice</n1:GroupID>
<n1:InstanceID>NIC.Integrated.1-4-1:UseIndTgtName</n1:InstanceID>
<n1:IsReadOnly>false</n1:IsReadOnly>
<n1:PendingValue xsi:nil="true" />
<n1:PossibleValues>Disabled</n1:PossibleValues>
<n1:PossibleValues>Enabled</n1:PossibleValues>
<n1:PossibleValuesDescription>Disabled
</n1:PossibleValuesDescription>
<n1:PossibleValuesDescription>Enabled
</n1:PossibleValuesDescription>
</n1:DCIM_NICEnumeration>
</wsman:Items>
</wsen:EnumerateResponse>
</s:Body>
</s:Envelope>

View File

@ -25,6 +25,7 @@ DRACCLIENT_SPEC = (
DRACCLIENT_CLIENT_MOD_SPEC = ( DRACCLIENT_CLIENT_MOD_SPEC = (
'DRACClient', 'DRACClient',
'WSManClient',
) )
DRACCLIENT_CONSTANTS_MOD_SPEC = ( DRACCLIENT_CONSTANTS_MOD_SPEC = (