cmdb/api/commands/click_cmdb.py

32 lines
637 B
Python

# -*- coding:utf-8 -*-
import json
import click
from flask.cli import with_appcontext
import api.lib.cmdb.ci
from api.extensions import db
from api.extensions import rd
from api.models.cmdb import CI
@click.command()
@with_appcontext
def init_cache():
db.session.remove()
cis = CI.get_by(to_dict=False)
for ci in cis:
if list(filter(lambda x: x, rd.get([ci.id]))):
continue
m = api.lib.cmdb.ci.CIManager()
ci_dict = m.get_ci_by_id_from_db(ci.id, need_children=False, use_master=False)
rd.delete(ci.id)
rd.add({ci.id: json.dumps(ci_dict)})
db.session.remove()