A PHP Error was encountered
Severity: 8192
Message: Function create_function() is deprecated
Filename: geshi/geshi.php
Line Number: 4698
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4698
Function: _error_handler
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4621
Function: _optimize_regexp_list_tokens_to_string
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 1655
Function: optimize_regexp_list
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2029
Function: optimize_keyword_group
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2168
Function: build_parse_cache
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/Process.php
Line: 45
Function: parse_code
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/models/Pastes.php
Line: 517
Function: syntax
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 624
Function: getPaste
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 2
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 2
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 3
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 3
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
@login_required()
def list(request):
services = Service.objects.annotate(incident_num=Count('incident'))
return TemplateResponse(request, 'services/list.html', {'services': services})
@login_required()
def delete(request, id):
try:
service = Service.objects.get(id = id)
check_user_ownership(request, service)
service.delete()
return HttpResponseRedirect('/services/')
except Service.DoesNotExist:
raise Http404
@login_required()
def edit(request, id):
try:
service = Service.objects.get(id = id)
try:
api_keys = ServiceTokens.objects.filter(service_id = service)
except ServiceTokens.DoesNotExist:
api_keys = []
try:
ss_obj = ServiceSilenced.objects.get(service=service)
service_silenced = str(ss_obj.silenced_until - timezone.now()).split(".")[0]
except ServiceSilenced.DoesNotExist:
service_silenced = False
# get the list of users
users = User.objects.all()
policy = service.policy if service.policy else None
all_polcies = SchedulePolicy.objects.all()
return TemplateResponse(request, 'services/edit.html', {
'item': service,
'policy': policy,
'policies': all_polcies,
'api_keys': api_keys,
'service_silenced': service_silenced,
'url': request.get_full_path(),
'users': users
})
except Service.DoesNotExist:
raise Http404
@login_required()
def new(request):
all_policies = SchedulePolicy.objects.all()
# get the list of users
users = [request.user]
return TemplateResponse(request, 'services/edit.html', {'policies': all_policies,
'users': users})
@login_required()
@require_http_methods(["POST"])
def save(request):
# Update service fields
creation_time = False
try:
service_id = request.POST.get("id")
if service_id != '0':
service = Service.objects.get(id=service_id)
check_user_ownership(request, service)
else:
creation_time = True
service = Service()
except Service.DoesNotExist:
creation_time = True
service = Service()
if 'owner' in request.POST:
service.owner = User.objects.get(id=request.POST['owner'])
else:
service.owner = request.user
service.name = request.POST['name']
if len(service.name) < 6:
messages.error(request, "The Service Name should be at least 6 characters!")
if request.META.get('HTTP_REFERER').endswith("new"):
# if the user was making a new service
return HttpResponseRedirect(reverse('openduty.services.new'))
else:
# if the user editing existing page
return HttpResponseRedirect(reverse('openduty.services.edit', None, [str(request.POST['id'])]))
service.escalate_after = request.POST['escalate_after']
service.retry = request.POST['retry']
service.notifications_disabled = request.POST.get("disable_notification", "off") == "on"
if(request.POST['policy']):
pol = SchedulePolicy.objects.get(id = request.POST['policy'])
else:
pol = None
service.policy = pol
# Save service
try:
service.save()
if creation_time:
# Auto creating an email endpoint
valid_email_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&'*+-/=?^_`{|}~."
email = "".join(c for c in request.POST['name'] if c in valid_email_chars) + "@" + settings.HOSTNAME
email_token_create(email, service.id)
except IntegrityError:
messages.error(request, 'Service validation failed')
if len (request.POST['id']) > 0:
return HttpResponseRedirect(reverse('openduty.services.edit', None, [str(request.POST['id'])]))
else:
return HttpResponseRedirect(reverse('openduty.services.new'))
return HttpResponseRedirect('/services/')
@login_required()
def token_delete(request, token_id):
try:
token = ServiceTokens.objects.get(id = token_id)
token.delete()
return HttpResponseRedirect(reverse('openduty.services.edit', None, [str(token.service_id.id)]));
except Service.DoesNotExist:
raise Http404
def email_token_create(email_address, service_id):
service = Service.objects.get(id=service_id)
token = Token()
token.save_email(email_address=email_address)
service_token = ServiceTokens.objects.create(service_id=service, token_id=token, name="Email Integration")
service_token.save()
@login_required()
@require_http_methods(["POST"])
def token_create(request, service_id):
try:
service = Service.objects.get(id = service_id)
check_user_ownership(request, service)
token = Token()
token.save()
service_token = ServiceTokens.objects.create(service_id = service, token_id = token, name=request.POST['key_name'])
service_token.save()
return HttpResponseRedirect(reverse('openduty.services.edit', None, [str(service_id)]));
except Service.DoesNotExist:
raise Http404
@login_required()
@require_http_methods(["POST"])
def silence(request, service_id):
try:
service = Service.objects.get(id = service_id)
silence_for = request.POST.get('silence_for')
url = request.POST.get("url")
incident_id = request.POST.get('incident_id')
if incident_id:
incident = Incident.objects.get(id=incident_id)
else:
incident = None
if ServiceSilenced.objects.filter(service=service).count() < 1:
silenced_service = ServiceSilenced()
silenced_service.service = service
silenced_service.silenced_until = timezone.now() + timezone.timedelta(hours=int(silence_for))
silenced_service.silenced = True
silenced_service.save()
event_log_message = "%s silenced the service %s for %s hours" % (request.user.username, service.name, silence_for)
event_log = EventLog()
event_log.incident_key = incident
event_log.action = 'silence_service'
event_log.user = request.user
event_log.service_key = service
event_log.data = event_log_message
event_log.occurred_at = timezone.now()
event_log.save()
unsilence_service.apply_async((service_id,), eta=silenced_service.silenced_until)
return HttpResponseRedirect(url)
except Service.DoesNotExist:
raise Http404
@login_required()
@require_http_methods(["POST"])
def unsilence(request, service_id):
try:
service = Service.objects.get(id = service_id)
url = request.POST.get("url")
try:
ServiceSilenced.objects.filter(service=service).delete()
event_log_message = "%s removed silence from service %s" % (request.user.username, service.name)
event_log = EventLog()
event_log.action = 'unsilence_service'
event_log.user = request.user
event_log.incident_key = None
event_log.service_key = service
event_log.data = event_log_message
event_log.occurred_at = timezone.now()
event_log.save()
except ServiceSilenced.DoesNotExist:
# No need to delete
pass
return HttpResponseRedirect(url)
except Service.DoesNotExist: