From afe2813b057cf114ed93eda93a1c944641cfb9cc Mon Sep 17 00:00:00 2001 From: Leonidas Poulopoulos <leopoul@noc.grnet.gr> Date: Wed, 19 Mar 2014 13:45:39 +0200 Subject: [PATCH] Alignment of application with Django 1.4 --- .gitignore | 3 +- accounts/admin.py | 37 ++-- accounts/models.py | 35 ++-- accounts/views.py | 39 ++-- context/global_vars.py | 22 ++- djangobackends/shibauthBackend.py | 33 ++-- flowspec/admin.py | 47 +++-- flowspec/forms.py | 39 ++-- flowspec/models.py | 37 ++-- flowspec/tasks.py | 35 ++-- flowspec/views.py | 46 +++-- flowspy/settings.py.dist | 306 ++++++++++++++++++++++++++++++ monkey_patch/forms.py | 2 +- monkey_patch/models.py | 2 +- peers/admin.py | 37 ++-- peers/models.py | 33 ++-- peers/views.py | 33 ++-- poller/application.py | 32 ++-- poller/urls.py | 2 +- poller/views.py | 39 ++-- templates/500.html | 4 +- templates/welcome.html | 2 +- utils/decorators.py | 33 ++-- utils/proxy.py | 43 +++-- utils/randomizer.py | 33 ++-- utils/whois.py | 35 ++-- 26 files changed, 648 insertions(+), 361 deletions(-) create mode 100644 flowspy/settings.py.dist diff --git a/.gitignore b/.gitignore index d819c9cd..0cfb2d80 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -settings.py +flowspy/settings.py *.pyc celerybeat-schedule *.log celery_var/ urls.py +*~ diff --git a/accounts/admin.py b/accounts/admin.py index 3572f029..d0b0c7a8 100644 --- a/accounts/admin.py +++ b/accounts/admin.py @@ -1,26 +1,25 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.contrib import admin -from flowspy.accounts.models import * +from accounts.models import * from django.contrib.auth.models import User -from flowspy.peers.models import * +from peers.models import * from django.conf import settings class UserPrAdmin(admin.ModelAdmin): diff --git a/accounts/models.py b/accounts/models.py index 933eb6b6..1f1c8094 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -1,25 +1,24 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.db import models from django.contrib.auth.models import User -from flowspy.peers.models import * +from peers.models import * class UserProfile(models.Model): diff --git a/accounts/views.py b/accounts/views.py index 456571bf..de2a4a90 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.conf import settings from django.core.mail import send_mail from django.contrib.sites.models import Site @@ -24,9 +23,9 @@ from django.shortcuts import render_to_response from django.template.context import RequestContext from django.template.loader import render_to_string from django.utils.translation import ugettext_lazy as _ -from flowspy.accounts.models import * -from flowspy.peers.models import * -from flowspy.flowspec.forms import * +from accounts.models import * +from peers.models import * +from flowspec.forms import * from registration.models import RegistrationProfile from registration.views import activate as registration_activate from django.views.decorators.cache import never_cache diff --git a/context/global_vars.py b/context/global_vars.py index c2c2ac07..9c12d08b 100644 --- a/context/global_vars.py +++ b/context/global_vars.py @@ -1,18 +1,20 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -# Copyright © 2010-2012 Greek Research and Technology Network (GRNET S.A.) -# +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD # TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, -# OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -# OF THIS SOFTWARE. +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. from django.conf import settings diff --git a/djangobackends/shibauthBackend.py b/djangobackends/shibauthBackend.py index d39b6ab5..592f73c6 100644 --- a/djangobackends/shibauthBackend.py +++ b/djangobackends/shibauthBackend.py @@ -1,23 +1,20 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: # vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. from django.contrib.auth.models import User, UserManager, Permission, Group diff --git a/flowspec/admin.py b/flowspec/admin.py index 0b52325e..5298edb1 100644 --- a/flowspec/admin.py +++ b/flowspec/admin.py @@ -1,35 +1,34 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. + from django.contrib import admin -from flowspy.flowspec.models import * -from flowspy.accounts.models import * +from flowspec.models import * +from accounts.models import * from utils import proxy as PR -from flowspec.tasks import * +from tasks import * from django.contrib.auth.models import User from django.contrib.auth.admin import UserAdmin -from flowspy.peers.models import * -from flowspy.flowspec.forms import * +from peers.models import * +from flowspec.forms import * import datetime from django.conf import settings -from flowspy.monkey_patch.forms import UserCreationForm, UserChangeForm +from monkey_patch.forms import UserCreationForm, UserChangeForm class RouteAdmin(admin.ModelAdmin): form = RouteForm diff --git a/flowspec/forms.py b/flowspec/forms.py index 28b51415..d6a45a0c 100644 --- a/flowspec/forms.py +++ b/flowspec/forms.py @@ -1,30 +1,29 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django import forms from django.utils.safestring import mark_safe from django.utils.translation import ugettext as _ from django.utils.translation import ugettext_lazy from django.template.defaultfilters import filesizeformat -from flowspy.flowspec.models import * -from flowspy.peers.models import * -from flowspy.accounts.models import * +from flowspec.models import * +from peers.models import * +from accounts.models import * from ipaddr import * from django.core.urlresolvers import reverse from django.contrib.auth.models import User diff --git a/flowspec/models.py b/flowspec/models.py index f80f8f1a..588a0e21 100644 --- a/flowspec/models.py +++ b/flowspec/models.py @@ -1,25 +1,20 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: # vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# - +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. from django.db import models from django.conf import settings @@ -32,9 +27,9 @@ import logging from time import sleep import beanstalkc -from flowspy.utils.randomizer import id_generator as id_gen +from utils.randomizer import id_generator as id_gen -from flowspec.tasks import * +from tasks import * FORMAT = '%(asctime)s %(levelname)s: %(message)s' logging.basicConfig(format=FORMAT) diff --git a/flowspec/tasks.py b/flowspec/tasks.py index b4011b7b..d3120575 100644 --- a/flowspec/tasks.py +++ b/flowspec/tasks.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. + from utils import proxy as PR from celery.task import task from celery.task.sets import subtask diff --git a/flowspec/views.py b/flowspec/views.py index f7d26dc1..4629d777 100644 --- a/flowspec/views.py +++ b/flowspec/views.py @@ -1,23 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# -# Create your views here. +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. + import urllib2 import socket import json @@ -37,21 +35,21 @@ from django.template.loader import get_template, render_to_string from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse from django.contrib import messages -from flowspy.accounts.models import * +from accounts.models import * from ipaddr import * from django.contrib.auth import authenticate, login from django.forms.models import model_to_dict -from flowspy.flowspec.forms import * -from flowspy.flowspec.models import * -from flowspy.peers.models import * +from flowspec.forms import * +from flowspec.models import * +from peers.models import * from registration.models import RegistrationProfile from copy import deepcopy -from flowspy.utils.decorators import shib_required +from utils.decorators import shib_required from django.views.decorators.cache import never_cache from django.conf import settings diff --git a/flowspy/settings.py.dist b/flowspy/settings.py.dist new file mode 100644 index 00000000..b91c35a6 --- /dev/null +++ b/flowspy/settings.py.dist @@ -0,0 +1,306 @@ +# -*- coding: utf-8 -*- vim:fileencoding=utf-8: +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab +# Django settings for flowspy project. +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. + +import os +import djcelery +djcelery.setup_loader() +from celery.schedules import crontab + +DEBUG = False +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + ('AdminName', 'adminmail@admin.com'), +) +MANAGERS = ADMINS +here = lambda x: os.path.join(os.path.abspath(os.path.dirname(__file__)), x) + + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. + 'NAME': 'flowspy', # Or path to database file if using sqlite3. + 'USER': 'root', # Not used with sqlite3. + 'PASSWORD': 'ndo', # Not used with sqlite3. + 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. + 'PORT': '', # Set to empty string for default. Not used with sqlite3. + } +} + +# Hosts/domain names that are valid for this site; required if DEBUG is False +# See https://docs.djangoproject.com/en/1.4/ref/settings/#allowed-hosts +ALLOWED_HOSTS = [] + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# In a Windows environment this must be set to your system time zone. +TIME_ZONE = 'Europe/Athens' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +_ = lambda s: s + +LANGUAGES = ( + ('el', _('Greek')), + ('en', _('English')), +) + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en' + +SITE_ID = 1 + +# If you set this to False, Django will make some optimizations so as not +# to load the internationalization machinery. +USE_I18N = True + +# If you set this to False, Django will not format dates, numbers and +# calendars according to the current locale. +USE_L10N = True + +# If you set this to False, Django will not use timezone-aware datetimes. +USE_TZ = True + +# Absolute filesystem path to the directory that will hold user-uploaded files. +# Example: "/home/media/media.lawrence.com/media/" +MEDIA_ROOT = '' + +# URL that handles the media served from MEDIA_ROOT. Make sure to use a +# trailing slash. +# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" +MEDIA_URL = '' + +# Absolute path to the directory static files should be collected to. +# Don't put anything in this directory yourself; store your static files +# in apps' "static/" subdirectories and in STATICFILES_DIRS. +# Example: "/home/media/media.lawrence.com/static/" +STATIC_ROOT = '/home/leopoul/projects/flowspy/static' + +# URL prefix for static files. +# Example: "http://media.lawrence.com/static/" +STATIC_URL = 'https://fod.netdev2/grnet.gr/static/' + +# Additional locations of static files +STATICFILES_DIRS = ( + # Put strings here, like "/home/html/static" or "C:/www/django/static". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. +) + +# List of finder classes that know how to find static files in +# various locations. +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', +# 'django.contrib.staticfiles.finders.DefaultStorageFinder', +) + +# Make this unique, and don't share it with anybody. +SECRET_KEY = '<PLACE RANDOM CHARS HERE>eg. @@5234#$%345345^@#$%*()123^@12!&!()$JMNDF#$@(@#8FRNJWX_' + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', +# 'django.template.loaders.eggs.Loader', +) + +TEMPLATE_CONTEXT_PROCESSORS = ( + "django.contrib.auth.context_processors.auth", + "django.core.context_processors.debug", + "django.core.context_processors.i18n", + "django.core.context_processors.media", + "django.contrib.messages.context_processors.messages", + "flowspy.context.global_vars.settings_vars", +) + +MIDDLEWARE_CLASSES = ( + 'django.middleware.cache.UpdateCacheMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + # Uncomment the next line for simple clickjacking protection: + # 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.cache.FetchFromCacheMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', +) + +ROOT_URLCONF = 'flowspy.urls' + +# Python dotted path to the WSGI application used by Django's runserver. +WSGI_APPLICATION = 'flowspy.wsgi.application' + +AUTHENTICATION_BACKENDS = ( + 'djangobackends.shibauthBackend.shibauthBackend', + 'django.contrib.auth.backends.ModelBackend', +) + +TEMPLATE_DIRS = ( + '/path/to/templates/', + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. +) + +INSTALLED_APPS = ( + 'monkey_patch', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'flowspec', + 'poller', + 'south', + # Uncomment the next line to enable the admin: + # 'django.contrib.admin', + # Uncomment the next line to enable admin documentation: + # 'django.contrib.admindocs', + 'djcelery', + 'peers', + 'registration', + 'accounts', + 'tinymce', +) + +# A sample logging configuration. The only tangible logging +# performed by this configuration is to send an email to +# the site admins on every HTTP 500 error when DEBUG=False. +# See http://docs.djangoproject.com/en/dev/topics/logging for +# more details on how to customize your logging configuration. +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'filters': { + 'require_debug_false': { + '()': 'django.utils.log.RequireDebugFalse' + } + }, + 'handlers': { + 'mail_admins': { + 'level': 'ERROR', + 'filters': ['require_debug_false'], + 'class': 'django.utils.log.AdminEmailHandler' + } + }, + 'loggers': { + 'django.request': { + 'handlers': ['mail_admins'], + 'level': 'ERROR', + 'propagate': True, + }, + } +} + +LOGIN_URL = '/fod/welcome' + +CACHE_BACKEND = "memcached://127.0.0.1:11211/?timeout=3600" + +AUTH_PROFILE_MODULE = 'accounts.UserProfile' + +NETCONF_DEVICE = "" +NETCONF_USER = "" +NETCONF_PASS = "" +NETCONF_PORT = 830 + +ROUTES_FILTER = "<configuration><routing-options><flow/></routing-options></configuration>" +ROUTE_FILTER = "<configuration><routing-options><flow><route><name>%s</name></route></flow></routing-options></configuration>" +COMMIT_CONFIRMED_TIMEOUT = "120" +EXPIRATION_DAYS_OFFSET = 7 +COMMIT = True + +USE_X_FORWARDED_HOST = True + +BROKER_HOST = "localhost" +BROKER_PORT = 11300 +POLLS_TUBE = 'polls' + +BROKER_VHOST = "/" +CELERY_CONCURRENCY = 1 + +# List of modules to import when celery starts. +CELERY_IMPORTS = ("flowspec.tasks", ) + +SERVER_EMAIL = "Example FoD Service <noreply@example.com>" +EMAIL_SUBJECT_PREFIX = "[FoD] " + +LOG_FILE_LOCATION = here("log") + +EXPIRATION_NOTIFY_DAYS = 4 +PREFIX_LENGTH = 29 +POLL_SESSION_UPDATE = 60.0 + +BROKER_URL = "beanstalk://localhost:11300//" + +SHIB_AUTH_ENTITLEMENT = 'urn:mace' +SHIB_ADMIN_DOMAIN = 'grnet.gr' +SHIB_LOGOUT_URL = 'https://example.com/Shibboleth.sso/Logout' + +# BCC mail addresses +NOTIFY_ADMIN_MAILS = ["admin@admin.com"] + +UI_USER_THEN_ACTIONS = ['discard', 'rate-limit'] +UI_USER_PROTOCOLS = ['icmp', 'tcp', 'udp'] + +PROTECTED_SUBNETS = ['10.10.0.0/16'] + +CELERYBEAT_SCHEDULE = { + "every-day-sync": { + "task": "flowspec.tasks.check_sync", + "schedule": crontab(minute=01, hour=01), + "args": (), + }, + "notify-expired": { + "task": "flowspec.tasks.notify_expired", + "schedule": crontab(minute=01, hour=02), + "args": (), + }, +} +# whois +PRIMARY_WHOIS = 'whois.example.com' +ALTERNATE_WHOIS = 'whois.example.net' + +ACCOUNT_ACTIVATION_DAYS = 7 + +#Shibboleth attribute map +SHIB_USERNAME = ['HTTP_EPPN'] +SHIB_MAIL = ['mail', 'HTTP_MAIL', 'HTTP_SHIB_INETORGPERSON_MAIL'] +SHIB_FIRSTNAME = ['HTTP_SHIB_INETORGPERSON_GIVENNAME'] +SHIB_LASTNAME = ['HTTP_SHIB_PERSON_SURNAME'] +SHIB_ENTITLEMENT = ['HTTP_SHIB_EP_ENTITLEMENT'] + +TINYMCE_JS_URL = STATIC_URL +'js/tinymce/tiny_mce.js' + +TINYMCE_DEFAULT_CONFIG = { + 'extended_valid_elements' : 'iframe[src|width|height|name|align]', + 'plugins': "table,spellchecker,paste,searchreplace", + 'theme': "advanced", +} + +import _version +SW_VERSION = _version.VERSION + +LOG_FILE_LOCATION = here("../log") + + diff --git a/monkey_patch/forms.py b/monkey_patch/forms.py index 81a780be..d00e9c63 100644 --- a/monkey_patch/forms.py +++ b/monkey_patch/forms.py @@ -3,7 +3,7 @@ from django.core.validators import MaxLengthValidator from django.contrib.auth import forms as auth_forms from django import forms -from flowspy.monkey_patch import MAX_USERNAME_LENGTH +from monkey_patch import MAX_USERNAME_LENGTH def update_username_field(field): field.widget.attrs['maxlength'] = MAX_USERNAME_LENGTH() diff --git a/monkey_patch/models.py b/monkey_patch/models.py index 9cfa3670..9847b4f7 100644 --- a/monkey_patch/models.py +++ b/monkey_patch/models.py @@ -1,7 +1,7 @@ from django.utils.translation import ugettext as _ from django.db.models.signals import class_prepared from django.core.validators import MaxLengthValidator -from flowspy.monkey_patch import MAX_USERNAME_LENGTH +from monkey_patch import MAX_USERNAME_LENGTH def longer_username(sender, *args, **kwargs): if sender.__name__ == "User" and sender.__module__ == "django.contrib.auth.models": diff --git a/peers/admin.py b/peers/admin.py index 7c8856f4..d9b2df18 100644 --- a/peers/admin.py +++ b/peers/admin.py @@ -1,26 +1,25 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.contrib import admin -from flowspy.peers.models import * -from flowspy.flowspec.forms import * +from peers.models import * +from flowspec.forms import * from django.conf import settings from django.forms import ModelForm from django.contrib.admin.widgets import FilteredSelectMultiple diff --git a/peers/models.py b/peers/models.py index 386c0cfd..6760d13b 100644 --- a/peers/models.py +++ b/peers/models.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.db import models from utils.whois import * from django.contrib.auth.models import User diff --git a/peers/views.py b/peers/views.py index 6cb84643..7990644a 100644 --- a/peers/views.py +++ b/peers/views.py @@ -1,20 +1,17 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# -# Create your views here. +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. diff --git a/poller/application.py b/poller/application.py index d71251a1..635dfd16 100644 --- a/poller/application.py +++ b/poller/application.py @@ -1,22 +1,20 @@ -#!/usr/bin/python # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. from gevent import monkey; monkey.patch_all() import os diff --git a/poller/urls.py b/poller/urls.py index 79691972..83054751 100644 --- a/poller/urls.py +++ b/poller/urls.py @@ -20,7 +20,7 @@ from django.conf.urls.defaults import * from django.conf import settings -urlpatterns = patterns('flowspy.poller.views', +urlpatterns = patterns('poller.views', ('^$', 'main'), url('^message/existing$', 'message_existing', name='fetch-existing'), url('^message/new$', 'message_new',name='fetch-new'), diff --git a/poller/views.py b/poller/views.py index aa5d1212..3ae6d5e0 100644 --- a/poller/views.py +++ b/poller/views.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) - -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. + from gevent import monkey monkey.patch_all() from gevent.pool import Pool @@ -108,6 +107,10 @@ class Msgs(object): self.user_cursor[user] = self.user_cache[user][-2]['id'] if len(self.user_cache[user]) > self.cache_size: self.user_cache[user] = self.user_cache[user][-self.cache_size:] + try: + assert(self.new_message_user_event[user]) + except: + self.new_message_user_event[user] = Event() self.new_message_user_event[user].set() self.new_message_user_event[user].clear() return json_response(msg) diff --git a/templates/500.html b/templates/500.html index 7d36bba5..3db3dc86 100644 --- a/templates/500.html +++ b/templates/500.html @@ -150,7 +150,7 @@ h3 { </head><body> <div id="main"> <div id="header"> - <a class="grnetlogo" href="https://netdev.grnet.gr/fod"> + <a class="grnetlogo" href="#"> <img class="logoimg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAABQCAYAAACEYZ66AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A /wD/oL2nkwAAAAlwSFlzAAAewgAAHsIBbtB1PgAAAAd0SU1FB9sLEhAJG35sOZwAACAASURBVHja 7b15eCRnde//OW9VdbekkUYjzWqPZ8bL2B7b4AXjDdvsexLWJFwuS7BHMoQkhJvcJcsNyS8heUgu @@ -386,7 +386,7 @@ Wbdx7IF16RVXXGEhmpeWvub/PNv/A0AT9Jar6VSkAAAAAElFTkSuQmCC"> </a> <div id="title"> - <a href="https://netdev.grnet.gr/fod">Firewall on Demand</a> + <a href="#">Firewall on Demand</a> </div> diff --git a/templates/welcome.html b/templates/welcome.html index d87fabc4..a8b8c0ed 100644 --- a/templates/welcome.html +++ b/templates/welcome.html @@ -9,7 +9,7 @@ <iframe width="640" height="360" src="https://www.youtube.com/embed/VZy7DG8sjSk?rel=0" frameborder="0" allowfullscreen></iframe> </p> - <p>{% blocktrans %}Welcome to GRNET's FoD service.{% endblocktrans %}</p> + <p>{% blocktrans %}Welcome to GRNET's FoD service{{STATIC_URL}}fas.{% endblocktrans %}</p> </div> <div class="row-fluid"> <div class="span4 well"><h3>{% trans "What" %}?</h3><hr> diff --git a/utils/decorators.py b/utils/decorators.py index f6a3733d..d57d6b85 100644 --- a/utils/decorators.py +++ b/utils/decorators.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# from django.http import HttpResponseRedirect from django.core.urlresolvers import reverse diff --git a/utils/proxy.py b/utils/proxy.py index 6a465620..b4000cee 100644 --- a/utils/proxy.py +++ b/utils/proxy.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# import nxpy as np from ncclient import manager from ncclient.transport.errors import AuthenticationError, SSHError @@ -45,17 +44,18 @@ def fod_unknown_host_cb(host, fingerprint): return True class Retriever(object): - def __init__(self, device=settings.NETCONF_DEVICE, username=settings.NETCONF_USER, password=settings.NETCONF_PASS, filter=settings.ROUTES_FILTER, route_name=None, xml=None): + def __init__(self, device=settings.NETCONF_DEVICE, username=settings.NETCONF_USER, password=settings.NETCONF_PASS, filter=settings.ROUTES_FILTER, port=settings.NETCONF_PORT, route_name=None, xml=None): self.device = device self.username = username self.password = password + self.port = port self.filter = filter self.xml = xml if route_name: self.filter = settings.ROUTE_FILTER%route_name def fetch_xml(self): - with manager.connect(host=self.device, port=830, username=self.username, password=self.password, unknown_host_cb=fod_unknown_host_cb) as m: + with manager.connect(host=self.device, port=self.port, username=self.username, password=self.password, unknown_host_cb=fod_unknown_host_cb) as m: xmlconfig = m.get_config(source='running', filter=('subtree',self.filter)).data_xml return xmlconfig @@ -84,12 +84,13 @@ class Retriever(object): return False class Applier(object): - def __init__(self, route_objects = [], route_object=None, device=settings.NETCONF_DEVICE, username=settings.NETCONF_USER, password=settings.NETCONF_PASS): + def __init__(self, route_objects = [], route_object=None, device=settings.NETCONF_DEVICE, username=settings.NETCONF_USER, password=settings.NETCONF_PASS, port=settings.NETCONF_PORT): self.route_object = route_object self.route_objects = route_objects self.device = device self.username = username self.password = password + self.port = port def to_xml(self, operation=None): logger.info("Operation: %s"%operation) @@ -269,4 +270,4 @@ def parsexml_(*args, **kwargs): kwargs['parser'] = ET.ETCompatXMLParser() doc = ET.parse(*args, **kwargs) return doc - \ No newline at end of file + diff --git a/utils/randomizer.py b/utils/randomizer.py index d19f4307..22dcf9f6 100644 --- a/utils/randomizer.py +++ b/utils/randomizer.py @@ -1,22 +1,21 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# import string import random diff --git a/utils/whois.py b/utils/whois.py index b612492e..e9edb918 100644 --- a/utils/whois.py +++ b/utils/whois.py @@ -1,26 +1,25 @@ -# # -*- coding: utf-8 -*- vim:fileencoding=utf-8: -#Copyright © 2011-2013 Greek Research and Technology Network (GRNET S.A.) +# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab + +# Copyright © 2011-2014 Greek Research and Technology Network (GRNET S.A.) +# Copyright © 2011-2014 Leonidas Poulopoulos (@leopoul) +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +# SOFTWARE. -#Developed by Leonidas Poulopoulos (leopoul-at-noc-dot-grnet-dot-gr), -#GRNET NOC -# -#Permission to use, copy, modify, and/or distribute this software for any -#purpose with or without fee is hereby granted, provided that the above -#copyright notice and this permission notice appear in all copies. -# -#THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD -#TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -#FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -#CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -#ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -#SOFTWARE. -# import socket from ipaddr import * import re -import settings +from django.conf import settings def query(query, hostname, flags): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -- GitLab