Skip to main content

OpenWISP 2 Controller

Project description

https://travis-ci.org/openwisp/openwisp-controller.svg https://coveralls.io/repos/openwisp/openwisp-controller/badge.svg Requirements Status https://badge.fury.io/py/openwisp-controller.svg

OpenWISP 2 controller module (built using Python and the Django web-framework).



Deploy it in production

An automated installer is available at ansible-openwisp2.

Dependencies

  • Python 2.7 or Python >= 3.4

  • OpenSSL

Install stable version from pypi

Install from pypi:

pip install openwisp-controller

Install development version

Install tarball:

pip install https://github.com/openwisp/openwisp-controller/tarball/master

Alternatively you can install via pip using git:

pip install -e git+git://github.com/openwisp/openwisp-controller#egg=openwisp_controller

If you want to contribute, install your cloned fork:

git clone git@github.com:<your_fork>/openwisp-controller.git
cd openwisp_controller
python setup.py develop

Setup (integrate in an existing django project)

INSTALLED_APPS and EXTENDED_APPS (an internal openwisp2 setting) in settings.py should look like the following (ordering is important):

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # all-auth
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'django_extensions',
    # openwisp2 modules
    'openwisp_users',
    'openwisp_controller.pki',
    'openwisp_controller.config',
    # admin
    'django_netjsonconfig.admin_theme',
    'django.contrib.admin',
    # other dependencies
    'sortedm2m',
    'reversion',
]

EXTENDED_APPS = ('django_netjsonconfig', 'django_x509')

Add openwisp_utils.staticfiles.DependencyFinder to STATICFILES_FINDERS in your settings.py

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'openwisp_utils.staticfiles.DependencyFinder',
]

Add openwisp_utils.loaders.DependencyLoader to TEMPLATES in your settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'OPTIONS': {
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
                # add the following line
                'openwisp_utils.loaders.DependencyLoader'
            ],
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    }
]

Add the following settings to settings.py:

LOGIN_REDIRECT_URL = 'admin:index'
ACCOUNT_LOGOUT_REDIRECT_URL = LOGIN_REDIRECT_URL

urls.py:

from django.conf import settings
from django.conf.urls import include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

from openwisp_utils.admin_theme.admin import admin, openwisp_admin

openwisp_admin()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('openwisp_controller.urls')),
]

urlpatterns += staticfiles_urlpatterns()

Installing for development

Install sqlite:

sudo apt-get install sqlite3 libsqlite3-dev openssl libssl-dev

Install your forked repo:

git clone git://github.com/<your_fork>/django-netjsonconfig
cd django-netjsonconfig/
python setup.py develop

Install test requirements:

pip install -r requirements-test.txt

Create database:

cd tests/
./manage.py migrate
./manage.py createsuperuser

Set EMAIL_PORT in settings.py to a port number (eg: 1025):

EMAIL_PORT = '1025'

Launch development server and SMTP debugging server:

./manage.py runserver
# open another terminal and run
python -m smtpd -n -c DebuggingServer localhost:1025

You can access the admin interface at http://127.0.0.1:8000/admin/.

Run tests with:

./runtests.py

Talks

Contributing

  1. Announce your intentions in the OpenWISP Mailing List

  2. Fork this repo and install it

  3. Follow PEP8, Style Guide for Python Code

  4. Write code

  5. Write tests for your code

  6. Ensure all tests pass

  7. Ensure test coverage does not decrease

  8. Document your changes

  9. Send pull request

Changelog

See CHANGES.

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openwisp-controller-0.2.3.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

openwisp_controller-0.2.3-py2.py3-none-any.whl (41.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file openwisp-controller-0.2.3.tar.gz.

File metadata

File hashes

Hashes for openwisp-controller-0.2.3.tar.gz
Algorithm Hash digest
SHA256 445d37ae4cd752bc0b38dc6cd0be55b5c2e694d8dccdc84fa9411a482bee3fb5
MD5 67b2e345d0d4e17c6b45ffa1d82b09a2
BLAKE2b-256 586b189987c97762c6064a037c3b4eb996259329e24e51f4905fd16a4a7764e2

See more details on using hashes here.

File details

Details for the file openwisp_controller-0.2.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for openwisp_controller-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0e8b2445acfec510e7b0dc4b383020f67ed4f0330698c7e0d98ce8f924d0143d
MD5 08eb1e8cae56ac35ccdc22f0eb781c42
BLAKE2b-256 9307d0a6e5c5ddf59484b397b22b953e9808465f981f05b9568c270e33f66eea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page