Atul Gupta


MasterSweep is a PowerShell-Python based application that I developed at Accenture for a client in Hospitality industry. The client runs a proprietary Property Management System (PMS) application deployed on windows machines. MasterSweep automates patch deployment process for this PMS application. This includes downloading and configuring the patches, copying the patches on the client servers, installing and monitoring the install, verifying that the install is successful and generating a report for all the servers with the patch installation status. For large deployments (> 1000 servers), it also emailed the support team once the job was finished. The application expected patch number, list of servers to work on and user choice of options as primary inputs. The entire process was divided into 4 variables as follows:

The function definitions are relatively straightforward and explain the process well. The order of operations is hard-coded and is kept as follows:

copy -> uninstall -> install -> verify

Utility and benefits

  1. Automates the patch deployment process from start to finish.
  2. Reduces the human effort required in the process from hours of manual work to a couple of minutes.
  3. Reduces the possibility of human errors.
  4. Codifies the process and makes sure that the process is followed by the book every time it is run.
  5. The application is completely configurable and allows the user to start the process from wherever they want. If they want to copy but not install yet, it can be done. If they have already copied, they can save time by triggering only install.
  6. Although each functions stands on its own merit, it can be combined with other functions to create a more elaborate and meaningful task. For example:- since in the order-of-operations, the uninstall function is before the install function but after the copy function, it can be combined with install to quickly re-install a patch if needed.
  7. The verify function automates not only a part of the process, but also the post-completion tasks of analysing process reports by generating a report that gives a high-level overview of the results in the form of names of servers where the process has failed.

Upgrades and enhancements

Once the minimum viable version of MasterSweep was launced and was met with a resounding success from every team member, I added a bunch of other functions to make it even for intuitive and useful. These ranged from upgrades to the existing process, enhancements to the MasterSweep's functionality and also helper functions that make using the MasterSweep more user-friendly. Three of these functions are described below:

The functions are described as follows: