def index(req): """ Lists all the SQL connections. """ items = [] create_form = CreateForm(req) edit_form = EditForm(req, prefix='edit') change_password_form = ChangePasswordForm() meta = None if req.zato.cluster_id and req.method == 'GET': request = { 'cluster_id': req.zato.cluster_id, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1) } data, meta = parse_response_data( req.zato.client.invoke('zato.outgoing.sql.get-list', request)) for item in data: _item = SQLConnectionPool() for name in ('id', 'name', 'is_active', 'engine', 'host', 'port', 'db_name', 'username', 'pool_size', 'engine_display_name'): value = getattr(item, name) setattr(_item, name, value) _item.extra = item.extra or '' items.append(_item) return_data = { 'zato_clusters': req.zato.clusters, 'cluster_id': req.zato.cluster_id, 'search_form': req.zato.search_form, 'items': items, 'create_form': create_form, 'edit_form': edit_form, 'change_password_form': change_password_form, 'paginate': True, 'meta': meta, 'req': req, } return TemplateResponse(req, 'zato/outgoing/sql.html', return_data)
def index(req): items = [] create_form = CreateForm() edit_form = EditForm(prefix='edit') change_password_form = ChangePasswordForm() meta = None if req.zato.cluster_id and req.method == 'GET': request = { 'cluster_id': req.zato.cluster_id, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1) } data, meta = parse_response_data( req.zato.client.invoke('zato.security.wss.get-list', request)) for item in data: wss = WSSDefinition(item.id, item.name, item.is_active, item.username, None, ZATO_WSS_PASSWORD_TYPES[item.password_type], item.reject_empty_nonce_creat, item.reject_stale_tokens, item.reject_expiry_limit, item.nonce_freshness_time, password_type_raw=item.password_type) items.append(wss) return_data = { 'zato_clusters': req.zato.clusters, 'cluster_id': req.zato.cluster_id, 'search_form': req.zato.search_form, 'items': items, 'create_form': create_form, 'edit_form': edit_form, 'change_password_form': change_password_form, 'paginate': True, 'meta': meta, 'req': req, } return TemplateResponse(req, 'zato/security/wss.html', return_data)
def index(req): items = [] create_form = CreateForm() edit_form = EditForm(prefix='edit') meta = None if req.zato.cluster_id and req.method == 'GET': def_ids = get_definition_list(req.zato.client, req.zato.cluster, 'jms-wmq') create_form.set_def_id(def_ids) edit_form.set_def_id(def_ids) request = { 'cluster_id': req.zato.cluster_id, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1) } data, meta = parse_response_data( req.zato.client.invoke('zato.outgoing.jms-wmq.get-list', request)) for item in data: _item = OutgoingWMQ(item.id, item.name, item.is_active, item.delivery_mode, item.priority, item.expiration, item.def_id, delivery_friendly_name[item.delivery_mode], item.def_name) items.append(_item) return_data = { 'zato_clusters': req.zato.clusters, 'cluster_id': req.zato.cluster_id, 'search_form': req.zato.search_form, 'items': items, 'create_form': create_form, 'edit_form': edit_form, 'paginate': True, 'meta': meta, 'req': req, } return TemplateResponse(req, 'zato/outgoing/jms-wmq.html', return_data)
def index(req): try: jobs = [] meta = None # Build a list of schedulers for a given Zato cluster. if req.zato.cluster_id and req.method == 'GET': # We have a cluster to pick the schedulers from, try to invoke it now. request = { 'cluster_id': req.zato.cluster_id, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1), 'query': req.GET.get('query', '') } data, meta = parse_response_data(req.zato.client.invoke('zato.scheduler.job.get-list', request)) for job_elem in data: id = job_elem.id name = job_elem.name is_active = job_elem.is_active job_type = job_elem.job_type start_date = job_elem.start_date service_name = job_elem.service_name extra = job_elem.extra job_type_friendly = job_type_friendly_names[job_type] job = Job(id, name, is_active, job_type, from_utc_to_user(start_date+'+00:00', req.zato.user_profile), extra, service_name=service_name, job_type_friendly=job_type_friendly) if job_type == SCHEDULER.JOB_TYPE.ONE_TIME: definition_text=_one_time_job_def(req.zato.user_profile, start_date) elif job_type == SCHEDULER.JOB_TYPE.INTERVAL_BASED: definition_text = _interval_based_job_def(req.zato.user_profile, _get_start_date(job_elem.start_date), job_elem.repeats, job_elem.weeks, job_elem.days, job_elem.hours, job_elem.minutes, job_elem.seconds) weeks = job_elem.weeks or '' days = job_elem.days or '' hours = job_elem.hours or '' minutes = job_elem.minutes or '' seconds = job_elem.seconds or '' repeats = job_elem.repeats or '' ib_job = IntervalBasedJob(None, None, weeks, days, hours, minutes, seconds, repeats) job.interval_based = ib_job elif job_type == SCHEDULER.JOB_TYPE.CRON_STYLE: cron_definition = job_elem.cron_definition or '' definition_text=_cron_style_job_def(req.zato.user_profile, start_date, cron_definition) cs_job = CronStyleJob(None, None, cron_definition) job.cron_style = cs_job else: msg = 'Unrecognized job type, name:[{0}], type:[{1}]'.format(name, job_type) logger.error(msg) raise ZatoException(msg) job.definition_text = definition_text jobs.append(job) if req.method == 'POST': action = req.POST.get('zato_action', '') if not action: msg = 'req.POST contains no [zato_action] parameter.' logger.error(msg) return HttpResponseServerError(msg) job_type = req.POST.get('job_type', '') if action != 'execute' and not job_type: msg = 'req.POST contains no [job_type] parameter.' logger.error(msg) return HttpResponseServerError(msg) job_name = req.POST['{0}-{1}-name'.format(action, job_type)] # Try to match the action and a job type with an action handler.. handler_name = '_' + action if action != 'execute': handler_name += '_' + job_type handler = globals().get(handler_name) if not handler: msg = ('No handler found for action [{0}], job_type:[{1}], ' 'req.POST:[{2}], req.GET:[{3}].'.format(action, job_type, pprint(req.POST), pprint(req.GET))) logger.error(msg) return HttpResponseServerError(msg) # .. invoke the action handler. try: response = handler(req.zato.client, req.zato.user_profile, req.zato.cluster, req.POST) response = response if response else '' if response: response['message'] = _get_success_message(action, job_type, job_name) response = dumps(response) return HttpResponse(response, content_type='application/javascript') except Exception: msg = 'Could not invoke action `{}`, job_type:`{}`, e:`{}` req.POST:`{}`, req.GET:`{}'.format( action, job_type, format_exc(), pprint(req.POST), pprint(req.GET)) logger.error(msg) return HttpResponseServerError(msg) return_data = {'zato_clusters':req.zato.clusters, 'cluster_id':req.zato.cluster_id, 'search_form':req.zato.search_form, 'jobs':jobs, 'friendly_names':job_type_friendly_names.items(), 'create_one_time_form':OneTimeSchedulerJobForm(create_one_time_prefix, req), 'create_interval_based_form':IntervalBasedSchedulerJobForm(create_interval_based_prefix, req), 'create_cron_style_form':CronStyleSchedulerJobForm(create_cron_style_prefix, req), 'edit_one_time_form':OneTimeSchedulerJobForm(edit_one_time_prefix, req), 'edit_interval_based_form':IntervalBasedSchedulerJobForm(edit_interval_based_prefix, req), 'edit_cron_style_form':CronStyleSchedulerJobForm(edit_cron_style_prefix, req), 'sample_dt': get_sample_dt(req.zato.user_profile), 'paginate':True, 'meta': meta, 'req': req, } return_data.update(get_js_dt_format(req.zato.user_profile)) return TemplateResponse(req, 'zato/scheduler.html', return_data) except Exception: msg = '<pre>Method could not be invoked, e:`{}`</pre>'.format(format_exc()) logger.error(msg) return HttpResponseServerError(msg)
def index(req): connection = req.GET.get('connection') transport = req.GET.get('transport') query = req.GET.get('query', '') items = [] _security = SecurityList() if not all((connection, transport)): log_msg = "Redirecting to / because at least one of ('connection', 'transport') GET parameters was missing" logger.debug(log_msg) return HttpResponseRedirect('/') create_form = None edit_form = None meta = None colspan = 17 if transport == 'soap': colspan += 2 if req.zato.cluster_id: for def_item in req.zato.client.invoke('zato.security.get-list', {'cluster_id': req.zato.cluster.id}): if connection == 'outgoing': if transport == URL_TYPE.PLAIN_HTTP and def_item.sec_type not in ( SEC_DEF_TYPE.BASIC_AUTH, SEC_DEF_TYPE.TLS_KEY_CERT, SEC_DEF_TYPE.APIKEY): continue elif transport == URL_TYPE.SOAP and def_item.sec_type not in ( SEC_DEF_TYPE.BASIC_AUTH, SEC_DEF_TYPE.NTLM, SEC_DEF_TYPE.WSS): continue _security.append(def_item) _soap_versions = SOAP_CHANNEL_VERSIONS if connection == 'channel' else SOAP_VERSIONS tls_ca_cert_list = get_tls_ca_cert_list(req.zato.client, req.zato.cluster) cache_list = [] for cache_type in (CACHE.TYPE.BUILTIN, CACHE.TYPE.MEMCACHED): service_name = 'zato.cache.{}.get-list'.format(cache_type) response = req.zato.client.invoke(service_name, {'cluster_id': req.zato.cluster.id}) for item in sorted(response, key=itemgetter('name')): cache_list.append({'id':item.id, 'name':'{}/{}'.format(CACHE_TYPE[cache_type], item.name)}) create_form = CreateForm(_security, tls_ca_cert_list, cache_list, _soap_versions, req=req) edit_form = EditForm(_security, tls_ca_cert_list, cache_list, _soap_versions, prefix='edit', req=req) input_dict = { 'cluster_id': req.zato.cluster_id, 'connection': connection, 'transport': transport, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1), 'query': req.GET.get('query', ''), } data, meta = parse_response_data(req.zato.client.invoke('zato.http-soap.get-list', input_dict)) for item in data: if query not in item.name: continue _security_name = item.security_name if _security_name: security_name = '{0}<br/>{1}'.format(SEC_DEF_TYPE_NAME[item.sec_type], _security_name) else: if item.sec_use_rbac: security_name = DELEGATED_TO_RBAC else: security_name = '<span class="form_hint">---</span>' security_id = get_http_channel_security_id(item) if item.cache_id: cache_name = '{}/{}'.format(CACHE_TYPE[item.cache_type], item.cache_name) else: cache_name = None # New in 3.0, hence optional match_slash = item.get('match_slash') if match_slash == '': match_slash = True # New in 3.1 http_accept = item.get('http_accept') or '' http_soap = HTTPSOAP(item.id, item.name, item.is_active, item.is_internal, connection, transport, item.host, item.url_path, item.method, item.soap_action, item.soap_version, item.data_format, item.ping_method, item.pool_size, item.merge_url_params_req, item.url_params_pri, item.params_pri, item.serialization_type, item.timeout, item.sec_tls_ca_cert_id, service_id=item.service_id, service_name=item.service_name, security_id=security_id, has_rbac=item.has_rbac, security_name=security_name, content_type=item.content_type, cache_id=item.cache_id, cache_name=cache_name, cache_type=item.cache_type, cache_expiry=item.cache_expiry, content_encoding=item.content_encoding, match_slash=match_slash, http_accept=http_accept) for name in 'is_rate_limit_active', 'rate_limit_type', 'rate_limit_def', 'rate_limit_check_parent_def': setattr(http_soap, name, item.get(name)) items.append(http_soap) return_data = {'zato_clusters':req.zato.clusters, 'cluster_id':req.zato.cluster_id, 'search_form':SearchForm(req.zato.clusters, req.GET), 'items':items, 'create_form':create_form, 'edit_form':edit_form, 'connection':connection, 'transport':transport, 'connection_label':CONNECTION[connection], 'connection_label_plural':CONNECTION_PLURAL[connection], 'transport_label':TRANSPORT[transport], 'colspan': colspan, 'default_http_ping_method':DEFAULT_HTTP_PING_METHOD, 'default_http_pool_size':DEFAULT_HTTP_POOL_SIZE, 'default_http_timeout':MISC.DEFAULT_HTTP_TIMEOUT, 'paginate':True, 'meta': meta, 'req':req } return TemplateResponse(req, 'zato/http_soap/index.html', return_data)
def index(req): connection = req.GET.get('connection') transport = req.GET.get('transport') items = [] _security = SecurityList() if not all((connection, transport)): log_msg = "Redirecting to / because at least one of ('connection', 'transport') GET parameters was missing" logger.debug(log_msg) return HttpResponseRedirect('/') create_form = None edit_form = None meta = None colspan = 17 if transport == 'soap': colspan += 2 if req.zato.cluster_id: for def_item in req.zato.client.invoke( 'zato.security.get-list', {'cluster_id': req.zato.cluster.id}): if connection == 'outgoing': if transport == URL_TYPE.PLAIN_HTTP and def_item.sec_type not in ( SEC_DEF_TYPE.BASIC_AUTH, SEC_DEF_TYPE.TLS_KEY_CERT): continue elif transport == URL_TYPE.SOAP and def_item.sec_type not in ( SEC_DEF_TYPE.BASIC_AUTH, SEC_DEF_TYPE.NTLM, SEC_DEF_TYPE.WSS): continue _security.append(def_item) _soap_versions = SOAP_CHANNEL_VERSIONS if connection == 'channel' else SOAP_VERSIONS create_form = CreateForm(_security, get_tls_ca_cert_list(req.zato.client, req.zato.cluster), _soap_versions, req=req) edit_form = EditForm(_security, get_tls_ca_cert_list(req.zato.client, req.zato.cluster), _soap_versions, prefix='edit', req=req) input_dict = { 'cluster_id': req.zato.cluster_id, 'connection': connection, 'transport': transport, 'paginate': True, 'cur_page': req.GET.get('cur_page', 1) } data, meta = parse_response_data( req.zato.client.invoke('zato.http-soap.get-list', input_dict)) for item in data: _security_name = item.security_name if _security_name: security_name = '{0}<br/>{1}'.format( SEC_DEF_TYPE_NAME[item.sec_type], _security_name) else: if item.sec_use_rbac: security_name = DELEGATED_TO_RBAC else: security_name = 'No security definition' _security_id = item.security_id if _security_id: security_id = '{0}/{1}'.format(item.sec_type, _security_id) else: if item.sec_use_rbac: security_id = ZATO_SEC_USE_RBAC else: security_id = ZATO_NONE item = HTTPSOAP(item.id, item.name, item.is_active, item.is_internal, connection, transport, item.host, item.url_path, item.method, item.soap_action, item.soap_version, item.data_format, item.ping_method, item.pool_size, item.merge_url_params_req, item.url_params_pri, item.params_pri, item.serialization_type, item.timeout, item.sec_tls_ca_cert_id, service_id=item.service_id, service_name=item.service_name, security_id=security_id, has_rbac=item.has_rbac, security_name=security_name, content_type=item.content_type) items.append(item) return_data = { 'zato_clusters': req.zato.clusters, 'cluster_id': req.zato.cluster_id, 'search_form': SearchForm(req.zato.clusters, req.GET), 'items': items, 'create_form': create_form, 'edit_form': edit_form, 'connection': connection, 'transport': transport, 'connection_label': CONNECTION[connection], 'connection_label_plural': CONNECTION_PLURAL[connection], 'transport_label': TRANSPORT[transport], 'colspan': colspan, 'default_http_ping_method': DEFAULT_HTTP_PING_METHOD, 'default_http_pool_size': DEFAULT_HTTP_POOL_SIZE, 'default_http_timeout': MISC.DEFAULT_HTTP_TIMEOUT, 'paginate': True, 'meta': meta, 'req': req } return TemplateResponse(req, 'zato/http_soap/index.html', return_data)