예제 #1
0
 def obj_create(self, bundle, request=None, **kwargs):
     ip = remote_addr(request)
     logger.debug('Got json data: %s' % bundle.data.get('data'))
     try:
         return save_device_data(bundle.data.get('data'), ip)
     except Exception:
         logger.error(traceback.format_exc())
         raise
예제 #2
0
파일: views.py 프로젝트: ReJeCtAll/ralph
def dhcp_synch(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    address = remote_addr(request)
    server = get_object_or_404(DHCPServer, ip=address)
    server.last_synchronized = datetime.datetime.now()
    server.save()
    return HttpResponse('OK', content_type='text/plain')
예제 #3
0
def dhcp_synch(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    address = remote_addr(request)
    server = get_object_or_404(DHCPServer, ip=address)
    server.last_synchronized = datetime.datetime.now()
    server.save()
    return HttpResponse('OK', content_type='text/plain')
예제 #4
0
 def obj_create(self, bundle, **kwargs):
     ip = remote_addr(bundle.request)
     logger.debug('Got json data: %s' % bundle.data.get('data'))
     try:
         return save_device_data(bundle.data.get('data'), ip)
     except Exception:
         logger.error(traceback.format_exc())
         raise
예제 #5
0
def dhcp_config_head(request):
    server_address = request.GET.get('server')
    if not server_address:
        server_address = remote_addr(request)
    dhcp_server = get_object_or_404(DHCPServer, ip=server_address)
    return HttpResponse(
        generate_dhcp_config_head(
            dhcp_server=dhcp_server,
        ),
        content_type='text/plain',
    )
예제 #6
0
def dhcp_config_head(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    server_address = request.GET.get('server')
    if not server_address:
        server_address = remote_addr(request)
    dhcp_server = get_object_or_404(DHCPServer, ip=server_address)
    return HttpResponse(
        generate_dhcp_config_head(dhcp_server=dhcp_server, ),
        content_type='text/plain',
    )
예제 #7
0
파일: views.py 프로젝트: Makdaam/ralph
def get_current_deployment(request):
    ip = remote_addr(request)
    deployment = None
    try:
        deployment = Deployment.objects.get(ip=ip,
            status=DeploymentStatus.in_deployment.id)
    except Deployment.DoesNotExist:
        if request.user.is_superuser and request.GET.get('ip'):
            ip = request.GET.get('ip')
            deployment = Deployment.objects.get(ip=ip,
                status=DeploymentStatus.in_deployment.id)
    return deployment
예제 #8
0
파일: views.py 프로젝트: damjanek/ralph
def dhcp_config(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    if request.GET.get('dc'):
        dc = DataCenter.objects.get(name__iexact=request.GET['dc'])
    else:
        dc = None
    address = remote_addr(request)
    return HttpResponse(
        generate_dhcp_config(dc=dc, server_address=address),
        content_type="text/plain",
    )
예제 #9
0
def get_current_deployment(request):
    ip = remote_addr(request)
    deployment = None
    try:
        deployment = Deployment.objects.get(
            ip=ip, status=DeploymentStatus.in_deployment.id)
    except Deployment.DoesNotExist:
        if request.user.is_superuser and request.GET.get('ip'):
            ip = request.GET.get('ip')
            deployment = Deployment.objects.get(
                ip=ip, status=DeploymentStatus.in_deployment.id)
    return deployment
예제 #10
0
파일: views.py 프로젝트: ReJeCtAll/ralph
def dhcp_config_head(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    server_address = request.GET.get('server')
    if not server_address:
        server_address = remote_addr(request)
    dhcp_server = get_object_or_404(DHCPServer, ip=server_address)
    return HttpResponse(
        generate_dhcp_config_head(
            dhcp_server=dhcp_server,
        ),
        content_type='text/plain',
    )
예제 #11
0
파일: views.py 프로젝트: ReJeCtAll/ralph
def get_current_deployment(request):
    ip = remote_addr(request)
    deployment = None
    try:
        deployment = Deployment.objects.get(ip=ip, status=DeploymentStatus.in_progress)
    except Deployment.DoesNotExist:
        ip = request.GET.get("ip")
        if ip:
            try:
                deployment = Deployment.objects.get(ip=ip, status=DeploymentStatus.in_progress)
            except Deployment.DoesNotExist:
                pass
    return deployment
예제 #12
0
 def obj_create(self, bundle, **kwargs):
     if DISCOVERY_DISABLED:
         raise DiscoveryDisabledError(
             'Discovery is deprecated since Ralph 2.0. '
             'Update your DonPedro installation to the version 2.0 or '
             'higher.',
         )
     ip = remote_addr(bundle.request)
     logger.debug('Got json data: %s' % bundle.data.get('data'))
     try:
         return save_device_data(bundle.data.get('data'), ip)
     except Exception:
         logger.error(traceback.format_exc())
         raise
예제 #13
0
def get_current_deployment(request):
    ip = remote_addr(request)
    deployment = None
    try:
        deployment = Deployment.objects.get(
            ip=ip, status=DeploymentStatus.in_progress)
    except Deployment.DoesNotExist:
        ip = request.GET.get('ip')
        if ip:
            try:
                deployment = Deployment.objects.get(
                    ip=ip, status=DeploymentStatus.in_progress)
            except Deployment.DoesNotExist:
                pass
    return deployment
예제 #14
0
파일: api.py 프로젝트: pydubreucq/ralph
 def obj_create(self, bundle, **kwargs):
     remote_ip = remote_addr(bundle.request)
     logger.debug("Received JSON data (remote IP: %s): %s" % (remote_ip, bundle.data.get("data")))
     data = bundle.data.get("data", {})
     plugin_name = data.get("plugin")
     if not plugin_name:
         msg = "Improper data received (remote IP: %s)" % remote_ip
         logger.exception(msg)
         raise ValueError(msg)
     try:
         bundle.obj = store_device_data({plugin_name: data})
     except Exception:
         logger.exception("An exception occurred (remote IP: %s): %s" % (remote_ip, traceback.format_exc()))
         raise
     return bundle
예제 #15
0
파일: api.py 프로젝트: rainsome-org1/ralph
 def obj_create(self, bundle, **kwargs):
     remote_ip = remote_addr(bundle.request)
     logger.debug('Received JSON data (remote IP: %s): %s' % (
         remote_ip,
         bundle.data.get('data'),
     ))
     try:
         bundle.obj = store_device_data({
             'donpedro': bundle.data.get('data'),
         })
     except Exception:
         logger.exception('An exception occurred (remote IP: %s): %s' % (
             remote_ip,
             traceback.format_exc(),
         ))
         raise
     return bundle
예제 #16
0
def dhcp_config(request):
    if not api.is_authenticated(request):
        return HttpResponseForbidden('API key required.')
    if request.GET.get('dc'):
        dc = DataCenter.objects.get(name__iexact=request.GET['dc'])
    else:
        dc = None
    with_networks = bool(request.GET.get('with_networks', False))
    address = remote_addr(request)
    return HttpResponse(
        generate_dhcp_config(
            dc=dc,
            server_address=address,
            with_networks=with_networks,
        ),
        content_type="text/plain",
    )
예제 #17
0
 def process_request(self, request):
     _now_dt = now()
     _now_ts = int(time())
     delta = _now_ts - CURRENTLY_ONLINE_INTERVAL
     users_online = cache.get('users_online', {})
     guests_online = cache.get('guests_online', {})
     users_touched = False
     guests_touched = False
     if request.user.is_authenticated():
         users_online[request.user.id] = _now_ts
         users_touched = True
         user_id = request.user.id
     else:
         guest_sid = request.COOKIES.get(settings.SESSION_COOKIE_NAME)
         if guest_sid:
             guests_online[guest_sid] = _now_ts
             guests_touched = True
         user_id = None
     for uid in users_online.keys():
         try:
             is_stale_key = users_online[uid] < delta
         except TypeError:
             is_stale_key = True
         if is_stale_key:
             users_touched = True
             del users_online[uid]
     if users_touched:
         cache.set('users_online', users_online, 60 * 60 * 24)
     for gid in guests_online.keys():
         try:
             is_stale_key = guests_online[gid] < delta
         except TypeError:
             is_stale_key = True
         if is_stale_key:
             guests_touched = True
             del guests_online[gid]
     if guests_touched:
         cache.set('guests_online', guests_online, 60 * 60 * 24)
     address = remote_addr(request)
     agent = request.META.get('HTTP_USER_AGENT')
     request.activity = update_activity.delay(
         user_id,
         address,
         agent,
         _now_dt,
     )
예제 #18
0
 def process_request(self, request):
     _now_dt = now()
     _now_ts = int(time())
     delta = _now_ts - CURRENTLY_ONLINE_INTERVAL
     users_online = cache.get('users_online', {})
     guests_online = cache.get('guests_online', {})
     users_touched = False
     guests_touched = False
     if request.user.is_authenticated():
         users_online[request.user.id] = _now_ts
         users_touched = True
         user_id = request.user.id
     else:
         guest_sid = request.COOKIES.get(settings.SESSION_COOKIE_NAME)
         if guest_sid:
             guests_online[guest_sid] = _now_ts
             guests_touched = True
         user_id = None
     for uid in users_online.keys():
         try:
             is_stale_key = users_online[uid] < delta
         except TypeError:
             is_stale_key = True
         if is_stale_key:
             users_touched = True
             del users_online[uid]
     if users_touched:
         cache.set('users_online', users_online, 60 * 60 * 24)
     for gid in guests_online.keys():
         try:
             is_stale_key = guests_online[gid] < delta
         except TypeError:
             is_stale_key = True
         if is_stale_key:
             guests_touched = True
             del guests_online[gid]
     if guests_touched:
         cache.set('guests_online', guests_online, 60 * 60 * 24)
     address = remote_addr(request)
     agent = request.META.get('HTTP_USER_AGENT')
     request.activity = update_activity.delay(
         user_id, address, agent, _now_dt,
     )
예제 #19
0
 def obj_create(self, bundle, **kwargs):
     remote_ip = remote_addr(bundle.request)
     logger.debug('Received JSON data (remote IP: %s): %s' % (
         remote_ip,
         bundle.data.get('data'),
     ))
     data = bundle.data.get('data', {})
     plugin_name = data.get('plugin')
     if not plugin_name:
         msg = "Improper data received (remote IP: %s)" % remote_ip
         logger.exception(msg)
         raise ValueError(msg)
     try:
         bundle.obj = store_device_data({
             plugin_name: data,
         })
     except Exception:
         logger.exception('An exception occurred (remote IP: %s): %s' % (
             remote_ip,
             traceback.format_exc(),
         ))
         raise
     return bundle
예제 #20
0
def dhcp_synch(request):
    address = remote_addr(request)
    server = get_object_or_404(DHCPServer, ip=address)
    server.last_synchronized = datetime.datetime.now()
    server.save()
    return HttpResponse('OK', content_type='text/plain')