eclipse-volttron / volttron-core

Other
5 stars 9 forks source link

Pre-start configuration using vctl #177

Open craig8 opened 1 year ago

craig8 commented 1 year ago

Is your feature request related to a problem? Please describe. Configuration in the new modular with messagebus, auth and dynamically loaded classes could be a barrier for adoption. This feature will address that.

Describe the solution you'd like Create a vctl system subparser for configuration of the messagebus and the local/remote client connections. Looking back at the original guidlines for modular we see.

image

Proposed commands

craig8 commented 1 year ago

After talking with @shwethanidd the ultimate goal of the command line options is to handle the following configuration files.

~/.volttron/config
[volttron]
instance-name = WE40572
address = tcp://127.0.0.1:22916
agent-isolation-mode = False
message-bus = volttron.messagebus.zmq

auth = True/False

And service_config.yml which I haven't copied an example of.

.volttron/service_config.yml
craig8 commented 1 year ago

Original with all the bells

[volttron]
instance-name = WE40572
address = tcp://127.0.0.1:22916
agent-isolation-mode = False
message-bus = volttron.messagebus.zmq.ZmqMessageBus
agent-core = volttron.messagebus.zmq.ZmqCore
authentication-class = volttron.messagebus.zmq.ZmqAuthentication
authorization-class = volttron.messagebus.zmq.ZmqAuthorization
auth-service = volttron.services.auth
service-config = /home/d3m614/.volttron_crap/service_config.yml
craig8 commented 1 year ago

Example of zmq

python3.10 -m venv .venv

source .venv/bin/activate

# Assume that Authentication and Authorization are implement within a dependency of volttron-zmq
pip install volttron-zmq volttron-lib-auth

volttron -vv

Example mqtt

python3.10 -m venv .venv

source .venv/bin/activate

pip install volttron-mqtt spiffy volttron-spiffy volttron-lib-auth volttron-tls

volttron -vv