def __init__(self, controller_config, cmd_executor=None,
               sync_connection_manager=None, snapshot_service=None,
               username=None, password=None):
    Controller.__init__(self, controller_config, sync_connection_manager,
                        snapshot_service)
    self.username = username
    self.password = password
    if self.username is None and hasattr(self.config, 'username'):
      self.username = self.config.username
    if self.password is None and hasattr(self.config, 'password'):
      self.password = self.config.password
    self.cmd_executor = cmd_executor
    if self.cmd_executor is None and hasattr(self.config, 'cmd_executor'):
      self.cmd_executor = self.config.cmd_executer
    if self.cmd_executor is None:
      key_filename = getattr(self.config, 'key_filename', None)
      self.cmd_executor = SSHEntity(controller_config.address,
                                    username=self.username,
                                    password=self.password,
                                    key_filename=key_filename,
                                    cwd=getattr(self.config, "cwd", None),
                                    redirect_output=True,
                                    block=True)
    assert hasattr(self.cmd_executor, "execute_command")
    self.commands = {}
    self.populate_commands()
    self.welcome_msg = " =====> Starting VM Controller <===== "
    self.alive_status_string = ""  # subclass dependent
Args:
dataset/ETHPy150Open ucb-sts/sts/sts/entities/controllers.py/VMController.__init__