vSphere Transport Layer Security (TLS) reconfigurator.

Use cases:

1) Scan the configuration of all services.

   usage:
      # prototype
       reconfigure scan

      # 'scan' will display the enabled TLS protocals only for the
        services that are integrated with TlsReconfigurator.

2) Back up the configuration of all services.

   usage:
      # prototype
      reconfigure backup [-h] [-d DIRECTORY]

      optional arguments:
      -d DIRECTORY, --directory DIRECTORY
                                The directory used for backing up the
                                configuration of all services.

      # use a default backup directory, e.g. /tmp/%Y%m%dT%H%M%S
      reconfigure backup

      # use tmp as a backup directory
      reconfigure backup -d tmp

3) Restore the configuration of some or all services.

   usage:
      # prototype
      reconfigure restore [-h] [-s SERVICE [SERVICE]] -d DIRECTORY

      positional arguments:
       -d DIRECTORY, --directory DIRECTORY
                             The directory used for restoring the configuration
                             of some or all services, usually created during a
                             backup.

      optional arguments:
      -s, --services [SERVICE [SERVICE]]
                             Specific services(s) to update/restore.

      # use tmp as a restore directory
      reconfigure restore -d tmp

      # use tmp as a restore directory and restore only vmware-stsd and vmdird
      reconfigure restore -d tmp -s vmdird vmware-stsd

4) Update the configuration of some or all services.

   usage:
      # prototype
      reconfigure update [-h] [-s SERVICE(S)] -p PROTOCOL(S)

      required arguments:
      -p, --protocols {TLSv1.0,TLSv1.1,TLSv1.2} [{TLSv1.0,TLSv1.1,TLSv1.2} ...]
                             Transport Layer Security (TLS) protocol(s)

      optional arguments:
      -s, --services [SERVICE [SERVICE ...]]
                             Specific services(s) to update/restore.

      # update the configuration of all services to TLSv1.2
      reconfigure update -p TLSv1.2

      # update the configuration of all services to TLSv1.1,TLSv1.2
      reconfigure update -p TLSv1.1 TLSv1.2

      # update the configuration of vmware-stsd and vmdird to TLSv1.2
      reconfigure update -p TLSv1.2 -s vmdird vmware-stsd

      # update the configuration of vmware-stsd and vmdird to TLSv1.1,TLSv1.2
      reconfigure update -p TLSv1.1 TLSv1.2 -s vmdird vmware-stsd


All services must have a unique script containing
1) a unique SERVICE name variable which can be different on Linux and Windows
2) BackupConfiguration, RestoreConfiguration and UpdateConfiguration functions.

If a SERVICE name variable is not defined then that service does not take part
in the requested backup/restore/update command on that OS/mode. This can be
used to differentiate Linux and Windows only services and those that run only
in Infrastructure, Management or Embedded modes.
