mirror of
https://github.com/veops/cmdb.git
synced 2025-08-08 14:50:56 +08:00
v1 vsersion
This commit is contained in:
99
lib/const.py
Normal file
99
lib/const.py
Normal file
@@ -0,0 +1,99 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
|
||||
import datetime
|
||||
|
||||
from models.attribute import TextChoice
|
||||
from models.attribute import FloatChoice
|
||||
from models.attribute import IntegerChoice
|
||||
from models.attribute import CIAttributeCache
|
||||
from models.ci_value import CIValueText
|
||||
from models.ci_value import CIValueInteger
|
||||
from models.ci_value import CIValueFloat
|
||||
from models.ci_value import CIValueDateTime
|
||||
from models.ci_value import CIIndexValueDateTime
|
||||
from models.ci_value import CIIndexValueFloat
|
||||
from models.ci_value import CIIndexValueInteger
|
||||
from models.ci_value import CIIndexValueText
|
||||
|
||||
|
||||
def string2int(x):
|
||||
return int(float(x))
|
||||
|
||||
|
||||
def str2datetime(x):
|
||||
try:
|
||||
v = datetime.datetime.strptime(x, "%Y-%m-%d")
|
||||
return v
|
||||
except ValueError:
|
||||
pass
|
||||
try:
|
||||
v = datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S")
|
||||
return v
|
||||
except ValueError:
|
||||
pass
|
||||
raise ValueError
|
||||
|
||||
|
||||
type_map = {
|
||||
'converter': {
|
||||
'int': string2int,
|
||||
'float': float,
|
||||
'text': unicode,
|
||||
'datetime': str2datetime,
|
||||
},
|
||||
'choice': {
|
||||
'int': IntegerChoice,
|
||||
'float': FloatChoice,
|
||||
'text': TextChoice,
|
||||
},
|
||||
'table': {
|
||||
'int': CIValueInteger,
|
||||
'text': CIValueText,
|
||||
'datetime': CIValueDateTime,
|
||||
'float': CIValueFloat,
|
||||
'index_int': CIIndexValueInteger,
|
||||
'index_text': CIIndexValueText,
|
||||
'index_datetime': CIIndexValueDateTime,
|
||||
'index_float': CIIndexValueFloat,
|
||||
},
|
||||
'table_name': {
|
||||
'int': 'integers',
|
||||
'text': 'texts',
|
||||
'datetime': 'datetime',
|
||||
'float': 'floats',
|
||||
'index_int': 'index_integers',
|
||||
'index_text': 'index_texts',
|
||||
'index_datetime': 'index_datetime',
|
||||
'index_float': 'index_floats',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TableMap():
|
||||
def __init__(self, attr_name=None):
|
||||
self.attr_name = attr_name
|
||||
|
||||
@property
|
||||
def table(self):
|
||||
if self.attr_name is not None:
|
||||
attr = CIAttributeCache.get(self.attr_name)
|
||||
if attr.is_index:
|
||||
i = "index_{0}".format(attr.value_type)
|
||||
else:
|
||||
i = attr.value_type
|
||||
return type_map["table"].get(i)
|
||||
|
||||
@property
|
||||
def table_name(self):
|
||||
if self.attr_name is not None:
|
||||
attr = CIAttributeCache.get(self.attr_name)
|
||||
if attr.is_index:
|
||||
i = "index_{0}".format(attr.value_type)
|
||||
else:
|
||||
i = attr.value_type
|
||||
return type_map["table_name"].get(i)
|
||||
|
||||
|
||||
CITYPE_RELATION_TYPES = ["connect", "deploy", "install", "contain"]
|
||||
CI_RELATION_TYPES = ["connect", "deploy", "install", "contain"]
|
Reference in New Issue
Block a user