Browse Source

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

stable/rocky
Zuul 4 weeks ago
parent
commit
1b4d8effa8

+ 88
- 1
ironic/drivers/modules/drac/inspect.py View File

@@ -28,6 +28,11 @@ from ironic.drivers.modules.drac import common as drac_common
28 28
 from ironic import objects
29 29
 
30 30
 drac_exceptions = importutils.try_import('dracclient.exceptions')
31
+drac_utils = importutils.try_import('dracclient.utils')
32
+
33
+DCIM_NICEnumeration = ('http://schemas.dell.com/wbem/wscim/1/cim-schema/2/'
34
+                       'DCIM_NICEnumeration')  # noqa
35
+NS_WSMAN = 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
31 36
 
32 37
 LOG = logging.getLogger(__name__)
33 38
 
@@ -119,10 +124,16 @@ class DracInspect(base.InspectInterface):
119 124
                       {'node_uuid': node.uuid, 'error': exc})
120 125
             raise exception.HardwareInspectionFailure(error=exc)
121 126
 
127
+        pxe_dev_nics = self._get_pxe_dev_nics(client, nics, node)
128
+        if not pxe_dev_nics:
129
+            LOG.warning('No PXE enabled NIC was found for node '
130
+                        '%(node_uuid)s.', {'node_uuid': node.uuid})
131
+
122 132
         for nic in nics:
123 133
             try:
124 134
                 port = objects.Port(task.context, address=nic.mac,
125
-                                    node_id=node.id)
135
+                                    node_id=node.id,
136
+                                    pxe_enabled=(nic.id in pxe_dev_nics))
126 137
                 port.create()
127 138
                 LOG.info('Port created with MAC address %(mac)s '
128 139
                          'for node %(node_uuid)s during inspection',
@@ -161,3 +172,79 @@ class DracInspect(base.InspectInterface):
161 172
             return cpu.cores * 2
162 173
         else:
163 174
             return cpu.cores
175
+
176
+    def _get_pxe_dev_nics(self, client, nics, node):
177
+        """Get a list of pxe device interfaces.
178
+
179
+        :param client: Dracclient to list the bios settings and nics
180
+        :param nics: list of nics
181
+        :param node: Baremetal Node object
182
+
183
+        :returns: list of pxe device interfaces.
184
+        """
185
+        pxe_dev_nics = []
186
+        nic_cap = {}
187
+        pxe_params = ["PxeDev1EnDis", "PxeDev2EnDis",
188
+                      "PxeDev3EnDis", "PxeDev4EnDis"]
189
+        pxe_nics = ["PxeDev1Interface", "PxeDev2Interface",
190
+                    "PxeDev3Interface", "PxeDev4Interface"]
191
+
192
+        try:
193
+            bios_settings = client.list_bios_settings()
194
+        except drac_exceptions.BaseClientException as exc:
195
+            LOG.error('DRAC driver failed to list bios settings '
196
+                      'for %(node_uuid)s. Reason: %(error)s.',
197
+                      {'node_uuid': node.uuid, 'error': exc})
198
+            raise exception.HardwareInspectionFailure(error=exc)
199
+
200
+        if bios_settings["BootMode"].current_value == "Uefi":
201
+            for param, nic in zip(pxe_params, pxe_nics):
202
+                if param in bios_settings and bios_settings[
203
+                        param].current_value == "Enabled":
204
+                    pxe_dev_nics.append(
205
+                        bios_settings[nic].current_value)
206
+        elif bios_settings["BootMode"].current_value == "Bios":
207
+            for nic in nics:
208
+                try:
209
+                    nic_cap = self._list_nic_settings(client, nic.id)
210
+                except drac_exceptions.BaseClientException as exc:
211
+                    LOG.error('DRAC driver failed to list nic settings '
212
+                              'for %(node_uuid)s. Reason: %(error)s.',
213
+                              {'node_uuid': node.uuid, 'error': exc})
214
+                    raise exception.HardwareInspectionFailure(error=exc)
215
+
216
+                if ("LegacyBootProto" in nic_cap and nic_cap[
217
+                        'LegacyBootProto'] == "PXE"):
218
+                    pxe_dev_nics.append(nic.id)
219
+
220
+        return pxe_dev_nics
221
+
222
+    def _list_nic_settings(self, client, nic_id):
223
+        """Get nic attributes.
224
+
225
+        :param client: Dracclient instance
226
+        :param nic_id: an FQDD of NIC
227
+
228
+        :returns: a dict of FQDD, LegacyBootProto.
229
+        """
230
+        result = {}
231
+        doc = client.client.enumerate(DCIM_NICEnumeration)
232
+        items = doc.find('.//{%s}Items' % NS_WSMAN)
233
+
234
+        for item in items:
235
+            if nic_id == drac_utils.get_wsman_resource_attr(
236
+                    item, DCIM_NICEnumeration, 'FQDD'):
237
+                name = drac_utils.get_wsman_resource_attr(item,
238
+                                                          DCIM_NICEnumeration,
239
+                                                          'AttributeName')
240
+                current_value = drac_utils.get_wsman_resource_attr(
241
+                    item,
242
+                    DCIM_NICEnumeration,
243
+                    'CurrentValue',
244
+                    nullable=True)
245
+
246
+                if name == 'LegacyBootProto':
247
+                    result[name] = current_value
248
+                    result['FQDD'] = nic_id
249
+
250
+        return result

+ 153
- 3
ironic/tests/unit/drivers/modules/drac/test_inspect.py View File

@@ -15,6 +15,8 @@
15 15
 Test class for DRAC inspection interface
16 16
 """
17 17
 
18
+from xml.etree import ElementTree
19
+
18 20
 from dracclient import exceptions as drac_exceptions
19 21
 import mock
20 22
 
@@ -27,6 +29,7 @@ from ironic import objects
27 29
 from ironic.tests.unit.drivers.modules.drac import utils as test_utils
28 30
 from ironic.tests.unit.objects import utils as obj_utils
29 31
 
32
+
30 33
 INFO_DICT = test_utils.INFO_DICT
31 34
 
32 35
 
@@ -121,6 +124,20 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
121 124
              'speed': '1000 Mbps',
122 125
              'duplex': 'full duplex',
123 126
              'media_type': 'Base T'}]
127
+
128
+        bios_boot_settings = {'BootMode': {'current_value': 'Bios'}}
129
+        uefi_boot_settings = {'BootMode': {'current_value': 'Uefi'},
130
+                              'PxeDev1EnDis': {'current_value': 'Enabled'},
131
+                              'PxeDev2EnDis': {'current_value': 'Disabled'},
132
+                              'PxeDev3EnDis': {'current_value': 'Disabled'},
133
+                              'PxeDev4EnDis': {'current_value': 'Disabled'},
134
+                              'PxeDev1Interface': {
135
+                                  'current_value': 'NIC.Embedded.1-1-1'},
136
+                              'PxeDev2Interface': None,
137
+                              'PxeDev3Interface': None,
138
+                              'PxeDev4Interface': None}
139
+        self.nic_settings = {'LegacyBootProto': 'PXE',
140
+                             'FQDD': 'NIC.Embedded.1-1-1'}
124 141
         self.memory = [test_utils.dict_to_namedtuple(values=m) for m in memory]
125 142
         self.cpus = [test_utils.dict_to_namedtuple(values=c) for c in cpus]
126 143
         self.virtual_disks = [test_utils.dict_to_namedtuple(values=vd)
@@ -128,27 +145,36 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
128 145
         self.physical_disks = [test_utils.dict_to_namedtuple(values=pd)
129 146
                                for pd in physical_disks]
130 147
         self.nics = [test_utils.dict_to_namedtuple(values=n) for n in nics]
148
+        self.bios_boot_settings = test_utils.dict_of_object(bios_boot_settings)
149
+        self.uefi_boot_settings = test_utils.dict_of_object(uefi_boot_settings)
131 150
 
132 151
     def test_get_properties(self):
133 152
         expected = drac_common.COMMON_PROPERTIES
134 153
         driver = drac_inspect.DracInspect()
135 154
         self.assertEqual(expected, driver.get_properties())
136 155
 
156
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
157
+                       spec_set=True, autospec=True)
137 158
     @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
138 159
                        autospec=True)
139 160
     @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
140
-    def test_inspect_hardware(self, mock_port_create, mock_get_drac_client):
161
+    def test_inspect_hardware(self,
162
+                              mock_port_create,
163
+                              mock_get_drac_client,
164
+                              mock__list_nic_settings):
141 165
         expected_node_properties = {
142 166
             'memory_mb': 32768,
143 167
             'local_gb': 1116,
144 168
             'cpus': 18,
145 169
             'cpu_arch': 'x86_64'}
146 170
         mock_client = mock.Mock()
171
+        mock__list_nic_settings.return_value = self.nic_settings
147 172
         mock_get_drac_client.return_value = mock_client
148 173
         mock_client.list_memory.return_value = self.memory
149 174
         mock_client.list_cpus.return_value = self.cpus
150 175
         mock_client.list_virtual_disks.return_value = self.virtual_disks
151 176
         mock_client.list_nics.return_value = self.nics
177
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
152 178
 
153 179
         with task_manager.acquire(self.context, self.node.uuid,
154 180
                                   shared=True) as task:
@@ -176,11 +202,14 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
176 202
             self.assertRaises(exception.HardwareInspectionFailure,
177 203
                               task.driver.inspect.inspect_hardware, task)
178 204
 
205
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
206
+                       spec_set=True, autospec=True)
179 207
     @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
180 208
                        autospec=True)
181 209
     @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
182 210
     def test_inspect_hardware_no_virtual_disk(self, mock_port_create,
183
-                                              mock_get_drac_client):
211
+                                              mock_get_drac_client,
212
+                                              mock__list_nic_settings):
184 213
         expected_node_properties = {
185 214
             'memory_mb': 32768,
186 215
             'local_gb': 279,
@@ -188,11 +217,13 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
188 217
             'cpu_arch': 'x86_64'}
189 218
         mock_client = mock.Mock()
190 219
         mock_get_drac_client.return_value = mock_client
220
+        mock__list_nic_settings.return_value = self.nic_settings
191 221
         mock_client.list_memory.return_value = self.memory
192 222
         mock_client.list_cpus.return_value = self.cpus
193 223
         mock_client.list_virtual_disks.return_value = []
194 224
         mock_client.list_physical_disks.return_value = self.physical_disks
195 225
         mock_client.list_nics.return_value = self.nics
226
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
196 227
 
197 228
         with task_manager.acquire(self.context, self.node.uuid,
198 229
                                   shared=True) as task:
@@ -221,11 +252,14 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
221 252
             self.assertRaises(exception.HardwareInspectionFailure,
222 253
                               task.driver.inspect.inspect_hardware, task)
223 254
 
255
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
256
+                       spec_set=True, autospec=True)
224 257
     @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
225 258
                        autospec=True)
226 259
     @mock.patch.object(objects.Port, 'create', spec_set=True, autospec=True)
227 260
     def test_inspect_hardware_with_existing_ports(self, mock_port_create,
228
-                                                  mock_get_drac_client):
261
+                                                  mock_get_drac_client,
262
+                                                  mock__list_nic_settings):
229 263
         expected_node_properties = {
230 264
             'memory_mb': 32768,
231 265
             'local_gb': 1116,
@@ -233,10 +267,12 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
233 267
             'cpu_arch': 'x86_64'}
234 268
         mock_client = mock.Mock()
235 269
         mock_get_drac_client.return_value = mock_client
270
+        mock__list_nic_settings.return_value = self.nic_settings
236 271
         mock_client.list_memory.return_value = self.memory
237 272
         mock_client.list_cpus.return_value = self.cpus
238 273
         mock_client.list_virtual_disks.return_value = self.virtual_disks
239 274
         mock_client.list_nics.return_value = self.nics
275
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
240 276
         mock_port_create.side_effect = exception.MACAlreadyExists("boom")
241 277
 
242 278
         with task_manager.acquire(self.context, self.node.uuid,
@@ -271,3 +307,117 @@ class DracInspectionTestCase(test_utils.BaseDracTest):
271 307
                 self.cpus[1])
272 308
 
273 309
             self.assertEqual(6, cpu)
310
+
311
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
312
+                       autospec=True)
313
+    def test__get_pxe_dev_nics_with_UEFI_boot_mode(self, mock_get_drac_client):
314
+        expected_pxe_nic = self.uefi_boot_settings[
315
+            'PxeDev1Interface'].current_value
316
+        mock_client = mock.Mock()
317
+        mock_get_drac_client.return_value = mock_client
318
+        mock_client.list_bios_settings.return_value = self.uefi_boot_settings
319
+        with task_manager.acquire(self.context, self.node.uuid,
320
+                                  shared=True) as task:
321
+            pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
322
+                mock_client, self.nics, self.node)
323
+
324
+            self.assertEqual(expected_pxe_nic, pxe_dev_nics[0])
325
+
326
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
327
+                       spec_set=True, autospec=True)
328
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
329
+                       autospec=True)
330
+    def test__get_pxe_dev_nics_with_BIOS_boot_mode(self,
331
+                                                   mock_get_drac_client,
332
+                                                   mock__list_nic_settings):
333
+        expected_pxe_nic = self.nic_settings['FQDD']
334
+        mock_client = mock.Mock()
335
+        mock_get_drac_client.return_value = mock_client
336
+        mock__list_nic_settings.return_value = self.nic_settings
337
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
338
+        with task_manager.acquire(self.context, self.node.uuid,
339
+                                  shared=True) as task:
340
+            pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
341
+                mock_client, self.nics, self.node)
342
+
343
+            self.assertEqual(expected_pxe_nic, pxe_dev_nics[0])
344
+
345
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
346
+                       spec_set=True, autospec=True)
347
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
348
+                       autospec=True)
349
+    def test__get_pxe_dev_nics_list_boot_setting_failure(
350
+            self, mock_get_drac_client, mock__list_nic_settings):
351
+        mock_client = mock.Mock()
352
+        mock_get_drac_client.return_value = mock_client
353
+        mock_client.list_bios_settings.side_effect = (
354
+            drac_exceptions.BaseClientException('foo'))
355
+        mock__list_nic_settings.return_value = self.nic_settings
356
+        with task_manager.acquire(self.context, self.node.uuid,
357
+                                  shared=True) as task:
358
+            self.assertRaises(exception.HardwareInspectionFailure,
359
+                              task.driver.inspect._get_pxe_dev_nics,
360
+                              mock_client,
361
+                              self.nics,
362
+                              self.node)
363
+
364
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
365
+                       spec_set=True, autospec=True)
366
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
367
+                       autospec=True)
368
+    def test__get_pxe_dev_nics_list_nic_setting_failure(
369
+            self, mock_get_drac_client, mock__list_nic_settings):
370
+        mock_client = mock.Mock()
371
+        mock_get_drac_client.return_value = mock_client
372
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
373
+        mock__list_nic_settings.side_effect = (
374
+            drac_exceptions.BaseClientException('bar'))
375
+
376
+        with task_manager.acquire(self.context, self.node.uuid,
377
+                                  shared=True) as task:
378
+            self.assertRaises(exception.HardwareInspectionFailure,
379
+                              task.driver.inspect._get_pxe_dev_nics,
380
+                              mock_client,
381
+                              self.nics,
382
+                              self.node)
383
+
384
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
385
+                       spec_set=True, autospec=True)
386
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
387
+                       autospec=True)
388
+    def test__get_pxe_dev_nics_with_empty_list(self,
389
+                                               mock_get_drac_client,
390
+                                               mock__list_nic_settings):
391
+        expected_pxe_nic = []
392
+        nic_setting = []
393
+        mock_client = mock.Mock()
394
+        mock_get_drac_client.return_value = mock_client
395
+        mock__list_nic_settings.return_value = nic_setting
396
+        mock_client.list_bios_settings.return_value = self.bios_boot_settings
397
+        with task_manager.acquire(self.context, self.node.uuid,
398
+                                  shared=True) as task:
399
+            pxe_dev_nics = task.driver.inspect._get_pxe_dev_nics(
400
+                mock_client, self.nics, self.node)
401
+
402
+            self.assertEqual(expected_pxe_nic, pxe_dev_nics)
403
+
404
+    @mock.patch.object(drac_inspect.DracInspect, '_list_nic_settings',
405
+                       spec_set=True, autospec=True)
406
+    @mock.patch.object(drac_common, 'get_drac_client', spec_set=True,
407
+                       autospec=True)
408
+    def test__list_nic_settings(self,
409
+                                mock_get_drac_client,
410
+                                mock__list_nic_settings):
411
+        pxe_nic = self.nic_settings['FQDD']
412
+        nic_setting = {}
413
+        mock_client = mock.Mock()
414
+        mock_get_drac_client.return_value = mock_client
415
+        mock__list_nic_settings.return_value = self.nic_settings
416
+        mock_client.invoke.return_value = ElementTree.fromstring(
417
+            test_utils.NICEnumerations[drac_inspect.DCIM_NICEnumeration]['ok'])
418
+        with task_manager.acquire(self.context,
419
+                                  self.node.uuid,
420
+                                  shared=True) as task:
421
+            nic_setting = task.driver.inspect._list_nic_settings(mock_client,
422
+                                                                 pxe_nic)
423
+            self.assertEqual(self.nic_settings, nic_setting)

+ 47
- 0
ironic/tests/unit/drivers/modules/drac/utils.py View File

@@ -12,6 +12,7 @@
12 12
 #    under the License.
13 13
 
14 14
 import collections
15
+import os
15 16
 
16 17
 from ironic.tests.unit.db import base as db_base
17 18
 from ironic.tests.unit.db import utils as db_utils
@@ -19,6 +20,18 @@ from ironic.tests.unit.db import utils as db_utils
19 20
 
20 21
 INFO_DICT = db_utils.get_test_drac_info()
21 22
 
23
+DCIM_NICEnumeration = ('http://schemas.dell.com/wbem/wscim/1/cim-schema/2/'
24
+                       'DCIM_NICEnumeration')  # noqa
25
+
26
+FAKE_ENDPOINT = {
27
+    'host': '1.2.3.4',
28
+    'port': '443',
29
+    'path': '/wsman',
30
+    'protocol': 'https',
31
+    'username': 'admin',
32
+    'password': 's3cr3t'
33
+}
34
+
22 35
 
23 36
 class BaseDracTest(db_base.DbTestCase):
24 37
     def setUp(self):
@@ -31,6 +44,13 @@ class BaseDracTest(db_base.DbTestCase):
31 44
                     enabled_raid_interfaces=['idrac', 'fake', 'no-raid'])
32 45
 
33 46
 
47
+class DictToObj(object):
48
+    """Returns a dictionary into a class"""
49
+    def __init__(self, dictionary):
50
+        for key in dictionary:
51
+            setattr(self, key, dictionary[key])
52
+
53
+
34 54
 def dict_to_namedtuple(name='GenericNamedTuple', values=None):
35 55
     """Converts a dict to a collections.namedtuple"""
36 56
 
@@ -38,3 +58,30 @@ def dict_to_namedtuple(name='GenericNamedTuple', values=None):
38 58
         values = {}
39 59
 
40 60
     return collections.namedtuple(name, list(values))(**values)
61
+
62
+
63
+def dict_of_object(data):
64
+    """Create a dictionary object"""
65
+
66
+    for k, v in data.items():
67
+        if isinstance(v, dict):
68
+            dict_obj = DictToObj(v)
69
+            data[k] = dict_obj
70
+    return data
71
+
72
+
73
+def load_wsman_xml(name):
74
+    """Helper function to load a WSMan XML response from a file."""
75
+
76
+    with open(os.path.join(os.path.dirname(__file__), 'wsman_mocks',
77
+                           '%s.xml' % name), 'r') as f:
78
+        xml_body = f.read()
79
+
80
+    return xml_body
81
+
82
+
83
+NICEnumerations = {
84
+    DCIM_NICEnumeration: {
85
+        'ok': load_wsman_xml('nic_enumeration-enum-ok'),
86
+    }
87
+}

+ 0
- 0
ironic/tests/unit/drivers/modules/drac/wsman_mocks/__init__.py View File


+ 767
- 0
ironic/tests/unit/drivers/modules/drac/wsman_mocks/nic_enumeration-enum-ok.xml View File

@@ -0,0 +1,767 @@
1
+<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
2
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
3
+	xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
4
+	xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"
5
+	xmlns:n1="http://schemas.dell.com/wbem/wscim/1/cim-schema/2/DCIM_NICEnumeration"
6
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
7
+	<s:Header>
8
+		<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
9
+		</wsa:To>
10
+		<wsa:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/EnumerateResponse
11
+		</wsa:Action>
12
+		<wsa:RelatesTo>uuid:608d7722-0302-4feb-8080-4652e0e0ab48
13
+		</wsa:RelatesTo>
14
+		<wsa:MessageID>uuid:07820ac0-71f0-11f0-a4a1-a53ffbd9bed4
15
+		</wsa:MessageID>
16
+	</s:Header>
17
+	<s:Body>
18
+		<wsen:EnumerateResponse>
19
+			<wsman:Items>
20
+				<n1:DCIM_NICEnumeration>
21
+					<n1:AttributeDisplayName>Link Status</n1:AttributeDisplayName>
22
+					<n1:AttributeName>LinkStatus</n1:AttributeName>
23
+					<n1:CurrentValue>Connected</n1:CurrentValue>
24
+					<n1:Dependency xsi:nil="true" />
25
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
26
+					<n1:GroupDisplayName>Main Configuration Page</n1:GroupDisplayName>
27
+					<n1:GroupID>VndrConfigPage</n1:GroupID>
28
+					<n1:InstanceID>NIC.Integrated.1-3-1:LinkStatus</n1:InstanceID>
29
+					<n1:IsReadOnly>true</n1:IsReadOnly>
30
+					<n1:PendingValue xsi:nil="true" />
31
+					<n1:PossibleValues>Disconnected</n1:PossibleValues>
32
+					<n1:PossibleValues>Connected</n1:PossibleValues>
33
+					<n1:PossibleValuesDescription>Disconnected
34
+					</n1:PossibleValuesDescription>
35
+					<n1:PossibleValuesDescription>Connected
36
+					</n1:PossibleValuesDescription>
37
+				</n1:DCIM_NICEnumeration>
38
+				<n1:DCIM_NICEnumeration>
39
+					<n1:AttributeDisplayName>TCP/IP Parameters via DHCP
40
+					</n1:AttributeDisplayName>
41
+					<n1:AttributeName>TcpIpViaDHCP</n1:AttributeName>
42
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
43
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv6</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
44
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
45
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
46
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
47
+					<n1:InstanceID>NIC.Integrated.1-3-1:TcpIpViaDHCP</n1:InstanceID>
48
+					<n1:IsReadOnly>false</n1:IsReadOnly>
49
+					<n1:PendingValue xsi:nil="true" />
50
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
51
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
52
+					<n1:PossibleValuesDescription>Disabled
53
+					</n1:PossibleValuesDescription>
54
+					<n1:PossibleValuesDescription>Enabled
55
+					</n1:PossibleValuesDescription>
56
+				</n1:DCIM_NICEnumeration>
57
+				<n1:DCIM_NICEnumeration>
58
+					<n1:AttributeDisplayName>IP Autoconfiguration
59
+					</n1:AttributeDisplayName>
60
+					<n1:AttributeName>IpAutoConfig</n1:AttributeName>
61
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
62
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv4</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
63
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
64
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
65
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
66
+					<n1:InstanceID>NIC.Integrated.1-3-1:IpAutoConfig</n1:InstanceID>
67
+					<n1:IsReadOnly>true</n1:IsReadOnly>
68
+					<n1:PendingValue xsi:nil="true" />
69
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
70
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
71
+					<n1:PossibleValuesDescription>Disabled
72
+					</n1:PossibleValuesDescription>
73
+					<n1:PossibleValuesDescription>Enabled
74
+					</n1:PossibleValuesDescription>
75
+				</n1:DCIM_NICEnumeration>
76
+				<n1:DCIM_NICEnumeration>
77
+					<n1:AttributeDisplayName>iSCSI Parameters via DHCP
78
+					</n1:AttributeDisplayName>
79
+					<n1:AttributeName>IscsiViaDHCP</n1:AttributeName>
80
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
81
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
82
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
83
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
84
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
85
+					<n1:InstanceID>NIC.Integrated.1-3-1:IscsiViaDHCP</n1:InstanceID>
86
+					<n1:IsReadOnly>false</n1:IsReadOnly>
87
+					<n1:PendingValue xsi:nil="true" />
88
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
89
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
90
+					<n1:PossibleValuesDescription>Disabled
91
+					</n1:PossibleValuesDescription>
92
+					<n1:PossibleValuesDescription>Enabled
93
+					</n1:PossibleValuesDescription>
94
+				</n1:DCIM_NICEnumeration>
95
+				<n1:DCIM_NICEnumeration>
96
+					<n1:AttributeDisplayName>CHAP Authentication
97
+					</n1:AttributeDisplayName>
98
+					<n1:AttributeName>ChapAuthEnable</n1:AttributeName>
99
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
100
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
101
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
102
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
103
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
104
+					<n1:InstanceID>NIC.Integrated.1-3-1:ChapAuthEnable</n1:InstanceID>
105
+					<n1:IsReadOnly>false</n1:IsReadOnly>
106
+					<n1:PendingValue xsi:nil="true" />
107
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
108
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
109
+					<n1:PossibleValuesDescription>Disabled
110
+					</n1:PossibleValuesDescription>
111
+					<n1:PossibleValuesDescription>Enabled
112
+					</n1:PossibleValuesDescription>
113
+				</n1:DCIM_NICEnumeration>
114
+				<n1:DCIM_NICEnumeration>
115
+					<n1:AttributeDisplayName>Boot to iSCSI Target
116
+					</n1:AttributeDisplayName>
117
+					<n1:AttributeName>IscsiTgtBoot</n1:AttributeName>
118
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
119
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
120
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
121
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
122
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
123
+					<n1:InstanceID>NIC.Integrated.1-3-1:IscsiTgtBoot</n1:InstanceID>
124
+					<n1:IsReadOnly>false</n1:IsReadOnly>
125
+					<n1:PendingValue xsi:nil="true" />
126
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
127
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
128
+					<n1:PossibleValues>OneTimeDisabled</n1:PossibleValues>
129
+					<n1:PossibleValuesDescription>Disabled
130
+					</n1:PossibleValuesDescription>
131
+					<n1:PossibleValuesDescription>Enabled
132
+					</n1:PossibleValuesDescription>
133
+					<n1:PossibleValuesDescription>One Time Disabled
134
+					</n1:PossibleValuesDescription>
135
+				</n1:DCIM_NICEnumeration>
136
+				<n1:DCIM_NICEnumeration>
137
+					<n1:AttributeDisplayName>Use TCP Timestamp
138
+					</n1:AttributeDisplayName>
139
+					<n1:AttributeName>TcpTimestmp</n1:AttributeName>
140
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
141
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
142
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
143
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
144
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
145
+					<n1:InstanceID>NIC.Integrated.1-3-1:TcpTimestmp</n1:InstanceID>
146
+					<n1:IsReadOnly>false</n1:IsReadOnly>
147
+					<n1:PendingValue xsi:nil="true" />
148
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
149
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
150
+					<n1:PossibleValuesDescription>Disabled
151
+					</n1:PossibleValuesDescription>
152
+					<n1:PossibleValuesDescription>Enabled
153
+					</n1:PossibleValuesDescription>
154
+				</n1:DCIM_NICEnumeration>
155
+				<n1:DCIM_NICEnumeration>
156
+					<n1:AttributeDisplayName>Target as First HDD
157
+					</n1:AttributeDisplayName>
158
+					<n1:AttributeName>FirstHddTarget</n1:AttributeName>
159
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
160
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
161
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
162
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
163
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
164
+					<n1:InstanceID>NIC.Integrated.1-3-1:FirstHddTarget</n1:InstanceID>
165
+					<n1:IsReadOnly>false</n1:IsReadOnly>
166
+					<n1:PendingValue xsi:nil="true" />
167
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
168
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
169
+					<n1:PossibleValuesDescription>Disabled
170
+					</n1:PossibleValuesDescription>
171
+					<n1:PossibleValuesDescription>Enabled
172
+					</n1:PossibleValuesDescription>
173
+				</n1:DCIM_NICEnumeration>
174
+				<n1:DCIM_NICEnumeration>
175
+					<n1:AttributeDisplayName>IP Version</n1:AttributeDisplayName>
176
+					<n1:AttributeName>IpVer</n1:AttributeName>
177
+					<n1:CurrentValue>IPv4</n1:CurrentValue>
178
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
179
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
180
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
181
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
182
+					<n1:InstanceID>NIC.Integrated.1-3-1:IpVer</n1:InstanceID>
183
+					<n1:IsReadOnly>false</n1:IsReadOnly>
184
+					<n1:PendingValue xsi:nil="true" />
185
+					<n1:PossibleValues>IPv4</n1:PossibleValues>
186
+					<n1:PossibleValues>IPv6</n1:PossibleValues>
187
+					<n1:PossibleValuesDescription>IPv4</n1:PossibleValuesDescription>
188
+					<n1:PossibleValuesDescription>IPv6</n1:PossibleValuesDescription>
189
+				</n1:DCIM_NICEnumeration>
190
+				<n1:DCIM_NICEnumeration>
191
+					<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
192
+					<n1:AttributeName>ConnectFirstTgt</n1:AttributeName>
193
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
194
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
195
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
196
+					<n1:GroupDisplayName>iSCSI First Target Parameters
197
+					</n1:GroupDisplayName>
198
+					<n1:GroupID>IscsiFirstTgtParams</n1:GroupID>
199
+					<n1:InstanceID>NIC.Integrated.1-3-1:ConnectFirstTgt</n1:InstanceID>
200
+					<n1:IsReadOnly>false</n1:IsReadOnly>
201
+					<n1:PendingValue xsi:nil="true" />
202
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
203
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
204
+					<n1:PossibleValuesDescription>Disabled
205
+					</n1:PossibleValuesDescription>
206
+					<n1:PossibleValuesDescription>Enabled
207
+					</n1:PossibleValuesDescription>
208
+				</n1:DCIM_NICEnumeration>
209
+				<n1:DCIM_NICEnumeration>
210
+					<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
211
+					<n1:AttributeName>ConnectSecondTgt</n1:AttributeName>
212
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
213
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
214
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
215
+					<n1:GroupDisplayName>iSCSI Second Target Parameters
216
+					</n1:GroupDisplayName>
217
+					<n1:GroupID>IscsiSecondTgtParams</n1:GroupID>
218
+					<n1:InstanceID>NIC.Integrated.1-3-1:ConnectSecondTgt
219
+					</n1:InstanceID>
220
+					<n1:IsReadOnly>false</n1:IsReadOnly>
221
+					<n1:PendingValue xsi:nil="true" />
222
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
223
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
224
+					<n1:PossibleValuesDescription>Disabled
225
+					</n1:PossibleValuesDescription>
226
+					<n1:PossibleValuesDescription>Enabled
227
+					</n1:PossibleValuesDescription>
228
+				</n1:DCIM_NICEnumeration>
229
+				<n1:DCIM_NICEnumeration>
230
+					<n1:AttributeDisplayName>Legacy Boot Protocol
231
+					</n1:AttributeDisplayName>
232
+					<n1:AttributeName>LegacyBootProto</n1:AttributeName>
233
+					<n1:CurrentValue>PXE</n1:CurrentValue>
234
+					<n1:Dependency xsi:nil="true" />
235
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
236
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
237
+					<n1:GroupID>NICConfig</n1:GroupID>
238
+					<n1:InstanceID>NIC.Integrated.1-3-1:LegacyBootProto</n1:InstanceID>
239
+					<n1:IsReadOnly>false</n1:IsReadOnly>
240
+					<n1:PendingValue>NONE</n1:PendingValue>
241
+					<n1:PossibleValues>PXE</n1:PossibleValues>
242
+					<n1:PossibleValues>iSCSI</n1:PossibleValues>
243
+					<n1:PossibleValues>NONE</n1:PossibleValues>
244
+					<n1:PossibleValuesDescription>PXE</n1:PossibleValuesDescription>
245
+					<n1:PossibleValuesDescription>iSCSI</n1:PossibleValuesDescription>
246
+					<n1:PossibleValuesDescription>NONE</n1:PossibleValuesDescription>
247
+				</n1:DCIM_NICEnumeration>
248
+				<n1:DCIM_NICEnumeration>
249
+					<n1:AttributeDisplayName>Boot Strap Type</n1:AttributeDisplayName>
250
+					<n1:AttributeName>BootStrapType</n1:AttributeName>
251
+					<n1:CurrentValue>AutoDetect</n1:CurrentValue>
252
+					<n1:Dependency xsi:nil="true" />
253
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
254
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
255
+					<n1:GroupID>NICConfig</n1:GroupID>
256
+					<n1:InstanceID>NIC.Integrated.1-3-1:BootStrapType</n1:InstanceID>
257
+					<n1:IsReadOnly>false</n1:IsReadOnly>
258
+					<n1:PendingValue xsi:nil="true" />
259
+					<n1:PossibleValues>AutoDetect</n1:PossibleValues>
260
+					<n1:PossibleValues>BBS</n1:PossibleValues>
261
+					<n1:PossibleValues>Int18h</n1:PossibleValues>
262
+					<n1:PossibleValues>Int19h</n1:PossibleValues>
263
+					<n1:PossibleValuesDescription>Auto Detect
264
+					</n1:PossibleValuesDescription>
265
+					<n1:PossibleValuesDescription>BBS</n1:PossibleValuesDescription>
266
+					<n1:PossibleValuesDescription>Int 18h
267
+					</n1:PossibleValuesDescription>
268
+					<n1:PossibleValuesDescription>Int 19h
269
+					</n1:PossibleValuesDescription>
270
+				</n1:DCIM_NICEnumeration>
271
+				<n1:DCIM_NICEnumeration>
272
+					<n1:AttributeDisplayName>Hide Setup Prompt
273
+					</n1:AttributeDisplayName>
274
+					<n1:AttributeName>HideSetupPrompt</n1:AttributeName>
275
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
276
+					<n1:Dependency xsi:nil="true" />
277
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
278
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
279
+					<n1:GroupID>NICConfig</n1:GroupID>
280
+					<n1:InstanceID>NIC.Integrated.1-3-1:HideSetupPrompt</n1:InstanceID>
281
+					<n1:IsReadOnly>false</n1:IsReadOnly>
282
+					<n1:PendingValue xsi:nil="true" />
283
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
284
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
285
+					<n1:PossibleValuesDescription>Disabled
286
+					</n1:PossibleValuesDescription>
287
+					<n1:PossibleValuesDescription>Enabled
288
+					</n1:PossibleValuesDescription>
289
+				</n1:DCIM_NICEnumeration>
290
+				<n1:DCIM_NICEnumeration>
291
+					<n1:AttributeDisplayName>Link Speed</n1:AttributeDisplayName>
292
+					<n1:AttributeName>LnkSpeed</n1:AttributeName>
293
+					<n1:CurrentValue>AutoNeg</n1:CurrentValue>
294
+					<n1:Dependency xsi:nil="true" />
295
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
296
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
297
+					<n1:GroupID>NICConfig</n1:GroupID>
298
+					<n1:InstanceID>NIC.Integrated.1-3-1:LnkSpeed</n1:InstanceID>
299
+					<n1:IsReadOnly>false</n1:IsReadOnly>
300
+					<n1:PendingValue xsi:nil="true" />
301
+					<n1:PossibleValues>AutoNeg</n1:PossibleValues>
302
+					<n1:PossibleValues>10MbpsHalf</n1:PossibleValues>
303
+					<n1:PossibleValues>10MbpsFull</n1:PossibleValues>
304
+					<n1:PossibleValues>100MbpsHalf</n1:PossibleValues>
305
+					<n1:PossibleValues>100MbpsFull</n1:PossibleValues>
306
+					<n1:PossibleValuesDescription>AutoNeg
307
+					</n1:PossibleValuesDescription>
308
+					<n1:PossibleValuesDescription>10Mbps Half
309
+					</n1:PossibleValuesDescription>
310
+					<n1:PossibleValuesDescription>10Mbps Full
311
+					</n1:PossibleValuesDescription>
312
+					<n1:PossibleValuesDescription>100Mbps Half
313
+					</n1:PossibleValuesDescription>
314
+					<n1:PossibleValuesDescription>100Mbps Full
315
+					</n1:PossibleValuesDescription>
316
+				</n1:DCIM_NICEnumeration>
317
+				<n1:DCIM_NICEnumeration>
318
+					<n1:AttributeDisplayName>Pre-boot Wake On LAN
319
+					</n1:AttributeDisplayName>
320
+					<n1:AttributeName>WakeOnLan</n1:AttributeName>
321
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
322
+					<n1:Dependency xsi:nil="true" />
323
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
324
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
325
+					<n1:GroupID>NICConfig</n1:GroupID>
326
+					<n1:InstanceID>NIC.Integrated.1-3-1:WakeOnLan</n1:InstanceID>
327
+					<n1:IsReadOnly>false</n1:IsReadOnly>
328
+					<n1:PendingValue xsi:nil="true" />
329
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
330
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
331
+					<n1:PossibleValuesDescription>Disabled
332
+					</n1:PossibleValuesDescription>
333
+					<n1:PossibleValuesDescription>Enabled
334
+					</n1:PossibleValuesDescription>
335
+				</n1:DCIM_NICEnumeration>
336
+				<n1:DCIM_NICEnumeration>
337
+					<n1:AttributeDisplayName>VLAN Mode</n1:AttributeDisplayName>
338
+					<n1:AttributeName>VLanMode</n1:AttributeName>
339
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
340
+					<n1:Dependency xsi:nil="true" />
341
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
342
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
343
+					<n1:GroupID>NICConfig</n1:GroupID>
344
+					<n1:InstanceID>NIC.Integrated.1-3-1:VLanMode</n1:InstanceID>
345
+					<n1:IsReadOnly>false</n1:IsReadOnly>
346
+					<n1:PendingValue xsi:nil="true" />
347
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
348
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
349
+					<n1:PossibleValuesDescription>Disabled
350
+					</n1:PossibleValuesDescription>
351
+					<n1:PossibleValuesDescription>Enabled
352
+					</n1:PossibleValuesDescription>
353
+				</n1:DCIM_NICEnumeration>
354
+				<n1:DCIM_NICEnumeration>
355
+					<n1:AttributeDisplayName>Use Independent Target Portal
356
+					</n1:AttributeDisplayName>
357
+					<n1:AttributeName>UseIndTgtPortal</n1:AttributeName>
358
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
359
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
360
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
361
+					<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
362
+					<n1:GroupID>SecondaryDevice</n1:GroupID>
363
+					<n1:InstanceID>NIC.Integrated.1-3-1:UseIndTgtPortal</n1:InstanceID>
364
+					<n1:IsReadOnly>false</n1:IsReadOnly>
365
+					<n1:PendingValue xsi:nil="true" />
366
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
367
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
368
+					<n1:PossibleValuesDescription>Disabled
369
+					</n1:PossibleValuesDescription>
370
+					<n1:PossibleValuesDescription>Enabled
371
+					</n1:PossibleValuesDescription>
372
+				</n1:DCIM_NICEnumeration>
373
+				<n1:DCIM_NICEnumeration>
374
+					<n1:AttributeDisplayName>Use Independent Target Name
375
+					</n1:AttributeDisplayName>
376
+					<n1:AttributeName>UseIndTgtName</n1:AttributeName>
377
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
378
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
379
+					<n1:FQDD>NIC.Integrated.1-3-1</n1:FQDD>
380
+					<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
381
+					<n1:GroupID>SecondaryDevice</n1:GroupID>
382
+					<n1:InstanceID>NIC.Integrated.1-3-1:UseIndTgtName</n1:InstanceID>
383
+					<n1:IsReadOnly>false</n1:IsReadOnly>
384
+					<n1:PendingValue xsi:nil="true" />
385
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
386
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
387
+					<n1:PossibleValuesDescription>Disabled
388
+					</n1:PossibleValuesDescription>
389
+					<n1:PossibleValuesDescription>Enabled
390
+					</n1:PossibleValuesDescription>
391
+				</n1:DCIM_NICEnumeration>
392
+				<n1:DCIM_NICEnumeration>
393
+					<n1:AttributeDisplayName>Link Status</n1:AttributeDisplayName>
394
+					<n1:AttributeName>LinkStatus</n1:AttributeName>
395
+					<n1:CurrentValue>Disconnected</n1:CurrentValue>
396
+					<n1:Dependency xsi:nil="true" />
397
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
398
+					<n1:GroupDisplayName>Main Configuration Page</n1:GroupDisplayName>
399
+					<n1:GroupID>VndrConfigPage</n1:GroupID>
400
+					<n1:InstanceID>NIC.Integrated.1-4-1:LinkStatus</n1:InstanceID>
401
+					<n1:IsReadOnly>true</n1:IsReadOnly>
402
+					<n1:PendingValue xsi:nil="true" />
403
+					<n1:PossibleValues>Disconnected</n1:PossibleValues>
404
+					<n1:PossibleValues>Connected</n1:PossibleValues>
405
+					<n1:PossibleValuesDescription>Disconnected
406
+					</n1:PossibleValuesDescription>
407
+					<n1:PossibleValuesDescription>Connected
408
+					</n1:PossibleValuesDescription>
409
+				</n1:DCIM_NICEnumeration>
410
+				<n1:DCIM_NICEnumeration>
411
+					<n1:AttributeDisplayName>TCP/IP Parameters via DHCP
412
+					</n1:AttributeDisplayName>
413
+					<n1:AttributeName>TcpIpViaDHCP</n1:AttributeName>
414
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
415
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv6</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
416
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
417
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
418
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
419
+					<n1:InstanceID>NIC.Integrated.1-4-1:TcpIpViaDHCP</n1:InstanceID>
420
+					<n1:IsReadOnly>false</n1:IsReadOnly>
421
+					<n1:PendingValue xsi:nil="true" />
422
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
423
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
424
+					<n1:PossibleValuesDescription>Disabled
425
+					</n1:PossibleValuesDescription>
426
+					<n1:PossibleValuesDescription>Enabled
427
+					</n1:PossibleValuesDescription>
428
+				</n1:DCIM_NICEnumeration>
429
+				<n1:DCIM_NICEnumeration>
430
+					<n1:AttributeDisplayName>IP Autoconfiguration
431
+					</n1:AttributeDisplayName>
432
+					<n1:AttributeName>IpAutoConfig</n1:AttributeName>
433
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
434
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="IpVer">IPv4</ROIf><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
435
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
436
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
437
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
438
+					<n1:InstanceID>NIC.Integrated.1-4-1:IpAutoConfig</n1:InstanceID>
439
+					<n1:IsReadOnly>true</n1:IsReadOnly>
440
+					<n1:PendingValue xsi:nil="true" />
441
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
442
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
443
+					<n1:PossibleValuesDescription>Disabled
444
+					</n1:PossibleValuesDescription>
445
+					<n1:PossibleValuesDescription>Enabled
446
+					</n1:PossibleValuesDescription>
447
+				</n1:DCIM_NICEnumeration>
448
+				<n1:DCIM_NICEnumeration>
449
+					<n1:AttributeDisplayName>iSCSI Parameters via DHCP
450
+					</n1:AttributeDisplayName>
451
+					<n1:AttributeName>IscsiViaDHCP</n1:AttributeName>
452
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
453
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
454
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
455
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
456
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
457
+					<n1:InstanceID>NIC.Integrated.1-4-1:IscsiViaDHCP</n1:InstanceID>
458
+					<n1:IsReadOnly>false</n1:IsReadOnly>
459
+					<n1:PendingValue xsi:nil="true" />
460
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
461
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
462
+					<n1:PossibleValuesDescription>Disabled
463
+					</n1:PossibleValuesDescription>
464
+					<n1:PossibleValuesDescription>Enabled
465
+					</n1:PossibleValuesDescription>
466
+				</n1:DCIM_NICEnumeration>
467
+				<n1:DCIM_NICEnumeration>
468
+					<n1:AttributeDisplayName>CHAP Authentication
469
+					</n1:AttributeDisplayName>
470
+					<n1:AttributeName>ChapAuthEnable</n1:AttributeName>
471
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
472
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
473
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
474
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
475
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
476
+					<n1:InstanceID>NIC.Integrated.1-4-1:ChapAuthEnable</n1:InstanceID>
477
+					<n1:IsReadOnly>false</n1:IsReadOnly>
478
+					<n1:PendingValue xsi:nil="true" />
479
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
480
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
481
+					<n1:PossibleValuesDescription>Disabled
482
+					</n1:PossibleValuesDescription>
483
+					<n1:PossibleValuesDescription>Enabled
484
+					</n1:PossibleValuesDescription>
485
+				</n1:DCIM_NICEnumeration>
486
+				<n1:DCIM_NICEnumeration>
487
+					<n1:AttributeDisplayName>Boot to iSCSI Target
488
+					</n1:AttributeDisplayName>
489
+					<n1:AttributeName>IscsiTgtBoot</n1:AttributeName>
490
+					<n1:CurrentValue>Enabled</n1:CurrentValue>
491
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
492
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
493
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
494
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
495
+					<n1:InstanceID>NIC.Integrated.1-4-1:IscsiTgtBoot</n1:InstanceID>
496
+					<n1:IsReadOnly>false</n1:IsReadOnly>
497
+					<n1:PendingValue xsi:nil="true" />
498
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
499
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
500
+					<n1:PossibleValues>OneTimeDisabled</n1:PossibleValues>
501
+					<n1:PossibleValuesDescription>Disabled
502
+					</n1:PossibleValuesDescription>
503
+					<n1:PossibleValuesDescription>Enabled
504
+					</n1:PossibleValuesDescription>
505
+					<n1:PossibleValuesDescription>One Time Disabled
506
+					</n1:PossibleValuesDescription>
507
+				</n1:DCIM_NICEnumeration>
508
+				<n1:DCIM_NICEnumeration>
509
+					<n1:AttributeDisplayName>Use TCP Timestamp
510
+					</n1:AttributeDisplayName>
511
+					<n1:AttributeName>TcpTimestmp</n1:AttributeName>
512
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
513
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
514
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
515
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
516
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
517
+					<n1:InstanceID>NIC.Integrated.1-4-1:TcpTimestmp</n1:InstanceID>
518
+					<n1:IsReadOnly>false</n1:IsReadOnly>
519
+					<n1:PendingValue xsi:nil="true" />
520
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
521
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
522
+					<n1:PossibleValuesDescription>Disabled
523
+					</n1:PossibleValuesDescription>
524
+					<n1:PossibleValuesDescription>Enabled
525
+					</n1:PossibleValuesDescription>
526
+				</n1:DCIM_NICEnumeration>
527
+				<n1:DCIM_NICEnumeration>
528
+					<n1:AttributeDisplayName>Target as First HDD
529
+					</n1:AttributeDisplayName>
530
+					<n1:AttributeName>FirstHddTarget</n1:AttributeName>
531
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
532
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
533
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
534
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
535
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
536
+					<n1:InstanceID>NIC.Integrated.1-4-1:FirstHddTarget</n1:InstanceID>
537
+					<n1:IsReadOnly>false</n1:IsReadOnly>
538
+					<n1:PendingValue xsi:nil="true" />
539
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
540
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
541
+					<n1:PossibleValuesDescription>Disabled
542
+					</n1:PossibleValuesDescription>
543
+					<n1:PossibleValuesDescription>Enabled
544
+					</n1:PossibleValuesDescription>
545
+				</n1:DCIM_NICEnumeration>
546
+				<n1:DCIM_NICEnumeration>
547
+					<n1:AttributeDisplayName>IP Version</n1:AttributeDisplayName>
548
+					<n1:AttributeName>IpVer</n1:AttributeName>
549
+					<n1:CurrentValue>IPv4</n1:CurrentValue>
550
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
551
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
552
+					<n1:GroupDisplayName>iSCSI General Parameters</n1:GroupDisplayName>
553
+					<n1:GroupID>IscsiGenParams</n1:GroupID>
554
+					<n1:InstanceID>NIC.Integrated.1-4-1:IpVer</n1:InstanceID>
555
+					<n1:IsReadOnly>false</n1:IsReadOnly>
556
+					<n1:PendingValue xsi:nil="true" />
557
+					<n1:PossibleValues>IPv4</n1:PossibleValues>
558
+					<n1:PossibleValues>IPv6</n1:PossibleValues>
559
+					<n1:PossibleValuesDescription>IPv4</n1:PossibleValuesDescription>
560
+					<n1:PossibleValuesDescription>IPv6</n1:PossibleValuesDescription>
561
+				</n1:DCIM_NICEnumeration>
562
+				<n1:DCIM_NICEnumeration>
563
+					<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
564
+					<n1:AttributeName>ConnectFirstTgt</n1:AttributeName>
565
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
566
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
567
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
568
+					<n1:GroupDisplayName>iSCSI First Target Parameters
569
+					</n1:GroupDisplayName>
570
+					<n1:GroupID>IscsiFirstTgtParams</n1:GroupID>
571
+					<n1:InstanceID>NIC.Integrated.1-4-1:ConnectFirstTgt</n1:InstanceID>
572
+					<n1:IsReadOnly>false</n1:IsReadOnly>
573
+					<n1:PendingValue xsi:nil="true" />
574
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
575
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
576
+					<n1:PossibleValuesDescription>Disabled
577
+					</n1:PossibleValuesDescription>
578
+					<n1:PossibleValuesDescription>Enabled
579
+					</n1:PossibleValuesDescription>
580
+				</n1:DCIM_NICEnumeration>
581
+				<n1:DCIM_NICEnumeration>
582
+					<n1:AttributeDisplayName>Connect</n1:AttributeDisplayName>
583
+					<n1:AttributeName>ConnectSecondTgt</n1:AttributeName>
584
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
585
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
586
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
587
+					<n1:GroupDisplayName>iSCSI Second Target Parameters
588
+					</n1:GroupDisplayName>
589
+					<n1:GroupID>IscsiSecondTgtParams</n1:GroupID>
590
+					<n1:InstanceID>NIC.Integrated.1-4-1:ConnectSecondTgt
591
+					</n1:InstanceID>
592
+					<n1:IsReadOnly>false</n1:IsReadOnly>
593
+					<n1:PendingValue xsi:nil="true" />
594
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
595
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
596
+					<n1:PossibleValuesDescription>Disabled
597
+					</n1:PossibleValuesDescription>
598
+					<n1:PossibleValuesDescription>Enabled
599
+					</n1:PossibleValuesDescription>
600
+				</n1:DCIM_NICEnumeration>
601
+				<n1:DCIM_NICEnumeration>
602
+					<n1:AttributeDisplayName>Legacy Boot Protocol
603
+					</n1:AttributeDisplayName>
604
+					<n1:AttributeName>LegacyBootProto</n1:AttributeName>
605
+					<n1:CurrentValue>NONE</n1:CurrentValue>
606
+					<n1:Dependency xsi:nil="true" />
607
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
608
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
609
+					<n1:GroupID>NICConfig</n1:GroupID>
610
+					<n1:InstanceID>NIC.Integrated.1-4-1:LegacyBootProto</n1:InstanceID>
611
+					<n1:IsReadOnly>false</n1:IsReadOnly>
612
+					<n1:PendingValue xsi:nil="true" />
613
+					<n1:PossibleValues>PXE</n1:PossibleValues>
614
+					<n1:PossibleValues>iSCSI</n1:PossibleValues>
615
+					<n1:PossibleValues>NONE</n1:PossibleValues>
616
+					<n1:PossibleValuesDescription>PXE</n1:PossibleValuesDescription>
617
+					<n1:PossibleValuesDescription>iSCSI</n1:PossibleValuesDescription>
618
+					<n1:PossibleValuesDescription>NONE</n1:PossibleValuesDescription>
619
+				</n1:DCIM_NICEnumeration>
620
+				<n1:DCIM_NICEnumeration>
621
+					<n1:AttributeDisplayName>Boot Strap Type</n1:AttributeDisplayName>
622
+					<n1:AttributeName>BootStrapType</n1:AttributeName>
623
+					<n1:CurrentValue>AutoDetect</n1:CurrentValue>
624
+					<n1:Dependency xsi:nil="true" />
625
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
626
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
627
+					<n1:GroupID>NICConfig</n1:GroupID>
628
+					<n1:InstanceID>NIC.Integrated.1-4-1:BootStrapType</n1:InstanceID>
629
+					<n1:IsReadOnly>false</n1:IsReadOnly>
630
+					<n1:PendingValue xsi:nil="true" />
631
+					<n1:PossibleValues>AutoDetect</n1:PossibleValues>
632
+					<n1:PossibleValues>BBS</n1:PossibleValues>
633
+					<n1:PossibleValues>Int18h</n1:PossibleValues>
634
+					<n1:PossibleValues>Int19h</n1:PossibleValues>
635
+					<n1:PossibleValuesDescription>Auto Detect
636
+					</n1:PossibleValuesDescription>
637
+					<n1:PossibleValuesDescription>BBS</n1:PossibleValuesDescription>
638
+					<n1:PossibleValuesDescription>Int 18h
639
+					</n1:PossibleValuesDescription>
640
+					<n1:PossibleValuesDescription>Int 19h
641
+					</n1:PossibleValuesDescription>
642
+				</n1:DCIM_NICEnumeration>
643
+				<n1:DCIM_NICEnumeration>
644
+					<n1:AttributeDisplayName>Hide Setup Prompt
645
+					</n1:AttributeDisplayName>
646
+					<n1:AttributeName>HideSetupPrompt</n1:AttributeName>
647
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
648
+					<n1:Dependency xsi:nil="true" />
649
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
650
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
651
+					<n1:GroupID>NICConfig</n1:GroupID>
652
+					<n1:InstanceID>NIC.Integrated.1-4-1:HideSetupPrompt</n1:InstanceID>
653
+					<n1:IsReadOnly>false</n1:IsReadOnly>
654
+					<n1:PendingValue xsi:nil="true" />
655
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
656
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
657
+					<n1:PossibleValuesDescription>Disabled
658
+					</n1:PossibleValuesDescription>
659
+					<n1:PossibleValuesDescription>Enabled
660
+					</n1:PossibleValuesDescription>
661
+				</n1:DCIM_NICEnumeration>
662
+				<n1:DCIM_NICEnumeration>
663
+					<n1:AttributeDisplayName>Link Speed</n1:AttributeDisplayName>
664
+					<n1:AttributeName>LnkSpeed</n1:AttributeName>
665
+					<n1:CurrentValue>AutoNeg</n1:CurrentValue>
666
+					<n1:Dependency xsi:nil="true" />
667
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
668
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
669
+					<n1:GroupID>NICConfig</n1:GroupID>
670
+					<n1:InstanceID>NIC.Integrated.1-4-1:LnkSpeed</n1:InstanceID>
671
+					<n1:IsReadOnly>false</n1:IsReadOnly>
672
+					<n1:PendingValue xsi:nil="true" />
673
+					<n1:PossibleValues>AutoNeg</n1:PossibleValues>
674
+					<n1:PossibleValues>10MbpsHalf</n1:PossibleValues>
675
+					<n1:PossibleValues>10MbpsFull</n1:PossibleValues>
676
+					<n1:PossibleValues>100MbpsHalf</n1:PossibleValues>
677
+					<n1:PossibleValues>100MbpsFull</n1:PossibleValues>
678
+					<n1:PossibleValuesDescription>AutoNeg
679
+					</n1:PossibleValuesDescription>
680
+					<n1:PossibleValuesDescription>10Mbps Half
681
+					</n1:PossibleValuesDescription>
682
+					<n1:PossibleValuesDescription>10Mbps Full
683
+					</n1:PossibleValuesDescription>
684
+					<n1:PossibleValuesDescription>100Mbps Half
685
+					</n1:PossibleValuesDescription>
686
+					<n1:PossibleValuesDescription>100Mbps Full
687
+					</n1:PossibleValuesDescription>
688
+				</n1:DCIM_NICEnumeration>
689
+				<n1:DCIM_NICEnumeration>
690
+					<n1:AttributeDisplayName>Pre-boot Wake On LAN
691
+					</n1:AttributeDisplayName>
692
+					<n1:AttributeName>WakeOnLan</n1:AttributeName>
693
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
694
+					<n1:Dependency xsi:nil="true" />
695
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
696
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
697
+					<n1:GroupID>NICConfig</n1:GroupID>
698
+					<n1:InstanceID>NIC.Integrated.1-4-1:WakeOnLan</n1:InstanceID>
699
+					<n1:IsReadOnly>false</n1:IsReadOnly>
700
+					<n1:PendingValue xsi:nil="true" />
701
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
702
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
703
+					<n1:PossibleValuesDescription>Disabled
704
+					</n1:PossibleValuesDescription>
705
+					<n1:PossibleValuesDescription>Enabled
706
+					</n1:PossibleValuesDescription>
707
+				</n1:DCIM_NICEnumeration>
708
+				<n1:DCIM_NICEnumeration>
709
+					<n1:AttributeDisplayName>VLAN Mode</n1:AttributeDisplayName>
710
+					<n1:AttributeName>VLanMode</n1:AttributeName>
711
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
712
+					<n1:Dependency xsi:nil="true" />
713
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
714
+					<n1:GroupDisplayName>MBA Configuration Menu</n1:GroupDisplayName>
715
+					<n1:GroupID>NICConfig</n1:GroupID>
716
+					<n1:InstanceID>NIC.Integrated.1-4-1:VLanMode</n1:InstanceID>
717
+					<n1:IsReadOnly>false</n1:IsReadOnly>
718
+					<n1:PendingValue xsi:nil="true" />
719
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
720
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
721
+					<n1:PossibleValuesDescription>Disabled
722
+					</n1:PossibleValuesDescription>
723
+					<n1:PossibleValuesDescription>Enabled
724
+					</n1:PossibleValuesDescription>
725
+				</n1:DCIM_NICEnumeration>
726
+				<n1:DCIM_NICEnumeration>
727
+					<n1:AttributeDisplayName>Use Independent Target Portal
728
+					</n1:AttributeDisplayName>
729
+					<n1:AttributeName>UseIndTgtPortal</n1:AttributeName>
730
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
731
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
732
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
733
+					<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
734
+					<n1:GroupID>SecondaryDevice</n1:GroupID>
735
+					<n1:InstanceID>NIC.Integrated.1-4-1:UseIndTgtPortal</n1:InstanceID>
736
+					<n1:IsReadOnly>false</n1:IsReadOnly>
737
+					<n1:PendingValue xsi:nil="true" />
738
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
739
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
740
+					<n1:PossibleValuesDescription>Disabled
741
+					</n1:PossibleValuesDescription>
742
+					<n1:PossibleValuesDescription>Enabled
743
+					</n1:PossibleValuesDescription>
744
+				</n1:DCIM_NICEnumeration>
745
+				<n1:DCIM_NICEnumeration>
746
+					<n1:AttributeDisplayName>Use Independent Target Name
747
+					</n1:AttributeDisplayName>
748
+					<n1:AttributeName>UseIndTgtName</n1:AttributeName>
749
+					<n1:CurrentValue>Disabled</n1:CurrentValue>
750
+					<n1:Dependency><![CDATA[<Dep><AttrLev Op="OR"><ROIf Name="iSCSIBootSupport">Unavailable</ROIf></AttrLev></Dep>]]></n1:Dependency>
751
+					<n1:FQDD>NIC.Integrated.1-4-1</n1:FQDD>
752
+					<n1:GroupDisplayName>Secondary Device</n1:GroupDisplayName>
753
+					<n1:GroupID>SecondaryDevice</n1:GroupID>
754
+					<n1:InstanceID>NIC.Integrated.1-4-1:UseIndTgtName</n1:InstanceID>
755
+					<n1:IsReadOnly>false</n1:IsReadOnly>
756
+					<n1:PendingValue xsi:nil="true" />
757
+					<n1:PossibleValues>Disabled</n1:PossibleValues>
758
+					<n1:PossibleValues>Enabled</n1:PossibleValues>
759
+					<n1:PossibleValuesDescription>Disabled
760
+					</n1:PossibleValuesDescription>
761
+					<n1:PossibleValuesDescription>Enabled
762
+					</n1:PossibleValuesDescription>
763
+				</n1:DCIM_NICEnumeration>
764
+			</wsman:Items>
765
+		</wsen:EnumerateResponse>
766
+	</s:Body>
767
+</s:Envelope>

+ 1
- 0
ironic/tests/unit/drivers/third_party_driver_mock_specs.py View File

@@ -25,6 +25,7 @@ DRACCLIENT_SPEC = (
25 25
 
26 26
 DRACCLIENT_CLIENT_MOD_SPEC = (
27 27
     'DRACClient',
28
+    'WSManClient',
28 29
 )
29 30
 
30 31
 DRACCLIENT_CONSTANTS_MOD_SPEC = (

Loading…
Cancel
Save