def create_nfs_share(request): return_dict = {} try: if request.method == "GET": #Return the conf page form = nfs_shares_forms.ShareForm() return_dict['form'] = form return django.shortcuts.render_to_response("create_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) else: form = nfs_shares_forms.ShareForm(request.POST) path = request.POST["path"] return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("create_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) cd = form.cleaned_data try : result, err = nfs.save_share(cd, True) if not result: if not err: raise Exception('Unknown error!') else: raise Exception(err) except Exception, e: return_dict["error"] = "Error creating NFS share information - %s"%str(e) return django.shortcuts.render_to_response('logged_in_error.html', return_dict, context_instance=django.template.context.RequestContext(request)) audit_str = "Created NFS share %s"%path audit.audit("create_nfs_share", audit_str, request.META["REMOTE_ADDR"]) return django.http.HttpResponseRedirect('/view_nfs_shares?action=created') except Exception, e: s = str(e) return_dict["error"] = "An error occurred when processing your request : %s"%s return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def edit_nfs_share(request): return_dict = {} try: if request.method == "GET": #Return the conf page path = request.GET["path"] d, err = nfs.get_share(path) if not d: raise Exception('Could not find the specified share. Please use the menus. : %s'%err) initial = {} initial['path'] = d['path'] if 'clients' in d: client_list = [] for client in d['clients']: client_list.append(client['name']) initial['clients'] = ','.join(client_list) initial['readonly'] = False initial['root_squash'] = False initial['all_squash'] = False if 'options' in d: for option in d['options']: if option == 'ro': initial['readonly'] = True elif option == 'root_squash': initial['root_squash'] = True elif option == 'all_squash': initial['all_squash'] = True form = nfs_shares_forms.ShareForm(initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response("edit_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) else: form = nfs_shares_forms.ShareForm(request.POST) path = request.POST["path"] return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("edit_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) cd = form.cleaned_data try : result, err = nfs.save_share(cd) if not result: if not err: raise Exception('Unknown error!') else: raise Exception(err) except Exception, e: return_dict["error"] = "Error saving NFS share information - %s"%str(e) return django.shortcuts.render_to_response('logged_in_error.html', return_dict, context_instance=django.template.context.RequestContext(request)) audit_str = "Edited NFS share %s"%path audit.audit("edit_nfs_share", audit_str, request.META["REMOTE_ADDR"]) return django.http.HttpResponseRedirect('/view_nfs_shares?action=saved') except Exception, e: s = str(e) return_dict["error"] = "An error occurred when processing your request : %s"%s return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def edit_nfs_share(request): return_dict = {} try: if request.method == "GET": #Return the conf page path = request.GET["path"] d, err = nfs.get_share(path) if err: raise Exception(err) if not d: raise Exception('Could not find the specified share. Please use the menus.') initial = {} initial['path'] = d['path'] if 'clients' in d: client_list = [] for client in d['clients']: client_list.append(client['name']) initial['clients'] = ','.join(client_list) initial['readonly'] = False initial['root_squash'] = False initial['all_squash'] = False if 'options' in d: for option in d['options']: if option == 'ro': initial['readonly'] = True elif option == 'root_squash': initial['root_squash'] = True elif option == 'all_squash': initial['all_squash'] = True form = nfs_shares_forms.ShareForm(initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response("edit_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) else: form = nfs_shares_forms.ShareForm(request.POST) path = request.POST["path"] return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("edit_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) cd = form.cleaned_data result, err = nfs.save_share(cd) if err: raise Exception(err) audit_str = "Edited NFS share %s"%path audit.audit("edit_nfs_share", audit_str, request.META["REMOTE_ADDR"]) return django.http.HttpResponseRedirect('/view_nfs_shares?action=saved') except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'Modify a NFS share ' return_dict['tab'] = 'view_nfs_shares_tab' return_dict["error"] = 'Error modifying a NFS share' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def create_nfs_share(request): return_dict = {} try: pools, err = zfs.get_pools() if err: raise Exception(err) ds_list = [] for pool in pools: for ds in pool["datasets"]: if ds['properties']['type']['value'] == 'filesystem': ds_list.append({'name': ds["name"], 'mountpoint': ds["mountpoint"]}) if not ds_list: raise Exception('No ZFS datasets available. Please create a dataset before creating shares.') if request.method == "GET": #Return the conf page form = nfs_shares_forms.CreateShareForm(dataset_list = ds_list) return_dict['form'] = form return django.shortcuts.render_to_response("create_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) else: form = nfs_shares_forms.CreateShareForm(request.POST, dataset_list = ds_list) path = request.POST.get("path") return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("create_nfs_share.html", return_dict, context_instance = django.template.context.RequestContext(request)) cd = form.cleaned_data result, err = nfs.save_share(cd, True) if err: raise Exception(err) audit_str = "Created NFS share %s"%path audit.audit("create_nfs_share", audit_str, request.META["REMOTE_ADDR"]) return django.http.HttpResponseRedirect('/view_nfs_shares?action=created') except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'Create a NFS share ' return_dict['tab'] = 'view_nfs_shares_tab' return_dict["error"] = 'Error creating a NFS share' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def create_nfs_share(request): return_dict = {} try: pools, err = zfs.get_pools() if err: raise Exception(err) ds_list = [] for pool in pools: for ds in pool["datasets"]: if ds['properties']['type']['value'] == 'filesystem': ds_list.append({ 'name': ds["name"], 'mountpoint': ds["mountpoint"] }) if not ds_list: raise Exception( 'No ZFS datasets available. Please create a dataset before creating shares.' ) if 'dataset' in request.REQUEST: dataset = request.REQUEST['dataset'] else: dataset = ds_list[0]['mountpoint'] if 'path' in request.REQUEST: path = request.REQUEST['path'] else: path = dataset return_dict['path'] = path return_dict["dataset"] = ds_list if request.method == "GET": #Return the conf page initial = {} initial['path'] = path initial['dataset'] = dataset form = nfs_shares_forms.CreateShareForm(initial=initial, dataset_list=ds_list) return_dict['form'] = form return django.shortcuts.render_to_response( "create_nfs_share.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: form = nfs_shares_forms.CreateShareForm(request.POST, dataset_list=ds_list) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "create_nfs_share.html", return_dict, context_instance=django.template.context.RequestContext( request)) cd = form.cleaned_data if 'new_folder' in cd and cd['new_folder']: try: os.mkdir('%s/%s' % (cd['path'], cd['new_folder'])) audit_str = 'Created new directory "%s" in "%s"' % ( cd['new_folder'], cd['path']) audit.audit("create_dir", audit_str, request.META) cd['path'] = '%s/%s' % (cd['path'], cd['new_folder']) except Exception, e: raise Exception('Error creating subfolder %s : %s' % (cd['new_folder'], str(e))) result, err = nfs.save_share(cd, True) if err: raise Exception(err) audit_str = "Created NFS share %s" % cd['path'] audit.audit("create_nfs_share", audit_str, request.META) return django.http.HttpResponseRedirect( '/view_nfs_shares?ack=created') except Exception, e: return_dict['base_template'] = "shares_base.html" return_dict["page_title"] = 'Create a NFS share ' return_dict['tab'] = 'view_nfs_shares_tab' return_dict["error"] = 'Error creating a NFS share' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def edit_nfs_share(request): return_dict = {} try: if request.method == "GET": #Return the conf page path = request.GET["path"] d, err = nfs.get_share(path) if err: raise Exception(err) if not d: raise Exception( 'Could not find the specified share. Please use the menus.' ) initial = {} initial['path'] = d['path'] if 'clients' in d: client_list = [] for client in d['clients']: client_list.append(client['name']) initial['clients'] = ','.join(client_list) initial['readonly'] = False initial['root_squash'] = False initial['all_squash'] = False if 'options' in d: for option in d['options']: if option == 'ro': initial['readonly'] = True elif option == 'root_squash': initial['root_squash'] = True elif option == 'all_squash': initial['all_squash'] = True form = nfs_shares_forms.ShareForm(initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response( "edit_nfs_share.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: form = nfs_shares_forms.ShareForm(request.POST) path = request.POST["path"] return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "edit_nfs_share.html", return_dict, context_instance=django.template.context.RequestContext( request)) cd = form.cleaned_data result, err = nfs.save_share(cd) if err: raise Exception(err) audit_str = "Edited NFS share %s" % path audit.audit("edit_nfs_share", audit_str, request.META) return django.http.HttpResponseRedirect( '/view_nfs_shares?ack=saved') except Exception, e: return_dict['base_template'] = "shares_base.html" return_dict["page_title"] = 'Modify a NFS share ' return_dict['tab'] = 'view_nfs_shares_tab' return_dict["error"] = 'Error modifying a NFS share' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))