[SERVER-48960] Drive powercycle setup commands with expansions.yml Created: 18/Jun/20  Updated: 29/Oct/23  Resolved: 09/Jul/20

Status: Closed
Project: Core Server
Component/s: Testing Infrastructure
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Bug Priority: Major - P3
Reporter: Robert Guo (Inactive) Assignee: Vlad Rachev (Inactive)
Resolution: Fixed Votes: 0
Labels: tig-powercycle
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Gantt Dependency
has to be done before SERVER-48961 Add an expansion for the powercycle u... Closed
Issue split
split from SERVER-48080 Use "Administrator" as the Powercycle... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v4.4
Sprint: STM 2020-06-29, STM 2020-07-13
Participants:
Linked BF Score: 36
Story Points: 5

 Description   

Create a python wrapper around remote_operations.py that takes an Evergreen expansions.yml as input and calls remote_operations.py as we do now throughout evergreen.yml. Since the wrapper script is in Python, we can call RemoteOperations directly instead of through a subprocess.

Because remote_operations.py is invoked at different points in evergreen.yml, we can't combine all 20 invocations into a single call to the wrapper, instead we want to retain the existing logic for now and create a subcommand to the wrapper for each contiguous group of calls. The subcommand names can mirror the function names in evergreen.yml :

  • copy_ec2_monitor_files
  • setup_ec2_intance
  • tar_ec2_artifacts
  • copy_ec2_artifacts
  • gather_remote_event_logs
  • gather_remote_mongo_coredumps
  • copy_remote_mongo_coredumps

It's likely some the calls can be further grouped together based on their usage in evergreen.yml but we can overlook that as part of this ticket to ensure we don't accidentally change the behavior of powercycle.

The goal of this ticket is to set $ssh_connection_options, $private_ip_address and all the other command line options for every invocation only once in the Python wrapper.



 Comments   
Comment by Vlad Rachev (Inactive) [ 09/Jul/20 ]

commit: https://github.com/mongodb/mongo/commit/09d7df7e8c53c593c254f589611931226a423ae9

Comment by Ian Whalen (Inactive) [ 24/Jun/20 ]

it won't change server code, but system failures have the chance to hide real failures.

Comment by Steven Vannelli [ 22/Jun/20 ]

Great, thanks! I'll keep an eye on these tickets.

Comment by Robert Guo (Inactive) [ 22/Jun/20 ]

One more point in addition to what Vlad said; neither this ticket nor SERVER-48961 will change any Server code.

Comment by Vlad Rachev (Inactive) [ 22/Jun/20 ]

I don't expect either this or SERVER-48691 to be completed by EOD today. The motivation for starting this work now came from the Kelsey and Ian's comments last week in SERVER-48080

Generated at Thu Feb 08 05:18:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.