nfv/nfv/nfv-vim/nfv_vim/database/_database_infrastructure_mo...

192 lines
6.4 KiB
Python
Executable File

#
# Copyright (c) 2015-2016 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import json
from nfv_vim import nfvi
from nfv_vim import objects
from nfv_vim.database import model
from nfv_vim.database._database import database_get
def database_system_add(system_obj):
"""
Add a system object to the database
"""
db = database_get()
session = db.session()
query = session.query(model.System).filter(model.System.name ==
system_obj.name)
system = query.first()
if not system:
system = model.System()
system.name = system_obj.name
system.description = system_obj.description
session.add(system)
else:
system.description = system_obj.description
db.commit()
def database_system_delete(system_name):
"""
Delete a system object from the database
"""
db = database_get()
session = db.session()
query = session.query(model.System)
query.filter(model.System.name == system_name).delete()
session.commit()
def database_system_get_list():
"""
Fetch all the system objects from the database
"""
db = database_get()
session = db.session()
query = session.query(model.System)
system_objs = list()
for system in query.all():
system_obj = objects.System(system.name, system.description)
system_objs.append(system_obj)
return system_objs
def database_host_add(host_obj):
"""
Add a host object to the database
"""
db = database_get()
session = db.session()
query = session.query(model.Host_v6).filter(model.Host_v6.name == host_obj.name)
host = query.first()
if not host:
host = model.Host_v6()
host.uuid = host_obj.uuid
host.name = host_obj.name
host.personality = host_obj.personality
host.state = host_obj.state
host.action = host_obj.action
host.upgrade_inprogress = host_obj.upgrade_inprogress
host.recover_instances = host_obj.recover_instances
host.uptime = host_obj.uptime
host.elapsed_time_in_state = host_obj.elapsed_time_in_state
host.host_services_locked = host_obj.host_services_locked
host.nfvi_host_data = json.dumps(host_obj.nfvi_host.as_dict())
session.add(host)
else:
host.state = host_obj.state
host.action = host_obj.action
host.upgrade_inprogress = host_obj.upgrade_inprogress
host.recover_instances = host_obj.recover_instances
host.uptime = host_obj.uptime
host.elapsed_time_in_state = host_obj.elapsed_time_in_state
host.host_services_locked = host_obj.host_services_locked
host.nfvi_host_data = json.dumps(host_obj.nfvi_host.as_dict())
db.commit()
def database_host_delete(host_name):
"""
Delete a host object from the database
"""
db = database_get()
session = db.session()
query = session.query(model.Host_v6)
query.filter(model.Host_v6.name == host_name).delete()
session.commit()
def database_host_get_list():
"""
Fetch all the host objects from the database
"""
db = database_get()
session = db.session()
query = session.query(model.Host_v6)
host_objs = list()
for host in query.all():
nfvi_host_data = json.loads(host.nfvi_host_data)
nfvi_host = nfvi.objects.v1.Host(nfvi_host_data['uuid'],
nfvi_host_data['name'],
nfvi_host_data['personality'],
nfvi_host_data['admin_state'],
nfvi_host_data['oper_state'],
nfvi_host_data['avail_status'],
nfvi_host_data['action'],
nfvi_host_data['uptime'],
nfvi_host_data['software_load'],
nfvi_host_data['target_load'],
nfvi_host_data['openstack_compute'],
nfvi_host_data['openstack_control'],
nfvi_host_data['remote_storage'],
nfvi_host_data['nfvi_data'])
host_obj = objects.Host(nfvi_host, host.state, host.action,
host.elapsed_time_in_state, host.upgrade_inprogress,
host.recover_instances, host.host_services_locked)
host_objs.append(host_obj)
return host_objs
def database_host_group_add(host_group_obj):
"""
Add a host group object to the database
"""
db = database_get()
session = db.session()
query = session.query(model.HostGroup).filter(model.HostGroup.name ==
host_group_obj.name)
host_group = query.first()
if not host_group:
host_group = model.HostGroup()
host_group.name = host_group_obj.name
host_group.member_names = json.dumps(host_group_obj.member_names)
host_group.policies = json.dumps(host_group_obj.policies)
host_group.nfvi_host_group_data = \
json.dumps(host_group_obj.nfvi_host_group.as_dict())
session.add(host_group)
else:
host_group.member_names = json.dumps(host_group_obj.member_names)
host_group.policies = json.dumps(host_group_obj.policies)
host_group.nfvi_host_group_data = \
json.dumps(host_group_obj.nfvi_host_group.as_dict())
db.commit()
def database_host_group_delete(host_group_name):
"""
Delete a host group object from the database
"""
db = database_get()
session = db.session()
query = session.query(model.HostGroup)
query.filter(model.HostGroup.name == host_group_name).delete()
session.commit()
def database_host_group_get_list():
"""
Fetch all the host group objects from the database
"""
db = database_get()
session = db.session()
query = session.query(model.HostGroup)
host_group_objs = list()
for host_group in query.all():
nfvi_data = json.loads(host_group.nfvi_host_group_data)
nfvi_host_group = nfvi.objects.v1.HostGroup(
nfvi_data['name'], nfvi_data['member_names'],
nfvi_data['policies'])
host_group_obj = objects.HostGroup(nfvi_host_group)
host_group_objs.append(host_group_obj)
return host_group_objs