Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 3.0.0.dev0
current_version = 3.0.0.dev1
commit = False
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<dev>\d+))?
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0.dev0
3.0.0.dev1
2 changes: 1 addition & 1 deletion dvp/src/main/python/dlpx/virtualization/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0.dev0
3.0.0.dev1
2 changes: 1 addition & 1 deletion libs/src/main/python/dlpx/virtualization/libs/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0.dev0
3.0.0.dev1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0.dev0
3.0.0.dev1
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,15 @@ def _internal_direct_pre_snapshot(self, request):
json.loads(request.repository.parameters.json))
source_config = SourceConfigDefinition.from_dict(
json.loads(request.source_config.parameters.json))
snapshot_parameters = SnapshotParametersDefinition.from_dict(
json.loads(request.snapshot_parameters.parameters.json))
snap_params = json.loads(request.snapshot_parameters.parameters.json)
#
# The snapshot_parameters object should be set to None if the json from
# the protobuf is None to differentiate no snapshot parameters vs empty
# snapshot parameters.
#
snapshot_parameters = (
None if snap_params is None else
SnapshotParametersDefinition.from_dict(snap_params))

self.pre_snapshot_impl(
direct_source=direct_source,
Expand Down Expand Up @@ -202,8 +209,15 @@ def to_protobuf(snapshot):
json.loads(request.repository.parameters.json))
source_config = SourceConfigDefinition.from_dict(
json.loads(request.source_config.parameters.json))
snapshot_parameters = SnapshotParametersDefinition.from_dict(
json.loads(request.snapshot_parameters.parameters.json))
snap_params = json.loads(request.snapshot_parameters.parameters.json)
#
# The snapshot_parameters object should be set to None if the json from
# the protobuf is None to differentiate no snapshot parameters vs empty
# snapshot parameters.
#
snapshot_parameters = (
None if snap_params is None else
SnapshotParametersDefinition.from_dict(snap_params))

snapshot = self.post_snapshot_impl(
direct_source=direct_source,
Expand Down Expand Up @@ -273,8 +287,15 @@ def _internal_staged_pre_snapshot(self, request):
json.loads(request.repository.parameters.json))
source_config = SourceConfigDefinition.from_dict(
json.loads(request.source_config.parameters.json))
snapshot_parameters = SnapshotParametersDefinition.from_dict(
json.loads(request.snapshot_parameters.parameters.json))
snap_params = json.loads(request.snapshot_parameters.parameters.json)
#
# The snapshot_parameters object should be set to None if the json from
# the protobuf is None to differentiate no snapshot parameters vs empty
# snapshot parameters.
#
snapshot_parameters = (
None if snap_params is None else
SnapshotParametersDefinition.from_dict(snap_params))

self.pre_snapshot_impl(
staged_source=staged_source,
Expand Down Expand Up @@ -341,8 +362,15 @@ def to_protobuf(snapshot):
json.loads(request.repository.parameters.json))
source_config = SourceConfigDefinition.from_dict(
json.loads(request.source_config.parameters.json))
snapshot_parameters = SnapshotParametersDefinition.from_dict(
json.loads(request.snapshot_parameters.parameters.json))
snap_params = json.loads(request.snapshot_parameters.parameters.json)
#
# The snapshot_parameters object should be set to None if the json from
# the protobuf is None to differentiate no snapshot parameters vs empty
# snapshot parameters.
#
snapshot_parameters = (
None if snap_params is None else
SnapshotParametersDefinition.from_dict(snap_params))

snapshot = self.post_snapshot_impl(
staged_source=staged_source,
Expand Down
122 changes: 122 additions & 0 deletions platform/src/test/python/dlpx/virtualization/test_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -841,6 +841,38 @@ def mock_direct_pre_snapshot(direct_source, repository, source_config,
'result') == 'return_value'
assert direct_pre_snapshot_response.return_value == expected_result

@staticmethod
def test_direct_pre_snapshot_null_snapparams(my_plugin, direct_source,
repository, source_config):
@my_plugin.linked.pre_snapshot()
def mock_direct_pre_snapshot(direct_source, repository, source_config,
optional_snapshot_parameters):
TestPlugin.assert_direct_source(direct_source)
TestPlugin.assert_repository(repository)
TestPlugin.assert_source_config(source_config)
assert not optional_snapshot_parameters
return

snapshot_parameters = common_pb2.SnapshotParameters()
snapshot_parameters.parameters.json = 'null'

direct_pre_snapshot_request = platform_pb2.DirectPreSnapshotRequest()
TestPlugin.setup_request(request=direct_pre_snapshot_request,
direct_source=direct_source,
repository=repository,
source_config=source_config,
snapshot_parameters=snapshot_parameters)

expected_result = platform_pb2.DirectPreSnapshotResult()
direct_pre_snapshot_response = (
my_plugin.linked._internal_direct_pre_snapshot(
direct_pre_snapshot_request))

# Check that the response's oneof is set to return_value and not error
assert direct_pre_snapshot_response.WhichOneof(
'result') == 'return_value'
assert direct_pre_snapshot_response.return_value == expected_result

@staticmethod
def test_direct_post_snapshot(my_plugin, direct_source, repository,
source_config, snapshot_parameters):
Expand Down Expand Up @@ -869,6 +901,36 @@ def direct_post_snapshot_impl(direct_source, repository, source_config,
snapshot = direct_post_snapshot_response.return_value.snapshot
assert snapshot.parameters.json == expected_snapshot

@staticmethod
def test_direct_post_snapshot_null_snapparams(my_plugin, direct_source,
repository, source_config):
@my_plugin.linked.post_snapshot()
def direct_post_snapshot_impl(direct_source, repository, source_config,
optional_snapshot_parameters):
TestPlugin.assert_direct_source(direct_source)
TestPlugin.assert_repository(repository)
TestPlugin.assert_source_config(source_config)
assert not optional_snapshot_parameters
return SnapshotDefinition(TEST_SNAPSHOT)

snapshot_parameters = common_pb2.SnapshotParameters()
snapshot_parameters.parameters.json = 'null'

direct_post_snapshot_request = platform_pb2.DirectPostSnapshotRequest()
TestPlugin.setup_request(
request=direct_post_snapshot_request,
direct_source=direct_source,
repository=repository,
source_config=source_config,
snapshot_parameters=snapshot_parameters)

direct_post_snapshot_response = (
my_plugin.linked._internal_direct_post_snapshot(
direct_post_snapshot_request))
expected_snapshot = TEST_SNAPSHOT_JSON
snapshot = direct_post_snapshot_response.return_value.snapshot
assert snapshot.parameters.json == expected_snapshot

@staticmethod
def test_staged_pre_snapshot(my_plugin, staged_source, repository,
source_config, snapshot_parameters):
Expand Down Expand Up @@ -898,6 +960,37 @@ def staged_pre_snapshot_impl(staged_source, repository, source_config,
assert response.WhichOneof('result') == 'return_value'
assert (response.return_value == expected_result)

@staticmethod
def test_staged_pre_snapshot_null_snapparams(my_plugin, staged_source,
repository, source_config):
@my_plugin.linked.pre_snapshot()
def staged_pre_snapshot_impl(staged_source, repository, source_config,
optional_snapshot_parameters):
TestPlugin.assert_staged_source(staged_source)
TestPlugin.assert_repository(repository)
TestPlugin.assert_source_config(source_config)
assert not optional_snapshot_parameters
return

snapshot_parameters = common_pb2.SnapshotParameters()
snapshot_parameters.parameters.json = 'null'

staged_pre_snapshot_request = platform_pb2.StagedPreSnapshotRequest()
TestPlugin.setup_request(
request=staged_pre_snapshot_request,
staged_source=staged_source,
repository=repository,
source_config=source_config,
snapshot_parameters=snapshot_parameters)

expected_result = platform_pb2.StagedPreSnapshotResult()
response = my_plugin.linked._internal_staged_pre_snapshot(
staged_pre_snapshot_request)

# Check that the response's oneof is set to return_value and not error
assert response.WhichOneof('result') == 'return_value'
assert (response.return_value == expected_result)

@staticmethod
def test_staged_post_snapshot(my_plugin, staged_source, repository,
source_config, snapshot_parameters):
Expand Down Expand Up @@ -925,6 +1018,35 @@ def staged_post_snapshot_impl(staged_source, repository, source_config,

assert response.return_value.snapshot.parameters.json == expected

@staticmethod
def test_staged_post_snapshot_null_snapparams(my_plugin, staged_source,
repository, source_config):
@my_plugin.linked.post_snapshot()
def staged_post_snapshot_impl(staged_source, repository, source_config,
optional_snapshot_parameters):
TestPlugin.assert_staged_source(staged_source)
TestPlugin.assert_repository(repository)
TestPlugin.assert_source_config(source_config)
assert not optional_snapshot_parameters
return SnapshotDefinition(TEST_SNAPSHOT)

snapshot_parameters = common_pb2.SnapshotParameters()
snapshot_parameters.parameters.json = 'null'

staged_post_snapshot_request = platform_pb2.StagedPostSnapshotRequest()
TestPlugin.setup_request(
request=staged_post_snapshot_request,
staged_source=staged_source,
repository=repository,
source_config=source_config,
snapshot_parameters=snapshot_parameters)

response = my_plugin.linked._internal_staged_post_snapshot(
staged_post_snapshot_request)
expected = TEST_SNAPSHOT_JSON

assert response.return_value.snapshot.parameters.json == expected

@staticmethod
def test_start_staging(my_plugin, staged_source, repository,
source_config):
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.0.dev0
3.0.0.dev1
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
DISCOVERY_DEFINITION_TYPE = 'PluginDiscoveryDefinition'
STAGED_LINKED_SOURCE_TYPE = 'PluginLinkedStagedSourceDefinition'
DIRECT_LINKED_SOURCE_TYPE = 'PluginLinkedDirectSourceDefinition'
SNAPSHOT_PARAMETERS_DEFINITION_TYPE = 'PluginSnapshotParametersDefinition'

BUILD_DIR_NAME = 'build'

Expand Down Expand Up @@ -207,8 +208,10 @@ def prepare_upload_artifact(plugin_config_content, src_dir, schemas, manifest):
prepare_discovery_definition(plugin_config_content, schemas),
'snapshotSchema':
schemas['snapshotDefinition'],
'snapshotParametersDefinition':
schemas['snapshotParametersDefinition'],
'snapshotParametersDefinition': {
'type': SNAPSHOT_PARAMETERS_DEFINITION_TYPE,
'schema': schemas['snapshotParametersDefinition']
},
'manifest':
manifest
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# versions in those packages until they are shipped out of band.
#
[General]
engine_api_version = 1.11.3
engine_api_version = 1.12.0
distribution_name = dvp-tools
package_author = Delphix
namespace_package = dlpx
Original file line number Diff line number Diff line change
Expand Up @@ -619,12 +619,18 @@ def artifact_content(engine_api, virtual_source_definition,
artifact['snapshotParametersDefinition'] = (
snapshot_parameters_definition)

if snapshot_parameters_definition:
artifact['snapshotParametersDefinition'] = {
'type': 'PluginSnapshotParametersDefinition',
'schema': snapshot_parameters_definition,
}

return artifact


@pytest.fixture
def engine_api():
return {'type': 'APIVersion', 'major': 1, 'minor': 11, 'micro': 3}
return {'type': 'APIVersion', 'major': 1, 'minor': 12, 'micro': 0}


@pytest.fixture
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
class TestPackageUtil:
@staticmethod
def test_get_version():
assert package_util.get_version() == '3.0.0.dev0'
assert package_util.get_version() == '3.0.0.dev1'

@staticmethod
def test_get_virtualization_api_version():
assert package_util.get_virtualization_api_version() == '1.4.0'

@staticmethod
def test_get_engine_api_version():
assert package_util.get_engine_api_version_from_settings() == '1.11.3'
assert package_util.get_engine_api_version_from_settings() == '1.12.0'

@staticmethod
def test_get_build_api_version_json():
Expand All @@ -35,8 +35,8 @@ def test_get_engine_api_version_json():
engine_api_version = {
'type': 'APIVersion',
'major': 1,
'minor': 11,
'micro': 3
'minor': 12,
'micro': 0
}
assert package_util.get_engine_api_version() == engine_api_version

Expand Down