Пример #1
0
def createserver():
    form = ServerForm()

    if request.method == "POST":
        if form.validate() == False:
            return render_template("server.html", form=form)
        else:
            arch = Arch.query.filter_by(id=form.arch.data).first()
            os = Os.query.filter_by(id=form.os.data).first()
            server = Server(
                hostname=form.hostname.data,
                ipv4=form.ipv4.data,
                port=form.port.data,
                arch=arch,
                os=os,
                cores=form.cores.data,
                ram=form.ram.data,
                hds=form.hds.data,
                cores_free=form.cores.data,
                ram_free=form.ram.data,
                hds_free=form.hds.data,
            )
            db.session.add(server)
            db.session.commit()

            list = [(s.hostname, s.ipv4, s.port, s.cores, s.ram, s.hds) for s in Server.query.order_by("hostname")]
            return render_template("servers.html", servers=list)
            # return render_template('server.html', form=ServerForm(formdata=None),servers=list)

    elif request.method == "GET":
        return render_template("server.html", form=form)
Пример #2
0
def server_add():

    from forms import ServerForm

    apps = Application.query.all()
    form = ServerForm(request.form)
    iapps = request.form.getlist('apps')
    iapps = Application.query.filter(
        Application.id.in_(iapps)).all()

    if form.validate_on_submit():

        s = Server()
        form.apps.data = [ 
            Application.query.get_or_404(x) \
            for x in form.apps.data]
        form.populate_obj(s)
        db.session.add(s)
        db.session.commit()
        return redirect(url_for(".server"))

    return render_template("server_add.html",
        form=form,
        apps=apps,
        iapps=iapps)
Пример #3
0
def server_create():
    if not can_create(current_user):
        abort(401)

    form = ServerForm(request.form)

    if request.method == 'POST' and form.validate():
        db_session = DBSession()
        server = get_server(db_session, form.hostname.data)
        if server is not None:
            return render_template('server/edit.html',
                                   form=form,
                                   duplicate_error=True)

        create_or_update_server_repository(
            db_session=db_session,
            hostname=form.hostname.data,
            server_type=form.server_type.data,
            server_url=form.server_url.data,
            username=form.username.data,
            password=form.password.data,
            vrf=form.vrf.data
            if form.server_type.data == ServerType.TFTP_SERVER
            or form.server_type.data == ServerType.FTP_SERVER else '',
            server_directory=form.server_directory.data,
            destination_on_host=form.destination_on_host.data,
            created_by=current_user.username)

        return redirect(url_for('home'))

    return render_template('server/edit.html', form=form)
Пример #4
0
def server_add(request):
	"Add a new server to the cluster"
	form = ServerForm(request.POST or None)
	if form.is_valid():
		form.save()
		return redirect('limeade_cluster_server_list')
	return render_to_response("limeade_cluster/server_add.html",
		{"form": form}, context_instance = RequestContext(request))
Пример #5
0
def server_edit(request, slug):
	"Edit a server"
	server = Server.objects.get(pk=slug)
	form = ServerForm(request.POST or None, instance=server)
	if form.is_valid():
		form.save()
		return redirect('limeade_cluster_server_list')
	return render_to_response("limeade_cluster/server_edit.html",
		{"form": form}, context_instance = RequestContext(request))
Пример #6
0
def addserver(request):
    if request.POST:
        form = ServerForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Server added!')
            return HttpResponseRedirect('/servers/add/')
    else:
        form = ServerForm()

    return render(request, 'addserver.html', locals())
Пример #7
0
def getServer(*args, **kwargs):
    """
    获取服务器信息
    """
    form = ServerForm(data=kwargs)
    if not form.validate():
        return dictify(test={"code": 1}, success=False, msg=u"表单参数有误")

    project_id = form.project_id.data
    cache = form.cache.data

    try:
        project = Project.objects.values("name").get(id=project_id)
    except:
        return dictify(test={"code": 2}, success=False, msg=u"业务不存在")

    service = SealService()
    try:
        servers = service.getServer(
            productName=project.get("name").encode("utf-8"), cache=cache)
    except:
        return dictify(test={"code": 3}, success=False, msg=u"海豹系统异常")

    data = []
    for i in servers:
        if i.get("wanIpTd"):
            host = i.get("wanIpTd").split(";")[0]
        elif i.get("cloudWanIp"):
            host = i.get("cloudWanIp").split(";")[0]
        elif i.get("lanIpTd"):
            host = i.get("lanIpTd").split(";")[0]
        elif i.get("cloudLanIp"):
            host = i.get("cloudLanIp").split(";")[0]
        else:
            continue

        if i.has_key("comment"):
            desc = i.get("comment", "")
        else:
            desc = i.get("yewuComment", "")

        server = {
            "host": host,
            "zone": i.get("zoneName", ""),
            "channel": i.get("channel", ""),
            "desc": desc,
            "function": i.get("function", "")
        }

        data.append(server)

    return dictify(test={"code": 4}, success=True, data=data)
Пример #8
0
def server_edit(hostname):
    db_session = DBSession()

    server = get_server(db_session, hostname)
    if server is None:
        abort(404)

    form = ServerForm(request.form)

    if request.method == 'POST' and form.validate():
        if not can_edit(current_user):
            abort(401)

        if hostname != form.hostname.data and get_server(
                db_session, form.hostname.data) is not None:
            return render_template('server/edit.html',
                                   form=form,
                                   duplicate_error=True)

        create_or_update_server_repository(
            db_session=db_session,
            hostname=form.hostname.data,
            server_type=form.server_type.data,
            server_url=form.server_url.data,
            username=form.username.data,
            password=form.password.data
            if len(form.password.data) > 0 else server.password,
            vrf=form.vrf.data
            if form.server_type.data == ServerType.TFTP_SERVER
            or form.server_type.data == ServerType.FTP_SERVER else '',
            server_directory=form.server_directory.data,
            destination_on_host=form.destination_on_host.data,
            created_by=current_user.username,
            server=server)

        return redirect(url_for('home'))
    else:
        # Assign the values to form fields
        form.hostname.data = server.hostname
        form.server_type.data = server.server_type
        form.server_url.data = server.server_url
        form.username.data = server.username
        form.vrf.data = server.vrf
        form.server_directory.data = server.server_directory
        form.destination_on_host.data = server.destination_on_host

        if not is_empty(server.password):
            form.password_placeholder = 'Use Password on File'
        else:
            form.password_placeholder = 'No Password Specified'

        return render_template('server/edit.html', form=form)
Пример #9
0
def getServer(*args, **kwargs):
    """
    获取服务器信息
    """
    form = ServerForm(data = kwargs)
    if not form.validate():
        return dictify(test = {"code": 1}, success = False, msg = u"表单参数有误")

    project_id = form.project_id.data
    cache = form.cache.data

    try:
        project = Project.objects.values("name").get(id = project_id)
    except:
        return dictify(test = {"code": 2}, success = False, msg = u"业务不存在")

    service = SealService()
    try:
        servers = service.getServer(productName = project.get("name").encode("utf-8"), cache = cache)
    except:
        return dictify(test = {"code": 3}, success = False, msg = u"海豹系统异常")

    data = []
    for i in servers:
        if i.get("wanIpTd"):
            host = i.get("wanIpTd").split(";")[0]
        elif i.get("cloudWanIp"):
            host = i.get("cloudWanIp").split(";")[0]
        elif i.get("lanIpTd"):
            host = i.get("lanIpTd").split(";")[0]
        elif i.get("cloudLanIp"):
            host = i.get("cloudLanIp").split(";")[0]
        else:
            continue

        if i.has_key("comment"):
            desc = i.get("comment", "")
        else:
            desc = i.get("yewuComment", "")

        server = {
            "host": host,
            "zone": i.get("zoneName", ""),
            "channel": i.get("channel", ""),
            "desc": desc,
            "function": i.get("function", "")
        }  

        data.append(server)

    return dictify(test = {"code": 4}, success = True, data = data)
Пример #10
0
def virtual_edit(request,uuid):
    server = get_object_or_404(Server, uuid=uuid)
    asset = server.asset
    cpu = asset.cpu
    cf = CPUForm(instance=cpu)
    af = AssetForm(instance=asset)
    sf = ServerForm(instance=server)

    nic = NIC.objects.filter(asset=asset)

    project_all = Project.objects.all()
    project_host = server.project.all()
    projects = [p for p in project_all if p not in project_host]

    service_all = Service.objects.all()
    service_host = server.service.all()
    services = [s for s in service_all if s not in service_host]

    if request.method == 'POST':
        af = AssetForm(request.POST, instance=asset)
        sf = ServerForm(request.POST, instance=server)
        cf = CPUForm(request.POST, instance=cpu)

        if all((af.is_valid(),sf.is_valid(),cf.is_valid())):
            asset_data = af.save()
            cpu_data = cf.save(commit=False)
            cpu_data.asset = asset_data
            cpu_data.save()
            server_data = sf.save(commit=False)
            server_data.asset = asset_data
            server_data.save()
            sf.save_m2m()
            return HttpResponseRedirect('/allow/welcome/')
    return render(request,'assets/virtual_edit.html', locals())
Пример #11
0
def server_add(request):
    """Add a new server to the cluster.
    
    :param request: the request object
    
    :returns: an edit form template
    """
    form = ServerForm(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect('limeade_cluster_server_list')
    return render_to_response("limeade_cluster/server_add.html",
                              {"form": form},
                              context_instance=RequestContext(request))
Пример #12
0
def server_add(request):
    """Add a new server to the cluster.
    
    :param request: the request object
    
    :returns: an edit form template
    """
    form = ServerForm(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect("limeade_cluster_server_list")
    return render_to_response(
        "limeade_cluster/server_add.html", {"form": form}, context_instance=RequestContext(request)
    )
Пример #13
0
def add(account):
    if request.method == 'POST':
        form = ServerForm(request.form)
        if form.validate():
            server = Server()
            form.populate_obj(server)
            server.put()
            flash(u'Server added!')
            return redirect(url_for('server.show',
                                     server_key=server.key.urlsafe()))
    else:
        form = ServerForm()

    return render_template('server/form.html', form=form, account=account)
Пример #14
0
def server_edit(request, slug):
    """Edit a server.
    
    :param request: the request object
    :param slug: the id of the server
    
    :returns: an edit form template
    """
    server = Server.objects.get(pk=slug)
    form = ServerForm(request.POST or None, instance=server)
    if form.is_valid():
        form.save()
        return redirect("limeade_cluster_server_list")
    return render_to_response(
        "limeade_cluster/server_edit.html", {"form": form}, context_instance=RequestContext(request)
    )
Пример #15
0
def server_edit(request, slug):
    """Edit a server.
    
    :param request: the request object
    :param slug: the id of the server
    
    :returns: an edit form template
    """
    server = Server.objects.get(pk=slug)
    form = ServerForm(request.POST or None, instance=server)
    if form.is_valid():
        form.save()
        return redirect('limeade_cluster_server_list')
    return render_to_response("limeade_cluster/server_edit.html",
                              {"form": form},
                              context_instance=RequestContext(request))
Пример #16
0
def addserver(request):
    if request.method == 'POST':
        form = ServerForm(request.POST)  #将提交的请求数据,绑定为表单
        if form.is_valid():  #用表单的方法校验数据是否合法
            Servers.objects.create(  #生成数据对象,自动保存到数据库中
                hostname=form.cleaned_data['hostname'],
                ip=form.cleaned_data['ip'],
                port=form.cleaned_data['port'],
                os=form.cleaned_data['os'],
                user=form.cleaned_data['user'],
                passwd=form.cleaned_data['passwd'],
                idc=form.cleaned_data['idc'],
            )
            return HttpResponseRedirect('/sm/server_manage')
    else:
        form = ServerForm()
    return render_to_response('sm/addserver.html', {'form': form})  #模板目录
Пример #17
0
def edit(account, server_key):
    server = get_server(server_key)
    if server is None:
        return abort(404)

    if request.method == 'POST':
        form = ServerForm(request.form)
        if form.validate():
            form.populate_obj(server)
            server.put()
            return redirect(url_for('server.show',
                server_key=server.key.urlsafe()))
    else:
        form = ServerForm(**server._to_dict())
       
    return render_template('/server/form.html', form=form,
                server_key=server.key.urlsafe(), account=account)
Пример #18
0
def editserver(request, server_id):
    servers = get_object_or_404(Server, pk=server_id)
    t = "Edit"

    if request.POST:
        form = ServerForm(request.POST, instance=servers)
        if form.is_valid():
            form.save()

            return HttpResponseRedirect('/servers/')

    else:
        form = ServerForm(instance=servers)

    return render_to_response("editserver.html", {
        'form': form,
        't': t,
    }, context_instance=RequestContext(request))
Пример #19
0
def create_server():
    form = ServerForm()
    if form.validate_on_submit():
        try:
            data = Data.query.filter_by(id=request.form['data']).all()[0]
        except:
            info = 'Нет такого Дата центра'
            return render_template('teh_info.html', info=info)
        server = Server(name_server=request.form['name_server'],
                        manufacturer=request.form['manufacturer'],
                        model_server=request.form['model_server'],
                        serial_number=request.form['serial_number'],
                        os=request.form['os'],
                        data=data)
        db.session.add(server)
        db.session.commit()
        return redirect(url_for('all_servers'))
    return render_template('create_server.html', form=form, title='Добавить')
Пример #20
0
def addserver(request):
	if request.method=='POST':
		form=ServerForm(request.POST)      #将提交的请求数据,绑定为表单
		print form
		if form.is_valid():             #用表单的方法校验数据是否合法
			Servers.objects.create(		#生成数据对象,自动保存到数据库中
			hostname=form.cleaned_data['hostname'],
			ip=form.cleaned_data['ip'],
			port=form.cleaned_data['port'],
			os=form.cleaned_data['os'],
			user=form.cleaned_data['user'],
			passwd=form.cleaned_data['passwd'],
			idc=form.cleaned_data['idc'],
			)
			return HttpResponseRedirect('/sm/server_manage')
	else:
		form=ServerForm()
	return render_to_response('sm/addserver.html',{'form':form})   #模板目录
Пример #21
0
def virtual_add(request):
    sf = ServerForm()
    af = AssetForm()
    cf = CPUForm()
    projects = Project.objects.all()
    services = Service.objects.all()
    ff_error = []
    if request.method == 'POST':
        af = AssetForm(request.POST)
        sf = ServerForm(request.POST)
        cf = CPUForm(request.POST)
        ip = request.POST.get('ssh_host', '')
        if Server.objects.filter(ssh_host=ip):
            ff_error.append(u'添加失败, 该IP %s 已存在!' % ip)
            return render(request,'assets/virtual_add.html', locals())
        if all((af.is_valid(),sf.is_valid(),cf.is_valid())):
            asset_data = af.save(commit=False)
            asset_data.asset_type = "virtual"
            asset_data.save()
            cpu_data = cf.save(commit=False)
            cpu_data.asset = asset_data
            cpu_data.save()
            cf.save_m2m()
            server_data = sf.save(commit=False)
            server_data.asset = asset_data
            server_data.save()
            sf.save_m2m()
## 网卡信息
            nic_name0 = request.POST.get('nic_name0', '')
            if nic_name0:
                for i in range(6):
                    nic_name = "nic_name" + str(i)
                    nic_name = request.POST.get(nic_name)

                    nic_memo = "nic_memo" + str(i)
                    nic_memo = request.POST.get(nic_memo)

                    nic_macaddress = "nic_macaddress" + str(i)
                    nic_macaddress = request.POST.get(nic_macaddress)

                    nic_ipaddress = "nic_ipaddress" + str(i)
                    nic_ipaddress = request.POST.get(nic_ipaddress)

                    nic_netmask = "nic_netmask" + str(i)
                    nic_netmask = request.POST.get(nic_netmask)

                    if nic_name and nic_macaddress:
                        NIC.objects.create(asset = asset_data,name=nic_name,macaddress=nic_macaddress,
                        ipaddress=nic_ipaddress,netmask=nic_netmask,memo=nic_memo)
            obj = get_object_or_404(Server, ssh_host=server_data.ssh_host)
            return render(request,'assets/asset_success.html', locals())
        else:
            ff_error.append("关键信息遗漏或格式错误")
    return render(request,'assets/virtual_add.html', locals())
Пример #22
0
def edit_server(request):
	id=request.GET.get('id')
	host_form=Servers.objects.filter(id=id)       #查询出id对应的主机
	if	request.method=='POST':
		form=ServerForm(request.POST)      #绑定表单
		if form.is_valid():             #如果提交的数据合法
			Servers.objects.filter(id=id).update(		#filter返回一个对象列表,用update更新数据库中的条目
			hostname=form.cleaned_data['hostname'],
			ip=form.cleaned_data['ip'],
			port=form.cleaned_data['port'],
			os=form.cleaned_data['os'],
			user=form.cleaned_data['user'],
			passwd=form.cleaned_data['passwd'],
			idc=form.cleaned_data['idc'],
			)
			return HttpResponseRedirect('/sm/server_manage')
	else:
		form=ServerForm()
	return render_to_response('sm/edit_server.html',{'form':host_form})
Пример #23
0
def new_server():
    '''
    Create new server
    '''
    form = ServerForm()
    if form.validate_on_submit():
        my_server = Server()
        form.populate_obj(my_server)
        db.session.add(my_server)
        try:
            db.session.commit()
            # User info
            flash('Server created correctly', 'success')
            return redirect(url_for('servers'))
        except:
            db.session.rollback()
            flash('Error generating server.', 'danger')

    return render_template('web/new_server.html', form=form)
Пример #24
0
def server_add():
    form = ServerForm()

    if form.validate_on_submit():
        form_name = form.name.data
        form_dns = form.dns.data
        form_ip = form.ip.data
        form_description = form.description.data

        new_server = Server(name=form_name,
            dns=form_dns,
            ip=form_ip,
            description=form_description)
        db.session.add(new_server)
        db.session.commit()

        return(redirect(url_for('index')))

    return(render_template('server_add.html',
        form=form))
Пример #25
0
def edit_server(request):
    id = request.GET.get('id')
    host_form = Servers.objects.filter(id=id)  #查询出id对应的主机
    if request.method == 'POST':
        form = ServerForm(request.POST)  #绑定表单
        if form.is_valid():  #如果提交的数据合法
            Servers.objects.filter(
                id=id).update(  #filter返回一个对象列表,用update更新数据库中的条目
                    hostname=form.cleaned_data['hostname'],
                    ip=form.cleaned_data['ip'],
                    port=form.cleaned_data['port'],
                    os=form.cleaned_data['os'],
                    user=form.cleaned_data['user'],
                    passwd=form.cleaned_data['passwd'],
                    idc=form.cleaned_data['idc'],
                )
            return HttpResponseRedirect('/sm/server_manage')
    else:
        form = ServerForm()
    return render_to_response('sm/edit_server.html', {'form': host_form})
Пример #26
0
def server_edit(id):
    server = Server.query.filter_by(id=id).first()
    form = ServerForm(obj=server)
    if not server:
        abort(404)
    if form.validate_on_submit():
        try:
            data = Data.query.filter_by(id=request.form['data']).all()[0]
        except IndexError:
            info = 'Нет такого Дата центра'
            return render_template('teh_info.html', info=info)

        server.name_server = request.form['name_server']
        server.manufacturer = request.form['manufacturer']
        server.model_server = request.form['model_server']
        server.serial_number = request.form['serial_number']
        server.os = request.form['os']
        server.data = data
        db.session.commit()
        return redirect(url_for('all_servers'))
    return render_template('create_server.html', form=form, title='Изменить')
Пример #27
0
def edit_server(id):
    '''
    Edit server

    :param id: Id from server
    '''
    my_server = Server.query.filter_by(id=id).first()
    form = ServerForm(obj=my_server)

    if form.validate_on_submit():
        try:
            # Update network
            form.populate_obj(my_server)
            db.session.add(my_server)
            db.session.commit()
            # User info
            flash('Saved successfully', 'success')
        except:
            db.session.rollback()
            flash('Error update network.', 'danger')

    return render_template('web/edit_server.html', form=form)
Пример #28
0
def servers(request):

    all_servers = Server.objects.all().order_by('name')

    if request.method == 'POST':
        form = ServerForm(request.POST)
        if form.is_valid():
            s = Server()
            s.set_from_dict(form.cleaned_data)

            all_pollers = Poller.objects.all().order_by('name')
            for p in all_pollers:
                try:
                    create_poller_dir(p.path, s.ipaddr)
                except Exception, e:
                    print str(e)
                    messages.error(request, 'There was an error creating the %s path on the server. Server not saved.' % p.path)
                    return render(request, 'dispatch_web/servers.html', {'form': form, 'servers': all_servers})

            s.save()
            return HttpResponseRedirect(reverse('dispatch:servers'))
        else:
            messages.error(request, 'There was an error submitting your information.')
Пример #29
0
def server_profile(server_id):
    form = ServerForm()
    server = Server.query.get(server_id)

    # Проверка существования объекта
    if not server:
        abort(404)

    if form.validate_on_submit():
        server.name = form.name.data
        server.dns = form.dns.data
        server.ip = form.ip.data
        server.description = form.description.data
        db.session.commit()

        return(redirect(request.referrer))

    # Вывод старого описания, по-другому никак потому что это TextArea
    form.description.data = server.description

    return(render_template('server_profile.html',
        form=form,
        server=server))
Пример #30
0
def sdgundam(request):
    serverid = request.GET.get('serverid')
    serverform = ServerForm(request.GET)
    if not serverid:
        if 'serverid' in request.COOKIES:
            serverid = request.COOKIES["serverid"]
        else:
            serverid = '0'
        serverform = ServerForm(request.COOKIES)
    user = request.user
    args = ''
    if user.is_authenticated():
        uid = user.id
        ptime = time.time()
        s = 'uid=pujia8_%s&serverid=0&ptime=%s&isadult=1&63311cb5289ca5e7d30050bfcb445828' % (
            uid, ptime)
        sign = hashlib.md5(s.encode('utf-8')).hexdigest()
        args = 'uid=pujia8_%s&serverid=0&ptime=%s&isadult=1&sign=%s' % (
            uid, ptime, sign)
    return render_to_response('webgames/sdgundam.html', {
        'args': args,
        'serverform': serverform
    },
                              context_instance=RequestContext(request))
Пример #31
0
def xsqst(request):
    serverid = request.GET.get('serverid')
    serverform = ServerForm(request.GET)
    if not serverid:
        if 'serverid' in request.COOKIES:
            serverid = request.COOKIES["serverid"]
        else:
            serverid = '0'
        serverform = ServerForm(request.COOKIES)
    user = request.user
    args = ''
    if user.is_authenticated():
        uid = user.email
        ptime = time.time()
        s = 'uid=%s&serverid=0&ptime=%s&isadult=1&65b8fe83281f2c28e87b426d2cea7d12' % (
            uid, ptime)
        sign = hashlib.md5(s.encode('utf-8')).hexdigest()
        args = 'uid=%s&serverid=0&ptime=%s&isadult=1&sign=%s' % (uid, ptime,
                                                                 sign)
    return render_to_response('webgames/xsqst.html', {
        'args': args,
        'serverform': serverform
    },
                              context_instance=RequestContext(request))
Пример #32
0
def server_edit(server_id):

    from forms import ServerForm

    s = Server.query.get_or_404(server_id)
    apps = Application.query.all()
    form = ServerForm(
        formdata=request.form, 
        obj=s)

    if form.validate_on_submit():

        form.apps.data = [ 
            Application.query.get_or_404(x) \
            for x in form.apps.data]
        form.populate_obj(s)

        db.session.commit()
        return redirect(url_for(".server"))

    return render_template("server_edit.html",
        form=form,
        apps=apps,
        s=s)
Пример #33
0
def server_add(request):
    sf = ServerForm()
    af = AssetForm()
    projects = Project.objects.all()
    services = Service.objects.all()
    ff_error = []
    if request.method == 'POST':
        af = AssetForm(request.POST)
        sf = ServerForm(request.POST)
        ip = request.POST.get('ssh_host', '')
        if Server.objects.filter(ssh_host=ip):
            ff_error.append(u'添加失败, 该IP %s 已存在!' % ip)
            return render(request, 'assets/server_add.html', locals())
        if all((af.is_valid(), sf.is_valid())):
            asset_data = af.save(commit=False)
            asset_data.asset_type = "serverhost"
            asset_data.save()
            server_data = sf.save(commit=False)
            server_data.asset = asset_data
            server_data.save()
            sf.save_m2m()
            ##网卡
            nic_name0 = request.POST.get('nic_name0', '')
            if nic_name0:
                for i in range(6):
                    nic_name = "nic_name" + str(i)
                    nic_name = request.POST.get(nic_name)
                    nic_ipaddress = "nic_ipaddress" + str(i)
                    nic_ipaddress = request.POST.get(nic_ipaddress)
                    if nic_name and nic_ipaddress:
                        NIC.objects.create(asset=asset_data,
                                           name=nic_name,
                                           ipaddress=nic_ipaddress)
            obj = server_data
            return render(request, 'assets/asset_success.html', locals())
        else:
            ff_error.append("关键信息遗漏或格式错误")
    return render(request, 'assets/server_add.html', locals())
Пример #34
0
def server_add(request):
    sf = ServerForm()
    af = AssetForm()
    cf = CPUForm()
    projects = Project.objects.all()
    services = Service.objects.all()
    ff_error = []
    if request.method == 'POST':
        af = AssetForm(request.POST)
        sf = ServerForm(request.POST)
        cf = CPUForm(request.POST)
        ip = request.POST.get('ssh_host', '')
        if Server.objects.filter(ssh_host=ip):
            ff_error.append(u'添加失败, 该IP %s 已存在!' % ip)
            return render(request,'assets/server_add.html', locals())
        if all((af.is_valid(),sf.is_valid(),cf.is_valid())):
            asset_data = af.save()
            cpu_data = cf.save(commit=False)
            cpu_data.asset = asset_data
            cpu_data.save()
            cf.save_m2m()
            server_data = sf.save(commit=False)
            server_data.asset = asset_data
            server_data.save()
            sf.save_m2m()
##网卡
            nic_name0 = request.POST.get('nic_name0', '')
            if nic_name0:
                for i in range(6):
                    nic_name = "nic_name" + str(i)
                    nic_name = request.POST.get(nic_name)

                    nic_memo = "nic_memo" + str(i)
                    nic_memo = request.POST.get(nic_memo)

                    nic_macaddress = "nic_macaddress" + str(i)
                    nic_macaddress = request.POST.get(nic_macaddress)

                    nic_ipaddress = "nic_ipaddress" + str(i)
                    nic_ipaddress = request.POST.get(nic_ipaddress)

                    nic_netmask = "nic_netmask" + str(i)
                    nic_netmask = request.POST.get(nic_netmask)

                    nic_model = "nic_model" + str(i)
                    nic_model = request.POST.get(nic_model)

                    if nic_name and nic_macaddress:
                        NIC.objects.create(asset = asset_data,name=nic_name,model=nic_model,macaddress=nic_macaddress,
                        ipaddress=nic_ipaddress,netmask=nic_netmask,memo=nic_memo)
            return HttpResponseRedirect('/allow/welcome/')
## 内存
            ram_model0 = request.POST.get('ram_model0', '')
            if ram_model0:
                for i in range(16):
                    ram_model = "ram_model" + str(i)
                    ram_model = request.POST.get(ram_model)

                    ram_slot = "ram_slot" + str(i)
                    ram_slot = request.POST.get(ram_slot)

                    ram_capacity = "ram_capacity" + str(i)
                    ram_capacity = request.POST.get(ram_capacity)

                    ram_sn = "ram_sn" + str(i)
                    ram_sn = request.POST.get(ram_sn)

                    ram_memo = "ram_memo" + str(i)
                    ram_memo = request.POST.get(ram_memo)

                    if ram_model and ram_capacity:
                        RAM.objects.create(asset = asset_data,model=ram_model,slot=ram_slot,
                        capacity=ram_capacity,sn=ram_sn,memo=ram_memo)
##硬盘
            disk_model0 = request.POST.get('disk_model0', '')
            if disk_model0:
                for i in range(12):
                    disk_model = "disk_model" + str(i)
                    disk_model = request.POST.get(disk_model)

                    disk_manufactory = "disk_manufactory" + str(i)
                    disk_manufactory = request.POST.get(disk_manufactory)

                    disk_capacity = "disk_capacity" + str(i)
                    disk_capacity = request.POST.get(disk_capacity)

                    disk_iface_type = "disk_iface_type" + str(i)
                    disk_iface_type = request.POST.get(disk_iface_type)

                    disk_slot = "disk_slot" + str(i)
                    disk_slot = request.POST.get(disk_slot)

                    disk_sn = "disk_sn" + str(i)
                    disk_sn = request.POST.get(disk_sn)

                    disk_memo = "disk_memo" + str(i)
                    disk_memo = request.POST.get(disk_memo)

                    if disk_model and disk_capacity:
                        Disk.objects.create(asset = asset_data,model=disk_model,manufactory=disk_manufactory,iface_type=disk_iface_type,slot=disk_slot,
                        capacity=disk_capacity,sn=disk_sn,memo=disk_memo)
##raid卡
            raid_model0 = request.POST.get('raid_model0', '')
            if raid_model0:
                for i in range(2):
                    raid_model = "raid_model" + str(i)
                    raid_model = request.POST.get(raid_model)

                    raid_slot = "raid_slot" + str(i)
                    raid_slot = request.POST.get(raid_slot)

                    raid_sn = "raid_sn" + str(i)
                    raid_sn = request.POST.get(raid_sn)

                    raid_memo = "raid_memo" + str(i)
                    raid_memo = request.POST.get(raid_memo)

                    if raid_model and raid_slot:
                        RaidAdaptor.objects.create(asset = asset_data,model=raid_model,slot=raid_slot,
                        sn=raid_sn,memo=raid_memo)

            return HttpResponseRedirect('/allow/welcome/')
        else:
            ff_error.append("关键信息遗漏或格式错误")
    return render(request,'assets/server_add.html', locals())