Thanks very much for developing this tool, and thanks to the helpful WebFaction support person who recommended OpalStack. I'm pleased to see things looking fairly familiar here.
I was getting the following error:
2020-12-14 16:44:01 : ERROR : <Fault 1: 'Not allowed to login to machine "Web1"'>
Traceback (most recent call last):
File "/usr/local/bin/wfmigrate", line 101, in <module>
migrator = __import__(module).Migrator(cfg, args)
File "/opt/app_migrators-1.10.3/wf_generic_email/migrator.py", line 18, in __init__
self.wf_cfg = WfCfg(cfg['webfaction'])
File "/opt/app_migrators-1.10.3/lib/config_types/wf_cfg.py", line 10, in __init__
self.update_derived_attrs()
File "/opt/app_migrators-1.10.3/lib/config_types/wf_cfg.py", line 18, in update_derived_attrs
self.refresh_api_connection()
File "/opt/app_migrators-1.10.3/lib/config_types/wf_cfg.py", line 14, in refresh_api_connection
self.api_session_id, self.wf_account_cfg = self.api.login(self.wf_account, self.wf_password, self.wf_server.capitalize(), 2)
File "/usr/lib64/python3.6/xmlrpc/client.py", line 1112, in __call__
return self.__send(self.__name, args)
File "/usr/lib64/python3.6/xmlrpc/client.py", line 1452, in __request
verbose=self.__verbose
File "/usr/lib64/python3.6/xmlrpc/client.py", line 1154, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib64/python3.6/xmlrpc/client.py", line 1170, in single_request
return self.parse_response(resp)
File "/usr/lib64/python3.6/xmlrpc/client.py", line 1342, in parse_response
return u.close()
File "/usr/lib64/python3.6/xmlrpc/client.py", line 656, in close
raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault 1: 'Not allowed to login to machine "Web1"'>
Update
I found the problem. The server
property in my config.ini needed to be set to the server I found under Account Services←(linky!) in my WebFaction control panel (e.g. Web123), and not the hostname I SSH to.
I'm leaving the error message posted here, in case anybody else makes the same mistake.