Skip to content

Stable/6.2 DMS changes - #498

Open
savitha-p wants to merge 17 commits into
trilioData:stable/6.2from
savitha-p:stable/6.2
Open

savitha-p wants to merge 17 commits into
trilioData:stable/6.2from
savitha-p:stable/6.2

Conversation

@savitha-p

Copy link
Copy Markdown
Contributor

No description provided.

savitha-p and others added 15 commits May 21, 2026 16:22
dms-mount needs the datamover DB and rabbitmq connection info to
mount an S3/NFS backup target; wire tvaultconf.db_url/rabbitmq_url
(populated by fetch_resources.sh from the deployment's DMS client
config) through into the workloadmgr CLI invocation, and set/restore
cloud-admin vs test-user env vars around the call.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
abdul-shaik1 added a commit to abdul-shaik1/tempest-1 that referenced this pull request Sep 1, 2026
…ken reuse

Three fixes from a review comparing this PR against a parallel DMS
effort (PR trilioData#498):

1. dms_rabbitmq_url is now auto-generated in fetch_resources.sh for
   KOLLA (verified live - greps the real broker URL out of the wlm-api
   container's own DMS client config, same value trilio-dms-server
   itself connects to) instead of being hand-set in tvaultconf.py.
   RHOSP/OS-HELM/RHOSO get an explicit empty default with a comment
   noting it's not yet auto-derived there, matching the existing
   command_prefix_dms_* gap for those distros.

2. run_dms_cli() now references command_argument_string.dms_cli
   instead of a hardcoded "trilio-dms-cli" string, matching this
   repo's own convention (command_argument_string.py centralizes WLM
   CLI command strings for every other CLI-driven test in the suite).

3. Removed the separate get_admin_scoped_token() method and its two
   now-unused imports (tempest.lib.auth, tempest.clients). Extended
   the existing get_os_token() with an admin=False parameter instead -
   it already did the identical job (get a Keystone token for a given
   identity) via a simpler mechanism (self.token_v3_client.get_token())
   that was already in use elsewhere in this suite, rather than
   introducing a second, parallel way to do the same thing. The
   non-admin path's behavior is byte-for-byte unchanged for any
   existing caller. Updated all three call sites
   (test_dms_idempotency.py, test_dms_target_isolation.py,
   test_dms_fault_recovery.py) to self.get_os_token(admin=True).

Re-verified against a live KOLLA lab after all three fixes, no
regression:
- TC-DMS-04: NFS 5/5 PASS (9.99s), S3 5/5 PASS (15.07s)
- TC-DMS-05: 5/5 PASS (18.56s)
- TC-DMS-07: 5/5 PASS (18.35s)
Resource cleanup confirmed clean after each run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
abdul-shaik1 added a commit to abdul-shaik1/tempest-1 that referenced this pull request Sep 1, 2026
Follow-up to the previous review-feedback commit: fully match PR
trilioData#498's approach for both values, not just fix the underlying gap.

1. Renamed dms_rabbitmq_url -> rabbitmq_url throughout (fetch_resources.sh,
   base.py, tvaultconf.py) to match PR trilioData#498's naming exactly, rather than
   keeping the pre-existing dms_-prefixed name.

2. db_url is now also auto-generated by fetch_resources.sh for KOLLA -
   reuses the same sql_connection value already fetched for the other
   wlm_db* fields (verified live it produces the exact same connection
   string already in use: mysql+pymysql://workloadmgr:...@.../workloadmgr),
   instead of being assembled at runtime in Python from four separate
   tvaultconf.wlm_db* pieces.

run_dms_cli() now prefers tvaultconf.db_url directly when set, falling
back to assembling one from the discrete wlm_db* pieces otherwise -
keeps this working on distros where db_url isn't wired up in
fetch_resources.sh yet (RHOSP/OS-HELM/RHOSO, same as rabbitmq_url).

Re-verified against a live KOLLA lab after the rename, no regression:
- TC-DMS-04: NFS 5/5 PASS (8.16s), S3 5/5 PASS (15.92s)
- TC-DMS-05: 5/5 PASS (19.47s)
- TC-DMS-07: 5/5 PASS (18.34s)
Resource cleanup confirmed clean after each run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
abdul-shaik1 added a commit to abdul-shaik1/tempest-1 that referenced this pull request Sep 1, 2026
Two more changes per team lead review of PR trilioData#498:

1. command_argument_string.dms_cli now bakes in
   --rabbitmq-url/--db-url directly from tvaultconf at definition time
   (matching how other constants in this file already embed tvaultconf
   values, e.g. workload_create embeds tvaultconf.workload_name),
   instead of run_dms_cli() building --rabbitmq-url/--db-url as
   separate pieces at call time. Removed the db_url fallback-from-
   discrete-pieces logic in run_dms_cli() as no longer needed now that
   db_url is generated directly.

2. Added tvaultconf.dms_mount_job_id (starting at 10101) and
   base.py's increment_dms_mount_job_id(), matching PR trilioData#498's approach:
   persists the incremented value back into tvaultconf.py after every
   DMS mount call, so job_ids are unique across calls/runs. Replaces
   the random.randint(900000000, 999999999) job_id generation
   previously used in test_dms_idempotency.py,
   test_dms_target_isolation.py, and test_dms_fault_recovery.py
   (random import removed from all three, now unused).

Verified against a live KOLLA lab, no regression - counter advanced
correctly across all three files with no corruption to tvaultconf.py
(10101 -> 10111 -> 10121 -> 10131 across successive runs):
- TC-DMS-04: NFS 5/5 PASS (9.06s), S3 5/5 PASS (14.54s)
- TC-DMS-05: 5/5 PASS (18.68s)
- TC-DMS-07: 5/5 PASS (20.64s)
Resource cleanup confirmed clean after each run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ume detach conflict

- filesearch: verifyFilepath_Search() only adds a snapshot to its
  result dict when the API returns at least one matching file, so a
  snapshot expected to have zero matches is never a key in it. The
  default-parameters and wildcard tests indexed the dict directly for
  every snapshot id and crashed with KeyError on the zero-match
  snapshot; use .get(id, 0) instead so a missing entry correctly
  compares as 0.
- workload_modify: the WLM API rejects "workload-modify --jobschedule
  enabled=True" without a start_date in the same call, so pass
  start_date/start_time/timezone on the first modify call too, not
  just the second.
- base.py: detach_volume() called Cinder's generic detach even though
  attach_volume() attaches via the Compute API, so Nova owns the
  attachment and rejects the Cinder-side detach with
  ConflictNovaUsingAttachment. Detach via servers_client (Compute API)
  instead, matching attach_volume().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant