From 14f3b146397b94c5012b528383d7e96790ec4ae8 Mon Sep 17 00:00:00 2001 From: "mend-for-github-com[bot]" <50673670+mend-for-github-com[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:38:40 +0530 Subject: [PATCH 1/5] Configure Mend for GitHub.com (#543) * Add .whitesource configuration file * Configure Mend for GitHub.com --------- Co-authored-by: mend-for-github-com[bot] <50673670+mend-for-github-com[bot]@users.noreply.github.com> Co-authored-by: Shibasish Nandi <119420781+ShibasishDelphix@users.noreply.github.com> --- .whitesource | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .whitesource diff --git a/.whitesource b/.whitesource new file mode 100644 index 000000000..e82e82f3d --- /dev/null +++ b/.whitesource @@ -0,0 +1,48 @@ +{ + "scanSettings": { + "configMode": "AUTO", + "configExternalURL": "", + "projectToken": "", + "enableLicenseViolations": "true", + "displayLicenseViolations": "true", + "enableIaC": "true", + "baseBranches": [] + }, + "scanSettingsSAST": { + "enableScan": true, + "scanPullRequests": true, + "incrementalScan": true, + "baseBranches": [], + "snippetSize": 10 + }, + "checkRunSettings": { + "vulnerableCheckRunConclusionLevel": "failure", + "displayMode": "diff", + "useMendCheckNames": true + }, + "checkRunSettingsSAST": { + "checkRunConclusionLevel": "failure", + "severityThreshold": "high" + }, + "issueSettings": { + "minSeverityLevel": "LOW", + "issueType": "DEPENDENCY" + }, + "issueSettingsSAST": { + "minSeverityLevel": "high", + "issueType": "repo" + }, + "remediateSettings": { + "workflowRules": { + "enabled": true + } + }, + "imageSettings":{ + "imageTracing":{ + "enableImageTracingPR": false, + "addRepositoryCoordinate": false, + "addDockerfilePath": false, + "addMendIdentifier": false + } + } +} \ No newline at end of file From a4a966edb91da45621e6539c3dad4213ecd7e89a Mon Sep 17 00:00:00 2001 From: Rakshanda Bhat <111853524+rakshandabhat@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:41:12 +0530 Subject: [PATCH 2/5] CP-12279 Documentation for ZFS record size change (#554) --- docs/docs/References/Glossary.md | 3 ++ .../Schemas_and_Autogenerated_Classes.md | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/docs/docs/References/Glossary.md b/docs/docs/References/Glossary.md index cf10b678d..7aba60426 100644 --- a/docs/docs/References/Glossary.md +++ b/docs/docs/References/Glossary.md @@ -78,6 +78,9 @@ For example, a MySQL plugin might provide an operation called "stop" which knows ## Provisioning The process of making a virtual copy of a dataset and making it available for use on a target environment. +## Record Size +Delphix allows plugins to override the default record size for the linked source and virtual source datafiles. If the “recordSizeInKB” parameter is passed, it will be used to override the default record size and set the new record size for the respective dSources and empty VDBs. VDBs with parent will be inheriting the record size from their parent dSource or VDB. If the parameter is not passed, then default 8K record size will be set for the datafiles. + ## Replication Delphix allows end users to replicate data objects between Delphix Engines by creating a replication profile. Data objects that belong to a plugin can also be part of the replication profile. Refer to the [Delphix Engine Documentation](https://cd.delphix.com/docs/latest/) for more details. diff --git a/docs/docs/References/Schemas_and_Autogenerated_Classes.md b/docs/docs/References/Schemas_and_Autogenerated_Classes.md index 2c9938354..d396d6e64 100644 --- a/docs/docs/References/Schemas_and_Autogenerated_Classes.md +++ b/docs/docs/References/Schemas_and_Autogenerated_Classes.md @@ -122,6 +122,20 @@ Defines properties used to identify [linked sources](Glossary.md#linked-source). } ``` +To set [record size](Glossary.md#record-size) for the datafiles of the linked source, pass the property "recordSizeInKB" in the [LinkedSourceDefinition Schema](#linkedsourcedefinition-schema). The value of the recordSizeInKB property must be an integer and power of 2 ranging from 1 to 16384. It will set the value of record size in KB. If this parameter is not passed, then default 8K record size will be set. +```json +{ + "type": "object", + "required": ["name", "port"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "port": { "type": "integer" }, + "recordSizeInKB": {"type": "integer"} + } +} +``` + ### LinkedSourceDefinition Class Autogenerated based on the [LinkedSourceDefinition Schema](#linkedsourcedefinition-schema). @@ -164,6 +178,20 @@ Defines properties used to identify [virtual sources](Glossary.md#virtual-source } ``` +To set [record size](Glossary.md#record-size) for the datafiles of the empty VDB, pass the property "recordSizeInKB" in the [VirtualSourceDefinition Schema](#virtualsourcedefinition-schema). The value of the recordSizeInKB property must be an integer and power of 2 ranging from 1 to 16384. It will set the value of record size in KB. If this parameter is not passed, then default 8K record size will be set. VDB with parent source will inherit the record size value from its parent dSource or VDB. +```json +{ + "type": "object", + "required": ["name", "port"], + "additionalProperties": false, + "properties": { + "name": { "type": "string" }, + "port": { "type": "integer" }, + "recordSizeInKB": {"type": "integer"} + } +} +``` + ### VirtualSourceDefinition Class Autogenerated based on the [VirtualSourceDefinition Schema](#virtualsourcedefinition-schema). From ac6d66266f6d6205051ebd7fa6d55c3ada79b098 Mon Sep 17 00:00:00 2001 From: Rakshanda Bhat <111853524+rakshandabhat@users.noreply.github.com> Date: Wed, 2 Apr 2025 13:15:18 +0530 Subject: [PATCH 3/5] CP-12230 DVP Record size validation changes for setting ZFS record size (#556) * CP-12230 DVP Record size validation changes for setting ZFS record size --- .../validation_schemas/plugin_schema.json | 27 +++++++++- .../_internal/test_schema_validator.py | 53 +++++++++++++++++++ 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_schema.json b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_schema.json index edbfeab69..59c390576 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_schema.json +++ b/tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_schema.json @@ -166,6 +166,15 @@ "required": ["nameField", "identityFields"], "nameField": { "type": "string" }, "identityFields": { "type": "array", "minItems": 1, "items": { "type": "string" } } + }, + "recordSizeObject": { + "type": "object", + "properties": { + "properties": { + "properties": { + "recordSizeInKB" : {"properties": {"type": {"enum" : ["integer"]}}}} + } + } } }, "type": "object", @@ -200,10 +209,24 @@ ] }, "virtualSourceDefinition": { - "$ref": "#/definitions/jsonSchema" + "allOf": [ + { + "$ref": "#/definitions/jsonSchema" + }, + { + "$ref": "#/definitions/recordSizeObject" + } + ] }, "linkedSourceDefinition": { - "$ref": "#/definitions/jsonSchema" + "allOf": [ + { + "$ref": "#/definitions/jsonSchema" + }, + { + "$ref": "#/definitions/recordSizeObject" + } + ] }, "snapshotDefinition": { "$ref": "#/definitions/jsonSchema" diff --git a/tools/src/test/python/dlpx/virtualization/_internal/test_schema_validator.py b/tools/src/test/python/dlpx/virtualization/_internal/test_schema_validator.py index 5f735a79c..3dbed667d 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/test_schema_validator.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/test_schema_validator.py @@ -356,3 +356,56 @@ def test_bad_type_in_array(schema_file): message = err_info.value.message assert ("'strings' is not valid under any of the given schemas" in message) + + @staticmethod + @pytest.mark.parametrize('linked_source_definition', + [{ + 'type': 'object', + 'additionalProperties': False, + 'properties': { + 'recordSizeInKB': { + 'type': 'string' + } + } + }]) + def test_bad_recordSizeInKB_type_string(schema_file): + with pytest.raises(exceptions.SchemaValidationError) as err_info: + validator = SchemaValidator(schema_file, const.PLUGIN_SCHEMA) + validator.validate() + + message = err_info.value.message + assert "'string' is not one of ['integer']" in message + + @staticmethod + @pytest.mark.parametrize('virtual_source_definition', + [{ + 'type': 'object', + 'additionalProperties': False, + 'properties': { + 'recordSizeInKB': { + 'type': 'array' + } + } + }]) + def test_bad_recordSizeInKB_type_array_virtual(schema_file): + with pytest.raises(exceptions.SchemaValidationError) as err_info: + validator = SchemaValidator(schema_file, const.PLUGIN_SCHEMA) + validator.validate() + + message = err_info.value.message + assert "'array' is not one of ['integer']" in message + + @staticmethod + @pytest.mark.parametrize('virtual_source_definition', + [{ + 'type': 'object', + 'additionalProperties': False, + 'properties': { + 'recordSizeInKB': { + 'type': 'integer' + } + } + }]) + def test_recordSizeInKB_type_virtual(schema_file): + validator = SchemaValidator(schema_file, const.PLUGIN_SCHEMA) + validator.validate() From 5aa4fa2f6e5ae2829e49ef3d9304a06acb317cfa Mon Sep 17 00:00:00 2001 From: Rakshanda Bhat <111853524+rakshandabhat@users.noreply.github.com> Date: Fri, 4 Apr 2025 16:30:20 +0530 Subject: [PATCH 4/5] CP-12367 Record size validation - Bump DVP version (#558) --- .bumpversion.cfg | 2 +- common/src/main/python/dlpx/virtualization/common/VERSION | 2 +- dvp/src/main/python/dlpx/virtualization/VERSION | 2 +- libs/src/main/python/dlpx/virtualization/libs/VERSION | 2 +- platform/src/main/python/dlpx/virtualization/platform/VERSION | 2 +- tools/src/main/python/dlpx/virtualization/_internal/VERSION | 2 +- .../python/dlpx/virtualization/_internal/test_package_util.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 72126112c..2f9a3bc7a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 5.0.0 +current_version = 5.0.1 commit = False tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.(?P[a-z]+)(?P\d+))? diff --git a/common/src/main/python/dlpx/virtualization/common/VERSION b/common/src/main/python/dlpx/virtualization/common/VERSION index 0062ac971..6b244dcd6 100644 --- a/common/src/main/python/dlpx/virtualization/common/VERSION +++ b/common/src/main/python/dlpx/virtualization/common/VERSION @@ -1 +1 @@ -5.0.0 +5.0.1 diff --git a/dvp/src/main/python/dlpx/virtualization/VERSION b/dvp/src/main/python/dlpx/virtualization/VERSION index 0062ac971..6b244dcd6 100644 --- a/dvp/src/main/python/dlpx/virtualization/VERSION +++ b/dvp/src/main/python/dlpx/virtualization/VERSION @@ -1 +1 @@ -5.0.0 +5.0.1 diff --git a/libs/src/main/python/dlpx/virtualization/libs/VERSION b/libs/src/main/python/dlpx/virtualization/libs/VERSION index 0062ac971..6b244dcd6 100644 --- a/libs/src/main/python/dlpx/virtualization/libs/VERSION +++ b/libs/src/main/python/dlpx/virtualization/libs/VERSION @@ -1 +1 @@ -5.0.0 +5.0.1 diff --git a/platform/src/main/python/dlpx/virtualization/platform/VERSION b/platform/src/main/python/dlpx/virtualization/platform/VERSION index 0062ac971..6b244dcd6 100644 --- a/platform/src/main/python/dlpx/virtualization/platform/VERSION +++ b/platform/src/main/python/dlpx/virtualization/platform/VERSION @@ -1 +1 @@ -5.0.0 +5.0.1 diff --git a/tools/src/main/python/dlpx/virtualization/_internal/VERSION b/tools/src/main/python/dlpx/virtualization/_internal/VERSION index 0062ac971..6b244dcd6 100644 --- a/tools/src/main/python/dlpx/virtualization/_internal/VERSION +++ b/tools/src/main/python/dlpx/virtualization/_internal/VERSION @@ -1 +1 @@ -5.0.0 +5.0.1 diff --git a/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py b/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py index 669fc9192..22779c640 100644 --- a/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py +++ b/tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py @@ -7,7 +7,7 @@ from dlpx.virtualization._internal import package_util -DVP_VERSION = '5.0.0' +DVP_VERSION = '5.0.1' DVP_API_VERSION = '1.9.0' From 751377656e4cdcaf079f1689fdc50e418f565795 Mon Sep 17 00:00:00 2001 From: Rakshanda Bhat <111853524+rakshandabhat@users.noreply.github.com> Date: Tue, 8 Apr 2025 14:07:53 +0530 Subject: [PATCH 5/5] CP-12377 Record size validation - DVP version documentation (#560) Record size validation - DVP version documentation --- docs/docs/References/Version_Compatibility.md | 2 ++ docs/docs/Release_Notes/.pages | 1 + docs/docs/Release_Notes/5.0.1/5.0.1.md | 11 +++++++++++ docs/mkdocs.yml | 4 ++-- 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 docs/docs/Release_Notes/5.0.1/5.0.1.md diff --git a/docs/docs/References/Version_Compatibility.md b/docs/docs/References/Version_Compatibility.md index c855eb330..0507dc89f 100644 --- a/docs/docs/References/Version_Compatibility.md +++ b/docs/docs/References/Version_Compatibility.md @@ -4,6 +4,7 @@ | vSDK Version | Earliest Supported DE Version | Latest Supported DE Version | |------------------------------------------|:-----------------------------:|:-----------------------------------------------------------------:| +| [5.0.1](../Release_Notes/5.0.1/5.0.1.md) | 2025.2.0.0 | [Latest Release](https://cd.delphix.com/docs/latest/new-features) | | [5.0.0](../Release_Notes/5.0.0/5.0.0.md) | 29.0.0.0 | [Latest Release](https://cd.delphix.com/docs/latest/new-features) | | [4.1.0](../Release_Notes/4.1.0/4.1.0.md) | 12.0.0.0 | [Latest Release](https://cd.delphix.com/docs/latest/new-features) | | [4.0.5](../Release_Notes/4.0.5/4.0.5.md) | 6.0.16.0 | [Latest Release](https://cd.delphix.com/docs/latest/new-features) | @@ -19,6 +20,7 @@ | vSDK Version | Python Version | |------------------------------------------|:--------------:| +| [5.0.1](../Release_Notes/5.0.1/5.0.1.md) | 3.11 | | [5.0.0](../Release_Notes/5.0.0/5.0.0.md) | 3.11 | | [4.1.0](../Release_Notes/4.1.0/4.1.0.md) | 3.8 | | [4.0.5](../Release_Notes/4.0.5/4.0.5.md) | 3.8 | diff --git a/docs/docs/Release_Notes/.pages b/docs/docs/Release_Notes/.pages index 9f67f5fe6..173652740 100644 --- a/docs/docs/Release_Notes/.pages +++ b/docs/docs/Release_Notes/.pages @@ -1,4 +1,5 @@ arrange: + - 5.0.1 - 5.0.0 - 4.1.0 - 4.0.5 diff --git a/docs/docs/Release_Notes/5.0.1/5.0.1.md b/docs/docs/Release_Notes/5.0.1/5.0.1.md new file mode 100644 index 000000000..a37a04379 --- /dev/null +++ b/docs/docs/Release_Notes/5.0.1/5.0.1.md @@ -0,0 +1,11 @@ +# Release - v5.0.1 + +To install or upgrade the SDK, refer to instructions [here](../../Getting_Started.md#installation). + +## New & Improved + +* Enhanced schema validation to set [record size](../../References/Glossary.md#record-size). + +## Breaking Changes + +* No breaking changes in this release! \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 147990ada..35f13b308 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: Delphix Virtualization SDK 5.0.0 +site_name: Delphix Virtualization SDK 5.0.1 repo_name: Delphix Virtualization SDK repo_url: https://github.com/delphix/virtualization-sdk/ @@ -20,7 +20,7 @@ theme: - content.code.copy - content.code.annotate -copyright: Copyright © 2024 Delphix Corp. +copyright: Copyright © 2025 Delphix Corp. extra: analytics: