javipalanca / simfleet

Agent-based fleet simulator to test strategies
MIT License
10 stars 9 forks source link

spade.agent.AuthenticationFailure #6

Closed Okroshiashvili closed 3 years ago

Okroshiashvili commented 3 years ago

Description

I am new to simfleet. I installed it with pip and also installed Prosody IM with sudo apt-get. After that steps, I went to simfleet documentation, copied sample configuration JSON file from here and from the terminal I run simfleet --config myconfig.json --name "ExampleConfig" --output results.xls --oformat excel

The exceptions I got

After running the simulation in terminal I got the following exception

2020-09-18 16:12:20.601 | INFO     | simfleet.config:load_config:75 - Reading config my_config.json
2020-09-18 16:12:20.670 | INFO     | simfleet.simulator:__init__:72 - Starting SimFleet (Example_Config)
2020-09-18 16:12:20.671 | INFO     | simfleet.simulator:load_icons:173 - Reading icons /home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/simfleet/templates/data/img_transports.json
main failed
Traceback (most recent call last):
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 843, in _on_main_done
    task.result()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 1010, in _main
    yield from self._main_impl()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 970, in _main_impl
    logger=self.logger)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 399, in connect_xmlstream
    jid, metadata, negotiation_timeout, loop, logger,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 278, in _try_options
    features=features,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1200, in negotiate_sasl
    raise last_auth_error
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1184, in negotiate_sasl
    jid, features, xmlstream, transport)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 982, in execute
    intf, mechanism, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 847, in _execute
    yield from mechanism.authenticate(sm, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aiosasl/__init__.py", line 712, in authenticate
    username, password = yield from self._credential_provider()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 959, in credential_provider
    text="authentication aborted by user")
aiosasl.AuthenticationFailure: user intervention: authentication failed: authentication aborted by user
Traceback (most recent call last):
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/spade/agent.py", line 134, in _async_connect
    self.stream = await aenter
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 1667, in __aenter__
main failed
Traceback (most recent call last):
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 843, in _on_main_done
    task.result()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 1010, in _main
    yield from self._main_impl()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 970, in _main_impl
    logger=self.logger)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 399, in connect_xmlstream
    jid, metadata, negotiation_timeout, loop, logger,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 278, in _try_options
    features=features,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1200, in negotiate_sasl
    raise last_auth_error
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1184, in negotiate_sasl
    jid, features, xmlstream, transport)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 982, in execute
    intf, mechanism, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 847, in _execute
    yield from mechanism.authenticate(sm, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aiosasl/__init__.py", line 712, in authenticate
    username, password = yield from self._credential_provider()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 959, in credential_provider
    text="authentication aborted by user")
aiosasl.AuthenticationFailure: user intervention: authentication failed: authentication aborted by user
    yield from conn_future
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 843, in _on_main_done
    task.result()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 1010, in _main
    yield from self._main_impl()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 970, in _main_impl
    logger=self.logger)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 399, in connect_xmlstream
    jid, metadata, negotiation_timeout, loop, logger,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/node.py", line 278, in _try_options
    features=features,
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1200, in negotiate_sasl
    raise last_auth_error
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 1184, in negotiate_sasl
    jid, features, xmlstream, transport)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 982, in execute
    intf, mechanism, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 847, in _execute
    yield from mechanism.authenticate(sm, token)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aiosasl/__init__.py", line 712, in authenticate
    username, password = yield from self._credential_provider()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/aioxmpp/security_layer.py", line 959, in credential_provider
    text="authentication aborted by user")
aiosasl.AuthenticationFailure: user intervention: authentication failed: authentication aborted by user

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/bin/simfleet", line 8, in <module>
    sys.exit(main())
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/simfleet/cli.py", line 53, in main
    simulator = SimulatorAgent(config=simfleet_config, agentjid=simulator_name)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/simfleet/simulator.py", line 87, in __init__
    self.create_directory_agent(name=config.directory_name, password=config.directory_password)
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/simfleet/simulator.py", line 834, in create_directory_agent
    agent.start().result()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/concurrent/futures/_base.py", line 435, in result
    return self.__get_result()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/spade/agent.py", line 117, in _async_start
    await self._async_connect()
  File "/home/okroshiashvili/miniconda3/envs/urbanjet/lib/python3.7/site-packages/spade/agent.py", line 138, in _async_connect
    "Could not authenticate the agent. Check user and password or use auto_register=True"
spade.agent.AuthenticationFailure: Could not authenticate the agent. Check user and password or use auto_register=True

I did not register anywhere, do I need to register somewhere? If yes, where? and where I have to put my credentials after registration? I need to run a sample simulation provided by simfleet then go and create custom strategies. Please, help me

Okroshiashvili commented 3 years ago

I solved my problem by changing Prosody config file, which is located at /etc/prosody/prosody.cfg.lua and change allow_registration = false to allow_registration = true. Save this change in config file and restart prosody by running sudo prosodyctl restart in terminal. After restarting the prosody run simulation as simfleet --config myconfig.json

javipalanca commented 3 years ago

I'm late to this issue, sorry. Yes, in prosody you need to allow registration in the config file.