That's a good question. Currently, run_sync() operation follows a little bit different semantics than run_bash() and it throws a user exception when something goes wrong. The exception would be displayed in the UI. It is currently not possible to react to a failed run_sync() call from the plugin context.
This might be a bug in the Delphix engine code. We're investigating the issue and will get back to you soon.
The files on the engine will reflect the state on the source as we run rsync with --delete flag. Here are all the flags we pass to rsync:
"-a, --delete, --delete-excluded, --ignore-errors, --inplace, --relative, --delete-missing-args, --partial, --no-inc-recursive, --info=progress2"
Is reducing the number of network calls the primary reason for implementing a direct plugin?- Filip
from dlpx.virtualization import libsfrom dlpx.virtualization.libs.exceptions import LibraryError...source_directory = "sourceDirectory"rsync_user = "rsyncUser"exclude_paths = ["/path1", "/path2"]sym_links_to_follow = ["/path3", "/path4"]try: libs.run_sync(connection, source_directory, rsync_user, exclude_paths, sym_links_to_follow)except LibraryError: ## Handle the error here. print("run_sync() failed")