Beispiel #1
0
    def login(self):
        """ Show login form.
        """

        if request.method != 'POST':
            cfg = NipapConfig()
            try:
                c.welcome_message = cfg.get('www', 'welcome_message')
            except NoOptionError:
                pass

            return render('login.html')

        # Verify username and password.
        auth_fact = AuthFactory()
        auth = auth_fact.get_auth(request.params.get('username'),
                                  request.params.get('password'), 'nipap')
        if not auth.authenticate():
            c.error = 'Invalid username or password'
            return render('login.html')

        # Mark user as logged in
        session['user'] = auth.username
        session['full_name'] = auth.full_name
        session['readonly'] = auth.readonly
        session['current_vrfs'] = {}
        session.save()

        # Send user back to the page he originally wanted to get to
        if session.get('path_before_login'):
            redirect(session['path_before_login'])

        else:
            # if previous target is unknown just send the user to a welcome page
            redirect(url(controller='prefix', action='list'))
Beispiel #2
0
    def edit(self, id):
        """ Edit a pool.
        """

        c.pool = Pool.get(int(id))
        c.prefix_list = Prefix.list({'pool_id': c.pool.id})
        c.prefix = ''

        # save changes to NIPAP
        if request.method == 'POST':
            c.pool.name = request.params['name']
            c.pool.description = request.params['description']
            c.pool.default_type = request.params['default_type']
            if request.params['ipv4_default_prefix_length'].strip() == '':
                c.pool.ipv4_default_prefix_length = None
            else:
                c.pool.ipv4_default_prefix_length = request.params[
                    'ipv4_default_prefix_length']
            if request.params['ipv6_default_prefix_length'].strip() == '':
                c.pool.ipv6_default_prefix_length = None
            else:
                c.pool.ipv6_default_prefix_length = request.params[
                    'ipv6_default_prefix_length']
            c.pool.save()
            redirect(url(controller='pool', action='list'))

        c.search_opt_parent = 'all'
        c.search_opt_child = 'none'

        return render("/pool_edit.html")
Beispiel #3
0
    def list(self):
        """ Prefix list.
        """

        c.search_opt_parent = "all"
        c.search_opt_child = "none"

        return render('/prefix_list.html')
Beispiel #4
0
    def logout(self):
        """ Log out the user and display a confirmation message.
        """

        # remove session
        session.delete()

        return render('login.html')
Beispiel #5
0
    def edit(self, id):
        """ Edit a prefix.
        """

        # find prefix
        c.prefix = Prefix.get(int(id))

        # we got a HTTP POST - edit object
        if request.method == 'POST':
            c.prefix.prefix = request.params['prefix_prefix']
            c.prefix.description = request.params['prefix_description']

            if request.params['prefix_node'].strip() == '':
                c.prefix.node = None
            else:
                c.prefix.node = request.params['prefix_node']

            if request.params['prefix_country'].strip() == '':
                c.prefix.country = None
            else:
                c.prefix.country = request.params['prefix_country']

            if request.params['prefix_comment'].strip() == '':
                c.prefix.comment = None
            else:
                c.prefix.comment = request.params['prefix_comment']

            if request.params['prefix_order_id'].strip() == '':
                c.prefix.order_id = None
            else:
                c.prefix.order_id = request.params['prefix_order_id']

            if request.params['prefix_customer_id'].strip() == '':
                c.prefix.customer_id = None
            else:
                c.prefix.customer_id = request.params['prefix_customer_id']

            if request.params['prefix_vrf'].strip() == '':
                c.prefix.vrf = None
            else:
                # TODO: handle non-existent VRF...
                c.prefix.vrf = VRF.list({'rt':
                                         request.params['prefix_vrf']})[0]

            if request.params.get('prefix_monitor') != None:
                c.prefix.monitor = True
            else:
                c.prefix.monitor = False

            c.prefix.alarm_priority = request.params['prefix_alarm_priority']
            c.prefix.save()
            redirect(url(controller='prefix', action='list'))

        return render('/prefix_edit.html')
Beispiel #6
0
    def remove(self, id):
        """ Remove a prefix.
        """

        # find prefix
        c.prefix = Prefix.get(int(id))

        if 'confirmed' not in request.params:
            return render('/prefix_remove_confirm.html')

        c.prefix.remove()
        redirect(url(controller='prefix', action='list'))
Beispiel #7
0
    def index(self):
        """ Display NIPAP version info
        """
        c.pynipap_version = pynipap.__version__
        try:
            c.nipapd_version = pynipap.nipapd_version()
        except:
            c.nipapd_version = 'unknown'

        c.nipap_db_version = pynipap.nipap_db_version()

        return render('/version.html')
Beispiel #8
0
    def add(self):
        """ Add a prefix.
        """

        # pass prefix to template - if we have any
        if 'prefix' in request.params:
            c.prefix = request.params['prefix']
        else:
            c.prefix = ''

        c.search_opt_parent = "all"
        c.search_opt_child = "none"

        return render('/prefix_add.html')
Beispiel #9
0
    def add(self):
        """ Add a new VRF.
        """

        c.action = 'add'

        if 'action' in request.params:
            if request.params['action'] == 'add':
                v = VRF()
                if request.params['rt'].strip() != '':
                    v.rt = request.params['rt']
                if request.params['name'].strip() != '':
                    v.name = request.params['name']
                v.description = request.params['description']

                v.save()
                redirect(url(controller='vrf', action='list'))

        return render('/vrf_add.html')
Beispiel #10
0
    def add(self):
        """ Add a pool.
        """

        # Adding to NIPAP
        if request.method == 'POST':
            p = Pool()
            p.name = request.params.get('name')
            p.description = request.params.get('description')
            p.default_type = request.params.get('default_type')

            if request.params['ipv4_default_prefix_length'].strip() != '':
                p.ipv4_default_prefix_length = request.params[
                    'ipv4_default_prefix_length']

            if request.params['ipv6_default_prefix_length'].strip() != '':
                p.ipv6_default_prefix_length = request.params[
                    'ipv6_default_prefix_length']

            p.save()
            redirect(url(controller='pool', action='list'))

        return render("/pool_add.html")
Beispiel #11
0
    def edit(self, id):
        """ Edit a VRF
        """

        c.action = 'edit'
        c.edit_vrf = VRF.get(int(id))

        # Did we have any action passed to us?
        if 'action' in request.params:

            if request.params['action'] == 'edit':
                if request.params['rt'].strip() == '':
                    c.edit_vrf.rt = None
                else:
                    c.edit_vrf.rt = request.params['rt'].strip()

                if request.params['name'].strip() == '':
                    c.edit_vrf.name = None
                else:
                    c.edit_vrf.name = request.params['name'].strip()
                c.edit_vrf.description = request.params['description']
                c.edit_vrf.save()

        return render('/vrf_edit.html')
Beispiel #12
0
    def list(self):
        """ Displays a list of pools.
        """

        return render('/pool_list.html')
Beispiel #13
0
 def vrf(self):
     """ Action for handling the vrf-section
     """
     return render('/ng-vrf.html')
Beispiel #14
0
 def prefix(self):
     """ Action for handling the prefix-section
     """
     return render('/ng-prefix.html')
Beispiel #15
0
 def pool(self):
     """ Action for handling the pool-section
     """
     return render('/ng-pool.html')
Beispiel #16
0
    def list(self):
        """ List VRFs.
        """

        return render('/vrf_list.html')