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 00000000..e82e82f3 --- /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 cf10b678..7aba6042 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 2c993835..d396d6e6 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 edbfeab6..59c39057 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 5f735a79..3dbed667 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 72126112..2f9a3bc7 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 0062ac97..6b244dcd 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 0062ac97..6b244dcd 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 0062ac97..6b244dcd 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 0062ac97..6b244dcd 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 0062ac97..6b244dcd 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 669fc919..22779c64 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 c855eb33..0507dc89 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 9f67f5fe..17365274 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 00000000..a37a0437 --- /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 147990ad..35f13b30 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: