diff --git a/rsd_lib/resources/v2_3/fabric/endpoint.py b/rsd_lib/resources/v2_3/fabric/endpoint.py index 599f246..f9e1780 100644 --- a/rsd_lib/resources/v2_3/fabric/endpoint.py +++ b/rsd_lib/resources/v2_3/fabric/endpoint.py @@ -136,6 +136,10 @@ class Endpoint(base.ResourceBase): self._conn.patch(self.path, data=data) + def delete(self): + """Delete this endpoint""" + self._conn.delete(self.path) + class EndpointCollection(base.ResourceCollectionBase): diff --git a/rsd_lib/resources/v2_3/fabric/endpoint_schemas.py b/rsd_lib/resources/v2_3/fabric/endpoint_schemas.py index fa52de4..db3d2fa 100644 --- a/rsd_lib/resources/v2_3/fabric/endpoint_schemas.py +++ b/rsd_lib/resources/v2_3/fabric/endpoint_schemas.py @@ -23,8 +23,7 @@ identifiers_req_schema = { }, 'DurableName': {'type': 'string'} }, - "required": ['DurableNameFormat', 'DurableName'], - 'additionalProperties': False + "required": ['DurableNameFormat', 'DurableName'] } } @@ -38,8 +37,7 @@ connected_entities_req_schema = { 'properties': { '@odata.id': {'type': 'string'} }, - "required": ['@odata.id'], - 'additionalProperties': False + "required": ['@odata.id'] }, 'EntityRole': { 'type': 'string', @@ -57,19 +55,16 @@ connected_entities_req_schema = { }, 'DurableName': {'type': 'string'} }, - "required": ['DurableNameFormat', 'DurableName'], - 'additionalProperties': False + "required": ['DurableNameFormat', 'DurableName'] } } }, - "required": ['EntityLink', 'EntityRole'], - 'additionalProperties': False + "required": ['EntityLink', 'EntityRole'] } } protocol_req_schema = { - 'type': 'string', - 'enum': ['NVMeOverFabrics', 'iSCSI'] + 'type': 'string' } ip_transport_details_req_schema = { @@ -82,19 +77,16 @@ ip_transport_details_req_schema = { 'type': 'object', 'properties': { 'Address': {'type': 'string'} - }, - 'additionalProperties': False + } }, 'IPv6Address': { 'type': 'object', 'properties': { 'Address': {'type': 'string'} - }, - 'additionalProperties': False + } }, 'Port': {'type': 'number'} - }, - 'additionalProperties': False + } } } @@ -107,6 +99,5 @@ authentication_req_schema = { 'properties': { 'Username': {'type': 'string'}, 'Password': {'type': 'string'} - }, - 'additionalProperties': False + } } diff --git a/rsd_lib/tests/unit/resources/v2_1/event_service/test_event_subscription.py b/rsd_lib/tests/unit/resources/v2_1/event_service/test_event_subscription.py index a43d9f6..55b3be3 100644 --- a/rsd_lib/tests/unit/resources/v2_1/event_service/test_event_subscription.py +++ b/rsd_lib/tests/unit/resources/v2_1/event_service/test_event_subscription.py @@ -51,7 +51,8 @@ class EventSubscriptionTestCase(testtools.TestCase): def test_delete(self): self.event_subscription_inst.delete() - self.event_subscription_inst._conn.delete.assert_called_once() + self.event_subscription_inst._conn.delete.assert_called_once_with( + self.event_subscription_inst.path) class EventSubscriptionCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_1/node/test_node.py b/rsd_lib/tests/unit/resources/v2_1/node/test_node.py index 49e39a0..a487231 100644 --- a/rsd_lib/tests/unit/resources/v2_1/node/test_node.py +++ b/rsd_lib/tests/unit/resources/v2_1/node/test_node.py @@ -426,7 +426,8 @@ class NodeTestCase(testtools.TestCase): def test_delete_node(self): self.node_inst.delete_node() - self.node_inst._conn.delete.assert_called_once() + self.node_inst._conn.delete.assert_called_once_with( + self.node_inst.path) class NodeCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_1/task/test_task.py b/rsd_lib/tests/unit/resources/v2_1/task/test_task.py index 2237330..ae9d601 100644 --- a/rsd_lib/tests/unit/resources/v2_1/task/test_task.py +++ b/rsd_lib/tests/unit/resources/v2_1/task/test_task.py @@ -53,7 +53,8 @@ class TaskTestCase(testtools.TestCase): def test_delete(self): self.task_inst.delete() - self.task_inst._conn.delete.assert_called_once() + self.task_inst._conn.delete.assert_called_once_with( + self.task_inst.path) class TaskCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_2/telemetry/test_metric_report_definition.py b/rsd_lib/tests/unit/resources/v2_2/telemetry/test_metric_report_definition.py index 9472750..f676822 100644 --- a/rsd_lib/tests/unit/resources/v2_2/telemetry/test_metric_report_definition.py +++ b/rsd_lib/tests/unit/resources/v2_2/telemetry/test_metric_report_definition.py @@ -202,7 +202,8 @@ class ReportDefinitionTestCase(testtools.TestCase): def test_delete(self): self.metric_report_definition_inst.delete() - self.metric_report_definition_inst._conn.delete.assert_called_once() + self.metric_report_definition_inst._conn.delete.\ + assert_called_once_with(self.metric_report_definition_inst.path) class ReportDefinitionCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_2/telemetry/test_trigger.py b/rsd_lib/tests/unit/resources/v2_2/telemetry/test_trigger.py index be39f58..ec67b4f 100644 --- a/rsd_lib/tests/unit/resources/v2_2/telemetry/test_trigger.py +++ b/rsd_lib/tests/unit/resources/v2_2/telemetry/test_trigger.py @@ -129,7 +129,8 @@ class TriggerTestCase(testtools.TestCase): def test_delete(self): self.trigger_inst.delete() - self.trigger_inst._conn.delete.assert_called_once() + self.trigger_inst._conn.delete.assert_called_once_with( + self.trigger_inst.path) class TriggerCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_3/fabric/test_endpoint.py b/rsd_lib/tests/unit/resources/v2_3/fabric/test_endpoint.py index b585646..618d126 100644 --- a/rsd_lib/tests/unit/resources/v2_3/fabric/test_endpoint.py +++ b/rsd_lib/tests/unit/resources/v2_3/fabric/test_endpoint.py @@ -169,6 +169,11 @@ class EndpointTestCase(testtools.TestCase): 'At least "username" or "password" parameter has to be specified'): self.endpoint_inst.update_authentication() + def test_delete(self): + self.endpoint_inst.delete() + self.endpoint_inst._conn.delete.assert_called_once_with( + self.endpoint_inst.path) + class EndpointCollectionTestCase(testtools.TestCase): @@ -389,13 +394,6 @@ class EndpointCollectionTestCase(testtools.TestCase): identifiers=invalid_identifiers, connected_entities=connected_entities) - invalid_identifiers = copy.deepcopy(identifiers) - invalid_identifiers[0]['invalid_key'] = 'invalid_value' - self.assertRaises(jsonschema.exceptions.ValidationError, - self.endpoint_col.create_endpoint, - identifiers=invalid_identifiers, - connected_entities=connected_entities) - # Test invalid connected_entities argument invalid_connected_entities = copy.deepcopy(connected_entities) invalid_connected_entities[0]['EntityRole'] = 'fake-format' @@ -425,20 +423,7 @@ class EndpointCollectionTestCase(testtools.TestCase): identifiers=identifiers, connected_entities=invalid_connected_entities) - invalid_connected_entities = copy.deepcopy(connected_entities) - invalid_connected_entities[0]['invalid_key'] = 'invalid_value' - self.assertRaises(jsonschema.exceptions.ValidationError, - self.endpoint_col.create_endpoint, - identifiers=identifiers, - connected_entities=invalid_connected_entities) - # Test invalid protocol argument - self.assertRaises(jsonschema.exceptions.ValidationError, - self.endpoint_col.create_endpoint, - identifiers=identifiers, - connected_entities=connected_entities, - protocol='invalid_potocol') - self.assertRaises(jsonschema.exceptions.ValidationError, self.endpoint_col.create_endpoint, identifiers=identifiers, @@ -457,4 +442,4 @@ class EndpointCollectionTestCase(testtools.TestCase): self.endpoint_col.create_endpoint, identifiers=identifiers, connected_entities=connected_entities, - authentication={'invalid_key': 'invalid_value'}) + authentication={'Username': 1}) diff --git a/rsd_lib/tests/unit/resources/v2_3/fabric/test_zone.py b/rsd_lib/tests/unit/resources/v2_3/fabric/test_zone.py index 818e9b8..6a78682 100644 --- a/rsd_lib/tests/unit/resources/v2_3/fabric/test_zone.py +++ b/rsd_lib/tests/unit/resources/v2_3/fabric/test_zone.py @@ -114,7 +114,8 @@ class ZoneTestCase(testtools.TestCase): def test_delete(self): self.zone_inst.delete() - self.zone_inst._conn.delete.assert_called_once() + self.zone_inst._conn.delete.assert_called_once_with( + self.zone_inst.path) class ZoneCollectionTestCase(testtools.TestCase): diff --git a/rsd_lib/tests/unit/resources/v2_3/storage_service/test_volume.py b/rsd_lib/tests/unit/resources/v2_3/storage_service/test_volume.py index 74e4b8c..faa2990 100644 --- a/rsd_lib/tests/unit/resources/v2_3/storage_service/test_volume.py +++ b/rsd_lib/tests/unit/resources/v2_3/storage_service/test_volume.py @@ -157,7 +157,8 @@ class StorageServiceTestCase(testtools.TestCase): def test_delete(self): self.volume_inst.delete() - self.volume_inst._conn.delete.assert_called_once() + self.volume_inst._conn.delete.assert_called_once_with( + self.volume_inst.path) def test_get_metrics_path(self): expected = '/redfish/v1/StorageServices/NVMeoE1/Volumes/1/Metrics'