我的项目经验

私有云项目

客户有(北京王府井集团,国家电网,神州数码)




相关代码

前端页部分代码

后端部分代码

from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.forms.models import model_to_dict, save_instance
from django.http import HttpResponse
from db.models import *
from db.apis import *
from db.joblistener import send_welcome_email_to_internal, send_welcome_email
from sysadmin.views import *
from sysadmin.forms import *
from django.template.context import RequestContext
from django.utils.translation import ugettext as _
from sysadmin.templatetags.tags import *
from nexus.util import encrypt_password


@login_required
@permit_require('cloudserver_r')
@db_cached_view
@active_navs('cloud_server', 'cloud_server')
def index(request):
    customer_list = User.objects.order_by('customer_name')
    physical_server = PhysicalServer.objects.filter(
        hyperviser__in=["kvm"]).order_by('host_name')
    image_list = Image.objects.filter(status="Ready").order_by('name')
    data_center = DataCenter.objects.order_by('name')
    cluster_list = Cluster.objects.order_by('name')
    data = {
        'customer_list': customer_list,
        'physical_server': physical_server,
        'image_list': image_list,
        'data_center_list': data_center,
        'cluster_list': cluster_list,
        'cpu_modes': CPU_MODES,
    }
    return render(request, 'sysadmin/cloud_server/cloud_server_list.html', data)


@login_required
@permit_require('cloudserver_r')
@db_cached_view
def cloudservers_json(request):
    def query_fields(key_word):
        query = (Q(name__contains=key_word) |
                 Q(host_name__contains=key_word) |
                 Q(image__name__contains=key_word) |
                 Q(physical_server__host_name__contains=key_word) |
                 Q(user__customer_name__contains=key_word) |
                 Q(status__contains=key_word))
        return query

    def order_callback(qobj, column):
        sortable = {0: "name",
                    1: "host_name",
                    2: "user__customer_name",
                    5: "status",
                    6: "image__name",
                    11: "created_at"
                    }
        order = sortable[0]
        if column in sortable:
            order = sortable[column]
        return qobj.order_by(order)

    data = generate_query_data(VirtualServer, request,
                               create_and_search_callback(query_fields),
                               order_callback, generate_vserver_list)
    return response_200(json.dumps(data))


def generate_vserver_list(vservers):
    ret = []
    for vserver in vservers:
        if vserver.bandwidth >= 0:
            bandwidth_str = vserver.bandwidth
        else:
            bandwidth_str = " "
        if vserver.physical_server:
            pserver_str = "<a href=\"/admin/server/show/%s\">%s</a>" % (
                vserver.physical_server.id, vserver.physical_server.host_name)
        else:
            pserver_str = ""
        user_content = ""
        if vserver.user:
            user_content = "<a href=\"/admin/customer/show/%s\">%s</a>" % (
                vserver.user.id, vserver.user.customer_name)

        ret.append([
            "<a data-id=\"%s\" href=\"/admin/cloudserver/show/%s\">%s</a>" % (
                vserver.id, vserver.id, vserver.name),
            vserver.host_name,
            user_content,
            vserver.ip_address_str(),
            pserver_str,
            "<div style=\"color: %s\">%s</div>" % (
                vstatus_color(vserver.status), _(vserver.status)),
            vserver.image.name,
            vserver.cpu,
            vserver.memory,
            vserver.disk,
            bandwidth_str,
            format_time(vserver.created_at)
        ])
    return ret


@login_required
@permit_require('cloudserver_w')
@log_action(action="Create Cloud Server", method="POST")
def create(request):
    form = VirtualServerForm(request.POST)
    form.fields['network_type_name'].choices = get_network_type_names()
    if form.is_valid():
        vserver = create_virtual_server_from_form(request, form)
        id = vserver.id
        return render_json({'url': reverse('cloudserver_show', kwargs={'id': id})})
    return render_form_error(form)

公有云项目

(公司主营,公有云管理平台,让客户对所有云计算资源以及存储进行一键化操作)


相关代码

前端页面部分代码

后端部分代码

官网接口文档编写与测试

对象存储(object_storage)相关技术

客户(当当网、民族证券)

对象存储(object_storage)

Python相关代码


热评文章