示例#1
0
    def index(self):
        domains = self._get_domains()
        form = self._generate_domain_form()

        log()
        return render_template('domains/index.html', page_tite='All Domains', page_heading='All Domains',
                               domains=domains, form=form)
示例#2
0
 def _new_server_return(self, cluster):
     form = ServerForm()
     log()
     return render_template('servers/new.html',
                            page_heading='New Server',
                            page_title='New Server',
                            form=form,
                            cluster=cluster)
示例#3
0
 def get(self, domain_name):
     domain = self._get_domain(domain_name=domain_name)
     if not domain:
         flash('Domain not found', 'error')
         return redirect(url_for('Domains:index'))
     log()
     return render_template('domains/show.html', page_title='Domain {0}'.format(domain.name),
                            page_heading='Domain {0}'.format(domain.name), domain=domain)
示例#4
0
 def _new_upstream_return(self, domain):
     form = UpstreamForm()
     log()
     return render_template(
         'upstreams/new.html',
         page_heading='New upstream for domain {0}'.format(domain.name),
         page_title='New upstream for domain {0}'.format(domain.name),
         form=form,
         domain=domain)
def status(source, **kwargs):
    """Get IDPH reports save to disk"""
    with app.app_context():
        use_s3 = source == "s3"

        try:
            response = get_status(use_s3=use_s3, **kwargs)
        except Exception as e:
            exception_hook(e.__class__.__name__, debug=app.debug, use_tb=True)
        else:
            log(**response)
示例#6
0
    def post(self):
        form = ClusterForm()
        cluster = Cluster.query.filter_by(audit_is_deleted=False, name=form.name.data).first()
        if cluster:
            flash('Cluster name already in use', 'error')
            return self._new_cluster_return()
        cluster = Cluster(name=form.name.data, is_active=True)
        cluster.create()

        log(cluster.id)
        flash('Cluster created successfully', 'success')
        return redirect(url_for('Clusters:index'))
示例#7
0
    def index(self, cluster_id):
        cluster = Cluster.query.filter_by(audit_is_deleted=False,
                                          id=cluster_id).first()
        if not cluster:
            flash('Cluster not found', 'error')
            return redirect(url_for('Clusters:index'))
        servers = cluster.servers.filter_by(audit_is_deleted=False).all()

        log()
        return render_template('servers/index.html',
                               page_heading='Servers',
                               page_title='Servers',
                               servers=servers,
                               cluster=cluster)
示例#8
0
    def post(self, domain_name):
        form = UpstreamForm()
        domain = self._get_domain(domain_name=domain_name)
        if not domain:
            flash('Domain not found', 'error')
            return redirect(url_for('Domains:index'))
        upstream = Upstream(domain_id=domain.id,
                            ip_address=form.ip_address.data,
                            port=form.port.data)
        upstream.create()

        log(upstream.id)
        flash('Upstream created successfully', 'success')
        return redirect(url_for('Domains:get', domain_name=domain.name))
示例#9
0
 def delete(self, domain_name, upstream_id):
     domain = self._get_domain(domain_name=domain_name)
     if not domain:
         flash('Domain not found', 'error')
         return redirect(url_for('Domains:index'))
     upstream = Upstream.query.filter_by(audit_is_deleted=False,
                                         id=upstream_id,
                                         domain_id=domain.id).first()
     if not upstream:
         flash('Upstream not found', 'error')
     upstream.delete()
     log(upstream.id)
     flash('Upstream deleted successfully', 'success')
     return redirect(url_for('Servers:index'))
示例#10
0
    def delete(self, cluster_id):
        cluster = Cluster.query.filter_by(audit_is_deleted=False, id=cluster_id).first()
        if not cluster:
            flash('Cluster not found', 'error')
            return redirect(url_for('Clusters:index'))
        if cluster.domains.filter_by(audit_is_deleted=False).count() > 0:
            flash('Active domains in this cluster, Cannot delete', 'error')
            return redirect(url_for('Clusters:index'))
        for server in cluster.servers.filter_by(audit_is_deleted=False).all():
            server.delete()
        cluster.delete()

        log(cluster.id)
        flash('Cluster and all associated servers deleted successfully', 'success')
        return redirect(url_for('Clusters:index'))
def load_reports(end, days, enqueue, **kwargs):
    """Fetch reports to return time series"""
    with app.app_context():
        end_date = dt.strptime(end, DATE_FORMAT)

        for day in range(days):
            start_date = end_date - timedelta(days=day)
            report_date = start_date.strftime(DATE_FORMAT)

            try:
                response = load_report(report_date, enqueue=enqueue, **kwargs)
            except Exception as e:
                exception_hook(e.__class__.__name__,
                               debug=app.debug,
                               use_tb=True)
            else:
                log(**response)
示例#12
0
 def index(self):
     stats = {
         'online_servers':
         Server.query.filter_by(audit_is_deleted=False,
                                is_active=True).count(),
         'active_domains':
         Domain.query.filter_by(audit_is_deleted=False,
                                is_active=True).count(),
         'active_clusters':
         Cluster.query.filter_by(audit_is_deleted=False,
                                 is_active=True).count()
     }
     log()
     return render_template('dashboard/index.html',
                            page_title='Dashboard',
                            page_heading='Dashboard',
                            stats=stats)
示例#13
0
    def post(self):
        form = self._generate_domain_form()

        cluster = Cluster.query.filter_by(audit_is_deleted=False, id=form.cluster_id.data).first()
        if not cluster:
            flash('Cluster not found', 'error')
            return self._new_domain_return()

        domain = self._get_domain(domain_name=form.name.data)
        if domain:
            flash('Domain name already exists', 'error')
            return self._new_domain_return()

        domain = Domain(name=form.name.data, is_active=True, cluster_id=cluster.id)
        domain.create()

        log(domain.id)
        flash('Domain created successfully', 'success')
        return redirect(url_for('Domains:index'))
示例#14
0
    def post(self, cluster_id):
        form = ServerForm()
        cluster = Cluster.query.filter_by(audit_is_deleted=False,
                                          id=cluster_id).first()
        if not cluster:
            flash('Cluster not found', 'error')
            return redirect(url_for('Clusters:index'))
        server = Server.query.filter_by(audit_is_deleted=False,
                                        name=form.name.data).first()
        if server:
            flash('Server name already in use', 'error')
            return self._new_server_return()
        server = Server(name=form.name.data,
                        is_active=True,
                        cluster_id=cluster_id)
        server.create()

        log(server.id)
        flash('Server created successfully', 'success')
        return redirect(url_for('Clusters:index'))
示例#15
0
def post_ckan_reports(src, report_date, **kwargs):
    mimetype = CTYPES["csv"]
    report_type = kwargs["report_type"]
    config = REPORTS[report_type]
    report_phrase = get_report_phrase(report_date, report_type)

    if kwargs.get("datastore"):
        sources = gen_new_records(src, report_date, **kwargs)
    else:
        sources = gen_csvs(src, report_date, **kwargs)

    responses = [
        post_ckan_report(*args, mimetype=mimetype, **kwargs, **config)
        for args in sources
    ]

    ok = responses and all(r["ok"] for r in responses)

    if ok:
        message = f"Successfully posted data {report_phrase}!"
        status_code = 200
    elif responses:
        message = f"Error(s) encountered posting data {report_phrase}!"
        status_code = 500

        for response in responses:
            if not response["ok"]:
                log(**response)
    else:
        ok = True
        message = f"No data posted {report_phrase}!"
        status_code = 304

    return {
        "ok": ok,
        "message": message,
        "result": responses,
        "status_code": status_code,
    }
示例#16
0
文件: auth.py 项目: zensec/haproxyUI
    def login(self):
        if 'user_id' in session:
            del session['user_id']

        username = request.form['username']
        password = request.form['password']

        user = User.query.filter_by(username=username).first()
        if not user:
            flash('Invalid username or password', 'error')
            return redirect(url_for('Auth:index'))

        if not user.validate_password(password):
            flash('Invalid username or password', 'error')
            return redirect(url_for('Auth:index'))

        app.logger.debug('Storing user ID {0} into session'.format(user.id))
        session['user_id'] = user.id
        user.last_seen = datetime.utcnow()
        db.session.commit()
        g.user = user

        log()
        return redirect(url_for('Dashboard:index'))
示例#17
0
    def index(self):
        clusters = Cluster.query.filter_by(audit_is_deleted=False).all()

        log()
        return render_template('clusters/index.html', page_heading='Clusters', page_title='Clusters', clusters=clusters)
示例#18
0
 def _new_cluster_return(self):
     form = ClusterForm()
     log()
     return render_template('clusters/new.html', page_heading='New Cluster', page_title='New Cluster', form=form)
示例#19
0
 def _new_domain_return(self):
     form = self._generate_domain_form()
     log()
     return render_template('domains/new.html', page_heading='New Domain',
                            page_title='New Domain', form=form)
示例#20
0
文件: auth.py 项目: zensec/haproxyUI
    def logout(self):
        if 'user_id' in session:
            del session['user_id']

        log()
        return redirect(url_for('Auth:index'))