Commit 159398b3 authored by root's avatar root

fix bugs

parent 0c0f05b6
# coding: utf-8 # coding: utf-8
import xlsxwriter
from jumpserver.api import * from jumpserver.api import *
...@@ -171,3 +173,62 @@ def db_asset_update(**kwargs): ...@@ -171,3 +173,62 @@ def db_asset_update(**kwargs):
# else: # else:
# return httperror(request, '删除失败, 没有这个IDC!') # return httperror(request, '删除失败, 没有这个IDC!')
SERVER_STATUS = {1: u"已安装系统", 2: u"未安装系统", 3: u"正在安装系统", 4: u"报废"}
now = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M')
file_name = 'cmdb_excel_' + now + '.xlsx'
workbook = xlsxwriter.Workbook('static/excels/%s' % file_name)
worksheet = workbook.add_worksheet('CMDB数据')
worksheet.set_first_sheet()
worksheet.set_column('A:Z', 15)
def write_excel(hosts):
data = []
title = [u'主机名', u'IP', u'IDC', u'MAC', u'远控IP', u'CPU', u'内存', u'硬盘', u'操作系统', u'机柜位置',
u'资产编号', u'所属业务', u'机器状态', u'SN', u'运行服务', u'备注']
for host in hosts:
projects_list, services_list = [], []
for p in host.project.all():
projects_list.append(p.name)
for s in host.service.all():
print s.name, s.port
services_list.append(s.name + '-' + str(s.port))
projects = '/'.join(projects_list)
services = '/'.join(services_list)
status = SERVER_STATUS.get(int(host.status))
info = [host.hostname, host.eth1, host.idc.name, host.mac, host.remote_ip, host.cpu, host.memory,
host.disk, host.system_type, host.cabinet, host.number, projects, status,
host.sn, services, host.comment]
data.append(info)
print data
format = workbook.add_format()
format.set_border(1)
format.set_align('center')
format_title = workbook.add_format()
format_title.set_border(1)
format_title.set_bg_color('#cccccc')
format_title.set_align('center')
format_title.set_bold()
format_ave = workbook.add_format()
format_ave.set_border(1)
format_ave.set_num_format('0.00')
worksheet.write_row('A1', title, format_title)
i = 2
for info in data:
location = 'A' + str(i)
worksheet.write_row(location, info, format)
i += 1
workbook.close()
ret = (True, file_name)
return ret
def sort_ip_list(ip_list):
""" ip地址排序 """
ip_list.sort(key=lambda s: map(int, s.split('.')))
return ip_list
\ No newline at end of file
...@@ -4,6 +4,23 @@ import datetime ...@@ -4,6 +4,23 @@ import datetime
from django.db import models from django.db import models
from juser.models import User, UserGroup from juser.models import User, UserGroup
ENVIRONMENT = (
(0, U'生产环境'),
(1, U'测试环境')
)
ASSET_STATUS = (
(0, u"已使用"),
(1, u"未使用"),
(2, u"报废")
)
ASSET_TYPE = (
(0, u"服务器"),
(2, u"网络设备"),
(3, u"其他")
)
class AssetGroup(models.Model): class AssetGroup(models.Model):
GROUP_TYPE = ( GROUP_TYPE = (
...@@ -83,21 +100,6 @@ class Asset(models.Model): ...@@ -83,21 +100,6 @@ class Asset(models.Model):
""" """
asset modle asset modle
""" """
ENVIRONMENT = (
(0, U'生产环境'),
(1, U'测试环境')
)
SERVER_STATUS = (
(0, u"已使用"),
(1, u"未使用"),
(2, u"报废")
)
ASSET_TYPE = (
(0, u"服务器"),
(2, u"网络设备"),
(3, u"其他")
)
ip = models.IPAddressField(unique=True, verbose_name=u"主机IP") ip = models.IPAddressField(unique=True, verbose_name=u"主机IP")
second_ip = models.CharField(max_length=255, blank=True, null=True, verbose_name=u"其他IP") second_ip = models.CharField(max_length=255, blank=True, null=True, verbose_name=u"其他IP")
hostname = models.CharField(max_length=64, blank=True, null=True, verbose_name=u"主机名") hostname = models.CharField(max_length=64, blank=True, null=True, verbose_name=u"主机名")
...@@ -118,7 +120,7 @@ class Asset(models.Model): ...@@ -118,7 +120,7 @@ class Asset(models.Model):
cabinet = models.CharField(max_length=32, blank=True, null=True, verbose_name=u'机柜号') cabinet = models.CharField(max_length=32, blank=True, null=True, verbose_name=u'机柜号')
position = models.IntegerField(max_length=2, blank=True, null=True, verbose_name=u'机器位置') position = models.IntegerField(max_length=2, blank=True, null=True, verbose_name=u'机器位置')
number = models.CharField(max_length=32, blank=True, null=True, verbose_name=u'资产编号') number = models.CharField(max_length=32, blank=True, null=True, verbose_name=u'资产编号')
status = models.IntegerField(max_length=2, choices=SERVER_STATUS, blank=True, null=True, default=1, verbose_name=u"机器状态") status = models.IntegerField(max_length=2, choices=ASSET_STATUS, blank=True, null=True, default=1, verbose_name=u"机器状态")
asset_type = models.IntegerField(max_length=2, choices=ASSET_TYPE, blank=True, null=True, verbose_name=u"主机类型") asset_type = models.IntegerField(max_length=2, choices=ASSET_TYPE, blank=True, null=True, verbose_name=u"主机类型")
env = models.IntegerField(max_length=2, choices=ENVIRONMENT, blank=True, null=True, verbose_name=u"运行环境") env = models.IntegerField(max_length=2, choices=ENVIRONMENT, blank=True, null=True, verbose_name=u"运行环境")
sn = models.CharField(max_length=32, blank=True, null=True, verbose_name=u"SN编号") sn = models.CharField(max_length=32, blank=True, null=True, verbose_name=u"SN编号")
...@@ -129,22 +131,6 @@ class Asset(models.Model): ...@@ -129,22 +131,6 @@ class Asset(models.Model):
def __unicode__(self): def __unicode__(self):
return self.ip return self.ip
def get_user(self):
perm_list = []
asset_group_all = self.bis_group.all()
for asset_group in asset_group_all:
perm_list.extend(asset_group.perm_set.all())
user_group_list = []
for perm in perm_list:
user_group_list.append(perm.user_group)
user_permed_list = []
for user_group in user_group_list:
user_permed_list.extend(user_group.user_set.all())
user_permed_list = list(set(user_permed_list))
return user_permed_list
class AssetAlias(models.Model): class AssetAlias(models.Model):
user = models.ForeignKey(User) user = models.ForeignKey(User)
......
...@@ -12,6 +12,7 @@ urlpatterns = patterns('', ...@@ -12,6 +12,7 @@ urlpatterns = patterns('',
url(r'^asset_del/$', asset_del), url(r'^asset_del/$', asset_del),
url(r"^asset_detail/$", asset_detail), url(r"^asset_detail/$", asset_detail),
url(r'^asset_edit/$', asset_edit), url(r'^asset_edit/$', asset_edit),
url(r'^asset_search/$', asset_search),
# url(r'^search/$', host_search), # url(r'^search/$', host_search),
# url(r"^host_detail/$", host_detail), # url(r"^host_detail/$", host_detail),
# url(r"^dept_host_ajax/$", dept_host_ajax), # url(r"^dept_host_ajax/$", dept_host_ajax),
......
This diff is collapsed.
...@@ -119,3 +119,11 @@ function selectAll(){ ...@@ -119,3 +119,11 @@ function selectAll(){
// }) // })
//} //}
function getIDall() {
var check_array = [];
$(".gradeX input:checked").each(function () {
var id = $(this).attr("value");
check_array.push(id);
});
return check_array.join(",");
}
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment