示例#1
0
def remote_command(req):

    return_data = {'form':RemoteCommandForm(),
                   'cluster':req.zato.get('cluster'),
                   'search_form':SearchForm(req.zato.clusters, req.GET),
                   'zato_clusters':req.zato.clusters,
                   'cluster_id':req.zato.cluster_id,
                   }

    return TemplateResponse(req, 'zato/kvdb/remote-command.html', return_data)
示例#2
0
文件: middleware.py 项目: znavy/zato
    def process_request(self, req):

        # Makes each Django view have an access to 'zato.odb' and 'zato.setttings_db' attributes
        # of the request object. The attributes are SQLAlchemy sessions tied databases defined in app's settings.py
        req.zato = Bunch()
        req.zato.odb = SASession()
        req.zato.settings_db = settings_db
        req.zato.args = Bunch()  # Arguments read from URL

        # Whether this request to web-admin was served over TLS
        req.zato.is_tls = req.META.get('HTTP_X_FORWARDED_PROTO',
                                       '').lower() == 'https'

        # Whether communication with load-balancer should go over TLS
        req.zato.lb_use_tls = lb_use_tls
        req.zato.lb_tls_verify = lb_tls_verify

        try:
            resolved_kwargs = resolve(req.path).kwargs
            req.zato.id = resolved_kwargs.get('id')
            req.zato.cluster_id = req.GET.get('cluster') or req.POST.get('cluster_id') or \
                resolved_kwargs.get('cluster_id') or resolved_kwargs.get('cluster')

            if req.zato.cluster_id:
                req.zato.cluster = req.zato.odb.query(Cluster).filter_by(
                    id=req.zato.cluster_id).one()

                url = 'http{}://{}:{}'.format(
                    's' if req.zato.lb_use_tls else '',
                    req.zato.cluster.lb_host, req.zato.cluster.lb_port)
                auth = (ADMIN_INVOKE_NAME, ADMIN_INVOKE_PASSWORD)
                req.zato.client = Client(req,
                                         url,
                                         ADMIN_INVOKE_PATH,
                                         auth,
                                         to_bunch=True)

            req.zato.clusters = req.zato.odb.query(Cluster).order_by(
                'name').all()
            req.zato.search_form = SearchForm(req.zato.clusters, req.GET)

            if not req.user.is_anonymous():
                try:
                    user_profile = UserProfile.objects.get(user=req.user)
                except UserProfile.DoesNotExist:
                    user_profile = UserProfile(user=req.user)
                    user_profile.save()
                req.zato.user_profile = user_profile
            else:
                req.zato.user_profile = None
        except Exception:
            req.zato.odb.rollback()
            raise
示例#3
0
    def process_request(self, req):

        # Makes each Django view have an access to 'zato.odb' and 'zato.setttings_db' attributes
        # of the request object. The attributes are SQLAlchemy sessions tied databases defined in app's settings.py
        req.zato = Bunch()
        req.zato.odb = SASession()
        req.zato.settings_db = settings_db
        req.zato.args = Bunch()  # Arguments read from URL

        try:
            resolved_kwargs = resolve(req.path).kwargs
            req.zato.id = resolved_kwargs.get('id')
            req.zato.cluster_id = req.GET.get('cluster') or req.POST.get('cluster_id') or \
                resolved_kwargs.get('cluster_id') or resolved_kwargs.get('cluster')

            if req.zato.cluster_id:
                req.zato.cluster = req.zato.odb.query(Cluster).filter_by(
                    id=req.zato.cluster_id).one()

                url = 'http://{}:{}'.format(req.zato.cluster.lb_host,
                                            req.zato.cluster.lb_port)
                auth = (ADMIN_INVOKE_NAME, ADMIN_INVOKE_PASSWORD)
                req.zato.client = Client(req,
                                         url,
                                         ADMIN_INVOKE_PATH,
                                         auth,
                                         to_bunch=True)

            req.zato.clusters = req.zato.odb.query(Cluster).order_by(
                'name').all()
            req.zato.search_form = SearchForm(req.zato.clusters, req.GET)

            if not req.user.is_anonymous():
                try:
                    user_profile = UserProfile.objects.get(user=req.user)
                except UserProfile.DoesNotExist:
                    user_profile = UserProfile(user=req.user)
                    user_profile.save()
                req.zato.user_profile = user_profile
            else:
                req.zato.user_profile = None
        except Exception:
            req.zato.odb.rollback()
            raise