mirror of https://github.com/veops/cmdb.git
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
bb9d7da435
|
@ -10,6 +10,8 @@ from api.lib.cmdb.cache import AttributeCache
|
||||||
from api.lib.cmdb.cache import CITypeAttributeCache
|
from api.lib.cmdb.cache import CITypeAttributeCache
|
||||||
from api.lib.cmdb.cache import CITypeAttributesCache
|
from api.lib.cmdb.cache import CITypeAttributesCache
|
||||||
from api.lib.cmdb.cache import CITypeCache
|
from api.lib.cmdb.cache import CITypeCache
|
||||||
|
from api.lib.cmdb.const import CMDB_QUEUE
|
||||||
|
from api.lib.cmdb.value import AttributeValueManager
|
||||||
from api.lib.decorator import kwargs_required
|
from api.lib.decorator import kwargs_required
|
||||||
from api.models.cmdb import CI
|
from api.models.cmdb import CI
|
||||||
from api.models.cmdb import CIType
|
from api.models.cmdb import CIType
|
||||||
|
@ -282,6 +284,8 @@ class CITypeAttributeManager(object):
|
||||||
:param attr_ids: list
|
:param attr_ids: list
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
from api.tasks.cmdb import ci_cache
|
||||||
|
|
||||||
cls._check(type_id, attr_ids)
|
cls._check(type_id, attr_ids)
|
||||||
|
|
||||||
for attr_id in attr_ids:
|
for attr_id in attr_ids:
|
||||||
|
@ -292,6 +296,11 @@ class CITypeAttributeManager(object):
|
||||||
if existed is not None:
|
if existed is not None:
|
||||||
existed.soft_delete()
|
existed.soft_delete()
|
||||||
|
|
||||||
|
for ci in CI.get_by(type_id=type_id, to_dict=False):
|
||||||
|
AttributeValueManager.delete_attr_value(attr_id, ci.id)
|
||||||
|
|
||||||
|
ci_cache.apply_async([ci.id], queue=CMDB_QUEUE)
|
||||||
|
|
||||||
CITypeAttributeCache.clean(type_id, attr_id)
|
CITypeAttributeCache.clean(type_id, attr_id)
|
||||||
|
|
||||||
CITypeAttributesCache.clean(type_id)
|
CITypeAttributesCache.clean(type_id)
|
||||||
|
|
|
@ -11,6 +11,7 @@ from api.lib.cmdb.cache import AttributeCache
|
||||||
from api.lib.cmdb.cache import CITypeAttributeCache
|
from api.lib.cmdb.cache import CITypeAttributeCache
|
||||||
from api.lib.cmdb.const import ExistPolicy
|
from api.lib.cmdb.const import ExistPolicy
|
||||||
from api.lib.cmdb.const import OperateType
|
from api.lib.cmdb.const import OperateType
|
||||||
|
from api.lib.cmdb.const import ValueTypeEnum
|
||||||
from api.lib.cmdb.history import AttributeHistoryManger
|
from api.lib.cmdb.history import AttributeHistoryManger
|
||||||
from api.lib.cmdb.utils import TableMap
|
from api.lib.cmdb.utils import TableMap
|
||||||
from api.lib.cmdb.utils import ValueTypeMap
|
from api.lib.cmdb.utils import ValueTypeMap
|
||||||
|
@ -156,7 +157,20 @@ class AttributeValueManager(object):
|
||||||
existed_value = existed_attr and existed_attr.value
|
existed_value = existed_attr and existed_attr.value
|
||||||
if existed_value is None:
|
if existed_value is None:
|
||||||
value_table.create(ci_id=ci.id, attr_id=attr.id, value=value)
|
value_table.create(ci_id=ci.id, attr_id=attr.id, value=value)
|
||||||
|
|
||||||
self._write_change(ci.id, attr.id, OperateType.ADD, None, value)
|
self._write_change(ci.id, attr.id, OperateType.ADD, None, value)
|
||||||
|
else:
|
||||||
|
if not value and attr.value_type != ValueTypeEnum.TEXT:
|
||||||
|
existed_attr.delete()
|
||||||
else:
|
else:
|
||||||
existed_attr.update(value=value)
|
existed_attr.update(value=value)
|
||||||
|
|
||||||
self._write_change(ci.id, attr.id, OperateType.UPDATE, existed_value, value)
|
self._write_change(ci.id, attr.id, OperateType.UPDATE, existed_value, value)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def delete_attr_value(attr_id, ci_id):
|
||||||
|
attr = AttributeCache.get(attr_id)
|
||||||
|
if attr is not None:
|
||||||
|
value_table = TableMap(attr_name=attr.name).table
|
||||||
|
for item in value_table.get_by(attr_id=attr.id, ci_id=ci_id, to_dict=False):
|
||||||
|
item.delete()
|
||||||
|
|
|
@ -132,7 +132,7 @@ export default {
|
||||||
let q = `q=_type:${this.$router.currentRoute.meta.typeId}`
|
let q = `q=_type:${this.$router.currentRoute.meta.typeId}`
|
||||||
Object.keys(params).forEach(key => {
|
Object.keys(params).forEach(key => {
|
||||||
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
||||||
if (typeof params[key] === 'object' && params[key].length > 1) {
|
if (typeof params[key] === 'object' && params[key] && params[key].length > 1) {
|
||||||
q += `,${key}:(${params[key].join(';')})`
|
q += `,${key}:(${params[key].join(';')})`
|
||||||
} else if (params[key]) {
|
} else if (params[key]) {
|
||||||
q += `,${key}:*${params[key]}*`
|
q += `,${key}:*${params[key]}*`
|
||||||
|
|
|
@ -89,7 +89,7 @@ export default {
|
||||||
let q = ''
|
let q = ''
|
||||||
Object.keys(params).forEach(key => {
|
Object.keys(params).forEach(key => {
|
||||||
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
||||||
if (typeof params[key] === 'object' && params[key].length > 1) {
|
if (typeof params[key] === 'object' && params[key] && params[key].length > 1) {
|
||||||
q += `,${key}:(${params[key].join(';')})`
|
q += `,${key}:(${params[key].join(';')})`
|
||||||
} else if (params[key]) {
|
} else if (params[key]) {
|
||||||
q += `,${key}:*${params[key]}*`
|
q += `,${key}:*${params[key]}*`
|
||||||
|
|
|
@ -69,7 +69,7 @@ export default {
|
||||||
let q = `q=_type:${this.typeId}`
|
let q = `q=_type:${this.typeId}`
|
||||||
Object.keys(params).forEach(key => {
|
Object.keys(params).forEach(key => {
|
||||||
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
if (!['pageNo', 'pageSize', 'sortField', 'sortOrder'].includes(key) && params[key] + '' !== '') {
|
||||||
if (typeof params[key] === 'object' && params[key].length > 1) {
|
if (typeof params[key] === 'object' && params[key] && params[key].length > 1) {
|
||||||
q += `,${key}:(${params[key].join(';')})`
|
q += `,${key}:(${params[key].join(';')})`
|
||||||
} else if (params[key]) {
|
} else if (params[key]) {
|
||||||
q += `,${key}:*${params[key]}*`
|
q += `,${key}:*${params[key]}*`
|
||||||
|
|
Loading…
Reference in New Issue