This repository has been archived by the owner on Mar 16, 2023. It is now read-only.
Allow desktop development using docker services #345
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change set is for enabling MineMeld (minemeld-core and
minemeld-webui to be debugged on the desktop using docker to run the
required services, PyCharm for editing and debugging minemeld-core,
and WebStorm for editing and debugging minemeld-webui. To accomplish
this, changes are required to be able to configure remote connections
to the services as they appear remote when running in the docker
containers.
The minemeld/cli files are used for creating debug targets in
PyCharm. These guarantee that GEvent monkey patching is performed
before loading other files.
The collectd path can be prefixed with tcp://, in which case a
remote connection to collectd will be created. Otherwise, a UNIX
socket at the specified path is created.
The zmqredis file was modified to centralize the creation of the
path to connect or bind to, reducing the number of times
'ipc:///var/run/minemeld/' is hardcoded into the file and
standardizing the interpretation of '@' at the beginning of the
path. It should also be possible to use TCP as the ZMQ transport
using tcp:// as the configured path, though this has not been
attempted.
Since minemeld-core is being run not as an installed package, it was
necessary to introduce 'initialize_default_nodes_distribution()' to
load nodes from the json file at startup so that the node prototypes
can be found.
Configuration, such as the redis URL, is looked up from
configuration using a 'get_config_value()' convenience function
which loads from this path until the value is found:
See https://github.com/sddj/minemeld-docker for the required base
files and setup instructions.