mirror of https://github.com/veops/cmdb.git
fix(api): ipam assign address
This commit is contained in:
parent
b1f8a0024b
commit
f277cf088e
|
@ -106,8 +106,8 @@ class IpAddressManager(object):
|
||||||
ci_id = ip2ci[ip]['_id']
|
ci_id = ip2ci[ip]['_id']
|
||||||
CIManager().update(ci_id, _sync=True, **kwargs)
|
CIManager().update(ci_id, _sync=True, **kwargs)
|
||||||
if IPAddressBuiltinAttributes.ASSIGN_STATUS in kwargs and (
|
if IPAddressBuiltinAttributes.ASSIGN_STATUS in kwargs and (
|
||||||
kwargs[IPAddressBuiltinAttributes.ASSIGN_STATUS] !=
|
(kwargs[IPAddressBuiltinAttributes.ASSIGN_STATUS] or 2) !=
|
||||||
ip2ci[ip].get(IPAddressBuiltinAttributes.ASSIGN_STATUS)):
|
(ip2ci[ip].get(IPAddressBuiltinAttributes.ASSIGN_STATUS) or 2)):
|
||||||
status_change_num += 1
|
status_change_num += 1
|
||||||
ci_ids.append(ci_id)
|
ci_ids.append(ci_id)
|
||||||
|
|
||||||
|
|
|
@ -265,9 +265,9 @@ class SubnetManager(object):
|
||||||
|
|
||||||
return _id
|
return _id
|
||||||
|
|
||||||
def delete(self, _id):
|
@classmethod
|
||||||
if CIRelation.get_by(only_query=True).join(CI, CI.id == CIRelation.second_ci_id).filter(
|
def delete(cls, _id):
|
||||||
CIRelation.first_ci_id == _id).filter(CI.type_id == self.type_id).first():
|
if CIRelation.get_by(only_query=True).filter(CIRelation.first_ci_id == _id).first():
|
||||||
return abort(400, ErrFormat.ipam_subnet_cannot_delete)
|
return abort(400, ErrFormat.ipam_subnet_cannot_delete)
|
||||||
|
|
||||||
existed = IPAMSubnetScan.get_by(ci_id=_id, first=True, to_dict=False)
|
existed = IPAMSubnetScan.get_by(ci_id=_id, first=True, to_dict=False)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding:utf-8 -*-
|
# -*- coding:utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
from flask import current_app
|
||||||
from sqlalchemy import func
|
from sqlalchemy import func
|
||||||
|
|
||||||
from api.extensions import db
|
from api.extensions import db
|
||||||
|
@ -32,11 +33,21 @@ class DBMixin(object):
|
||||||
|
|
||||||
for k in kwargs:
|
for k in kwargs:
|
||||||
if hasattr(cls.cls, k):
|
if hasattr(cls.cls, k):
|
||||||
query = query.filter(getattr(cls.cls, k) == kwargs[k])
|
if isinstance(kwargs[k], list):
|
||||||
if count_query:
|
query = query.filter(getattr(cls.cls, k).in_(kwargs[k]))
|
||||||
_query = _query.filter(getattr(cls.cls, k) == kwargs[k])
|
if count_query:
|
||||||
|
_query = _query.filter(getattr(cls.cls, k).in_(kwargs[k]))
|
||||||
|
else:
|
||||||
|
if "*" in str(kwargs[k]):
|
||||||
|
query = query.filter(getattr(cls.cls, k).ilike(kwargs[k].replace('*', '%')))
|
||||||
|
if count_query:
|
||||||
|
_query = _query.filter(getattr(cls.cls, k).ilike(kwargs[k].replace('*', '%')))
|
||||||
|
else:
|
||||||
|
query = query.filter(getattr(cls.cls, k) == kwargs[k])
|
||||||
|
if count_query:
|
||||||
|
_query = _query.filter(getattr(cls.cls, k) == kwargs[k])
|
||||||
|
|
||||||
if reverse:
|
if reverse in current_app.config.get('BOOL_TRUE'):
|
||||||
query = query.order_by(cls.cls.id.desc())
|
query = query.order_by(cls.cls.id.desc())
|
||||||
|
|
||||||
if only_query and not count_query:
|
if only_query and not count_query:
|
||||||
|
|
|
@ -476,6 +476,7 @@ class PreferenceShowAttributes(Model):
|
||||||
uid = db.Column(db.Integer, index=True, nullable=False)
|
uid = db.Column(db.Integer, index=True, nullable=False)
|
||||||
type_id = db.Column(db.Integer, db.ForeignKey("c_ci_types.id"), nullable=False)
|
type_id = db.Column(db.Integer, db.ForeignKey("c_ci_types.id"), nullable=False)
|
||||||
attr_id = db.Column(db.Integer, db.ForeignKey("c_attributes.id"))
|
attr_id = db.Column(db.Integer, db.ForeignKey("c_attributes.id"))
|
||||||
|
builtin_attr = db.Column(db.String(256), nullable=True)
|
||||||
order = db.Column(db.SmallInteger, default=0)
|
order = db.Column(db.SmallInteger, default=0)
|
||||||
is_fixed = db.Column(db.Boolean, default=False)
|
is_fixed = db.Column(db.Boolean, default=False)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue