def upload_handler(request): """ HTTP Request handler function to upload yang models """ mode = request.GET.get('mode', '') logging.debug(request.method + ':Received upload request .. ' + mode) if not request.user.is_authenticated(): logging.warning('User must be logged in !!') return HttpResponse(Response.error(mode, 'Unauthorized')) if not ServerSettings.user_aware(): if not request.user.has_perm('explorer.delete_yangmodel') or \ not request.user.has_perm('explorer.change_yangmodel'): logging.warning('Unauthorized upload request .. ') return HttpResponse(Response.error(mode, 'User does not have permission to upload !!')) if request.method == 'POST': # create a temporary storage for this session directory = ServerSettings.session_path(request.session.session_key) _file = Uploader.upload_file(request.FILES['Filedata'], directory) if _file is not None: module = ET.Element('module') module.text = _file rval = Response.success('upload', 'ok', xml=module) logging.debug(rval) return HttpResponse(rval) return HttpResponse(Response.error('upload', 'Failed to upload')) elif request.method == 'GET': if mode == 'sync': filename = request.GET.get('file', '') index = request.GET.get('index', '') logging.info('Received sync request for ' + filename + ', index ' + index) success, response = Uploader.sync_file(request.user.username, request.session.session_key, filename, index) if success: return HttpResponse(Response.success(mode, 'ok')) return HttpResponse(Response.error(mode, 'compilation failed', xml=response)) elif mode == 'commit': success, modules = Uploader.commit_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success('commit', 'ok', modules)) elif mode == 'init': success, modules = Uploader.get_upload_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success(mode, 'ok', modules)) elif mode == 'clear': success, modules = Uploader.clear_upload_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success(mode, 'ok', modules)) return HttpResponse(Response.error(mode, 'failed')) return render_to_response('upload.html')
def upload_handler(request): """ HTTP Request handler function to upload yang models """ if not request.user.is_authenticated(): logging.debug('Unauthorized upload request .. ') return HttpResponse(Response.error('upload', 'Unauthorized')) mode = request.GET.get('mode', '') logging.debug(request.method + ':Received upload request .. ' + mode) if request.method == 'POST': # create a temporary storage for this session directory = os.path.join('data', 'session', request.session.session_key) _file = upload_file(request.FILES['Filedata'], directory) if _file is not None: module = ET.Element('module') module.text = _file rval = Response.success('upload', 'ok', xml=module) logging.debug(rval) return HttpResponse(rval) return HttpResponse(Response.error('upload', 'Failed to upload')) elif request.method == 'GET': if mode == 'sync': filename = request.GET.get('file', '') index = request.GET.get('index', '') logging.debug('Received sync request for ' + filename + ', index ' + index) success, response = sync_file(request.user.username, request.session.session_key, filename, index) if success: return HttpResponse(Response.success(mode, 'ok')) return HttpResponse(Response.error(mode, 'compilation failed', xml=response)) elif mode == 'commit': success, modules = commit_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success('commit', 'ok', modules)) elif mode == 'init': success, modules = get_upload_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success(mode, 'ok', modules)) elif mode == 'clear': success, modules = clear_upload_files(request.user.username, request.session.session_key) if success: return HttpResponse(Response.success(mode, 'ok', modules)) return HttpResponse(Response.error(mode, 'failed')) return render_to_response('upload.html')