A colony of interacting processes

Overview

NColony

Infrastructure for running "colonies" of processes.

https://travis-ci.org/ncolony/ncolony.svg?branch=master Documentation Status

Hacking

$ tox

Should DTRT -- if it passes, it means unit tests are passing, and 100% coverage. Note that Travis-CI will automatically run tests on pull requests.

Please feel free to submit pull requests which are failing. However, they cannot be merged until the they are green in Travis-CI.

Release

  • Checkout a new branch
  • Run python -m incremental.update ncolony to update the version number.
  • Create a pull request
  • Merge the pull request
  • Run tox
  • Run twine upload build/tox/py27-wheel/tmp/dist/*

Contributors

Moshe Zadka <[email protected]> Mark Williams <[email protected]>

License

MIT License

Comments
  • fix pylint error

    fix pylint error

    We pin pylint to the current latest, and fix the current problems.

    PyLint adds new issues every release -- this lets us choose when we get them instead of bitrotting.

    opened by moshez 1
  • Port to Python 3.6 compatibility

    Port to Python 3.6 compatibility

    The usual stuff (six, unicode carefulness, print()) plus:

    • Move to incremental, versioneer had weird problems on 3.6
    • im_self/self for methods
    • Move to saner way of testing functions, required code changes
    opened by moshez 1
  • let environment pass to sub-processes

    let environment pass to sub-processes

    docker ENV has this handy syntax to let you reference the previous value of an env-var

    PATH=/mystuff/bin/:${PATH}
    

    Something like that would be nice. Or, perhaps alternatively, the ability to mark the whole environment or certain variables as pass-through. (PATH, PYTHONPATH, things like that).

    opened by kurtbrose 1
  • Add example: a full app

    Add example: a full app

    Write a simple hello-world klein app that reports web statistics to statsd, and run an example with a beat-based health-check and HTTP-based check, a statsd server, a carbon server, and a graphite server which allows monitoring of the app.

    opened by moshez 1
  • ncolony-schedule and ncolony-beatcheck don't beat

    ncolony-schedule and ncolony-beatcheck don't beat

    In ncolony/schedulelib.py service, and ncolony/beatcheck.py service, the services need to look for an NCOLONY_CONFIG environment variable, and if one is found then to start a service that beats.

    opened by moshez 1
  • Remove extraneous `gather` dependencies from tox.ini

    Remove extraneous `gather` dependencies from tox.ini

    Per https://github.com/ncolony/ncolony/pull/61#issuecomment-351845310, no tox test environment needs to depend on gather, because ncolony itself depends on it.

    opened by markrwilliams 0
  • Narrative docs

    Narrative docs

    • Explain python -m ncolony.ctl/"from ncolony import ctllib"/create JSON files options.
    • Explain each field. Give thorough examples.
    • Explain --messages/--config
    • Show a run through of starting up a system, recovering from problems and restarting things.
    opened by moshez 0
  • demo examples don't work

    demo examples don't work

    (venv) => twistd -n ncolony --messages messages --config conf 2018-09-30T09:38:09-0700 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 18.7.0 (/Users/nona/projects/ncolony_test/venv/bin/python 2.7.10) starting up. 2018-09-30T09:38:09-0700 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.

    Good so far... but then (and right from the example here https://ncolony.readthedocs.io/en/latest/running.html#running-ncolony):

    (venv) => python -m ncolony ctl add my-cat-program --cmd cat usage: main.py [-h] --messages MESSAGES --config CONFIG {restart-all,restart,remove,add} ... main.py: error: argument --messages is required

    Fiddling with arguments specified in the trace doesn't seem to work.

    Suggestions welcomed.

    opened by minskmaz 2
  • Can't add a command with no arguments

    Can't add a command with no arguments

    $ python -m ncolony ctl --messages /tmp/message --config /tmp/config add test --cmd date
    Traceback (most recent call last):
      File "/home/mrw/.pyenv/versions/2.7.13/lib/python2.7/runpy.py", line 174, in _run_module_as_main
        "__main__", fname, loader, pkg_name)
      File "/home/mrw/.pyenv/versions/2.7.13/lib/python2.7/runpy.py", line 72, in _run_code
        exec code in run_globals
      File "/home/mrw/src/python/ncolony/ncolony/__main__.py", line 21, in <module>
        output=sys.stdout
      File "/home/mrw/.virtualenvs/ncolony/lib/python2.7/site-packages/gather/api.py", line 200, in run
        commands[argv[0]](argv)
      File "ncolony/ctllib.py", line 212, in main
        call(ns)
      File "ncolony/ctllib.py", line 175, in call
        func(places, **results)
      File "ncolony/ctllib.py", line 72, in add
        args = [cmd]+args
    TypeError: can only concatenate list (not "NoneType") to list
    

    That's because argparse's append action allows its target value to default to None.

    opened by markrwilliams 0
Releases(0.0.2)
A cpp project template that uses CMake to build and Google Test / Github Actions to provide a CI

A cpp project template that uses CMake to build and Google Test / Github Actions to provide a CI

Martin Olivier 6 Nov 17, 2022
Kubediff: a tool for Kubernetes to show differences between running state and version controlled configuration.

Kubediff: a tool for Kubernetes to show differences between running state and version controlled configuration.

Weaveworks 1.1k Dec 30, 2022
Manage your azure VM easily!

Azure-manager Manage your VM in Azure using cookies.

Team 1injex 129 Dec 17, 2022
Micro Data Lake based on Docker Compose

Micro Data Lake based on Docker Compose This is the implementation of a Minimum Data Lake

Abel Coronado 15 Jan 07, 2023
Docker Container wallstreetbets-sentiment-analysis

Docker Container wallstreetbets-sentiment-analysis A docker container using restful endpoints exposed on port 5000 "/analyze" to gather sentiment anal

145 Nov 22, 2022
Cobbler is a versatile Linux deployment server

Cobbler Cobbler is a Linux installation server that allows for rapid setup of network installation environments. It glues together and automates many

Cobbler 2.4k Dec 24, 2022
Travis CI testing a Dockerfile based on Palantir's remix of Apache Cassandra, testing IaC, and testing integration health of Debian

Testing Palantir's remix of Apache Cassandra with Snyk & Travis CI This repository is to show Travis CI testing a Dockerfile based on Palantir's remix

Montana Mendy 1 Dec 20, 2021
MicroK8s is a small, fast, single-package Kubernetes for developers, IoT and edge.

MicroK8s The smallest, fastest Kubernetes Single-package fully conformant lightweight Kubernetes that works on 42 flavours of Linux. Perfect for: Deve

Ubuntu 7.1k Jan 08, 2023
Simple ssh overlay for easy, remote server management written in Python GTK with paramiko

Simple "ssh" overlay for easy, remote server management written in Python GTK with paramiko

kłapouch 3 May 01, 2022
Azure plugins for Feast (FEAture STore)

Feast on Azure This project provides resources to enable running a feast feature store on Azure. Feast Azure Provider The Feast Azure provider acts li

Microsoft Azure 70 Dec 31, 2022
framework providing automatic constructions of vulnerable infrastructures

中文 | English 1 Introduction Metarget = meta- + target, a framework providing automatic constructions of vulnerable infrastructures, used to deploy sim

rambolized 685 Dec 28, 2022
A simple python application for running a CI pipeline locally This app currently supports GitLab CI scripts

🏃 Simple Local CI Runner 🏃 A simple python application for running a CI pipeline locally This app currently supports GitLab CI scripts ⚙️ Setup Inst

Tom Stowe 0 Jan 11, 2022
Emissary - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

Emissary-ingress Emissary-Ingress is an open-source Kubernetes-native API Gateway + Layer 7 load balancer + Kubernetes Ingress built on Envoy Proxy. E

Emissary Ingress 4k Dec 31, 2022
Ajenti Core and stock plugins

Ajenti is a Linux & BSD modular server admin panel. Ajenti 2 provides a new interface and a better architecture, developed with Python3 and AngularJS.

Ajenti Project 7k Jan 03, 2023
A collection of beginner-friendly DevOps content

mansion Mansion is just a testing repo for learners to commit into open source project. These are the steps you need to learn: Please do not edit thes

Bryan Lim 62 Nov 30, 2022
🐳 RAUDI: Regularly and Automatically Updated Docker Images

🐳 RAUDI: Regularly and Automatically Updated Docker Images RAUDI (Regularly and Automatically Updated Docker Images) automatically generates and keep

SecSI 534 Dec 29, 2022
Bash-based Python-venv convenience wrapper

venvrc Bash-based Python-venv convenience wrapper. Demo Install Copy venvrc file to ~/.venvrc, and add the following line to your ~/.bashrc file: # so

1 Dec 29, 2022
Lima is an alternative to using Docker Desktop on your Mac.

lima-xbar-plugin Table of Contents Description Installation Dependencies Lima is an alternative to using Docker Desktop on your Mac. Description This

Joe Block 68 Dec 22, 2022
A colony of interacting processes

NColony Infrastructure for running "colonies" of processes. Hacking $ tox Should DTRT -- if it passes, it means unit tests are passing, and 100% cover

23 Apr 04, 2022