Skip to content

Commit

Permalink
Add attribute in clone modules in ndb for creation or refresh using l…
Browse files Browse the repository at this point in the history
…atestSnapshot
  • Loading branch information
bhati-pradeep committed Oct 18, 2023
1 parent 1501ab7 commit 4348d27
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
8 changes: 6 additions & 2 deletions plugins/module_utils/ndb/database_clones.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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")
Expand Down
5 changes: 3 additions & 2 deletions plugins/modules/ntnx_ndb_database_clone_refresh.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion plugins/modules/ntnx_ndb_database_clones.py
Original file line number Diff line number Diff line change
Expand Up @@ -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),
)

Expand Down Expand Up @@ -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),
Expand Down

0 comments on commit 4348d27

Please sign in to comment.