diff --git a/plugins/module_utils/ndb/database_clones.py b/plugins/module_utils/ndb/database_clones.py index 721bfddd..8493faa8 100644 --- a/plugins/module_utils/ndb/database_clones.py +++ b/plugins/module_utils/ndb/database_clones.py @@ -200,10 +200,12 @@ def get_clone_refresh_spec(self): payload["snapshotId"] = self.module.params.get("snapshot_uuid") elif self.module.params.get("pitr_timestamp"): payload["userPitrTimestamp"] = self.module.params.get("pitr_timestamp") + elif self.module.params.get("latest_snapshot", False): + payload["latestSnapshot"] = True else: return ( None, - "snapshot_uuid or pitr_timestamp is required for database clone refresh", + "One of snapshot_uuid, pitr_timestamp or latest_snapshot is required for database clone refresh", ) payload["timeZone"] = self.module.params.get("timezone") @@ -237,10 +239,12 @@ def _build_spec_time_machine(self, payload, time_machine): payload["snapshotId"] = time_machine.get("snapshot_uuid") elif time_machine.get("pitr_timestamp"): payload["userPitrTimestamp"] = time_machine.get("pitr_timestamp") + elif time_machine.get("latest_snapshot", False): + payload["latestSnapshot"] = True else: return ( None, - "Required snapshot_uuid or pitr_timestamp for source of db clone", + "Required one of snapshot_uuid, pitr_timestamp or latest_snapshot for source of db clone", ) payload["timeZone"] = time_machine.get("timezone") diff --git a/plugins/modules/ntnx_ndb_database_clone_refresh.py b/plugins/modules/ntnx_ndb_database_clone_refresh.py index 687145e3..7af78022 100644 --- a/plugins/modules/ntnx_ndb_database_clone_refresh.py +++ b/plugins/modules/ntnx_ndb_database_clone_refresh.py @@ -301,6 +301,7 @@ def get_module_spec(): snapshot_uuid=dict(type="str", required=False), timezone=dict(type="str", default="Asia/Calcutta", required=False), pitr_timestamp=dict(type="str", required=False), + latest_snapshot=dict(tyoe="bool", required=False) ) return module_args @@ -340,12 +341,12 @@ def refresh_clone(module, result): def run_module(): mutually_exclusive_list = [ - ("snapshot_uuid", "pitr_timestamp"), + ("snapshot_uuid", "pitr_timestamp", "latest_snapshot"), ] module = NdbBaseModule( argument_spec=get_module_spec(), supports_check_mode=True, - required_if=[("state", "present", ("snapshot_uuid", "pitr_timestamp"), True)], + required_if=[("state", "present", ("snapshot_uuid", "pitr_timestamp", "latest_snapshot"), True)], mutually_exclusive=mutually_exclusive_list, ) remove_param_with_none_value(module.params) diff --git a/plugins/modules/ntnx_ndb_database_clones.py b/plugins/modules/ntnx_ndb_database_clones.py index a6485ee7..cfaa3845 100644 --- a/plugins/modules/ntnx_ndb_database_clones.py +++ b/plugins/modules/ntnx_ndb_database_clones.py @@ -652,6 +652,7 @@ def get_module_spec(): uuid=dict(type="str", required=False), snapshot_uuid=dict(type="str", required=False), pitr_timestamp=dict(type="str", required=False), + latest_snapshot=dict(type="bool", required=False), timezone=dict(type="str", default="Asia/Calcutta", required=False), ) @@ -700,7 +701,7 @@ def get_module_spec(): time_machine=dict( type="dict", options=time_machine, - mutually_exclusive=[("snapshot_uuid", "pitr_timestamp")], + mutually_exclusive=[("snapshot_uuid", "pitr_timestamp", "latest_snapshot")], required=False, ), postgres=dict(type="dict", options=postgres, required=False),