Added support for OsloConfigFile
Change-Id: Ib9aaf7e16be0920696690b86cdcb14e06f1b643c
This commit is contained in:
parent
0a765fe3ae
commit
72e7f2cd38
|
@ -125,3 +125,8 @@ class ServiceWorkerNotFound(NotFound):
|
||||||
class ConfigNotFound(NotFound):
|
class ConfigNotFound(NotFound):
|
||||||
msg_fmt = ("Config %(config_id)s does not found")
|
msg_fmt = ("Config %(config_id)s does not found")
|
||||||
error_code = 0x0a001
|
error_code = 0x0a001
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigFileNotFound(NotFound):
|
||||||
|
msg_fmt = ("Config file %(config_file_id)s does not found")
|
||||||
|
error_code = 0x0b001
|
||||||
|
|
|
@ -184,6 +184,33 @@ class ServiceProcessor(object):
|
||||||
service_component)
|
service_component)
|
||||||
# TODO(mrkanag) what to do when service_components size is > 1
|
# TODO(mrkanag) what to do when service_components size is > 1
|
||||||
|
|
||||||
|
# config file
|
||||||
|
for cfg_f in self.registration_info['config_file_list']:
|
||||||
|
try:
|
||||||
|
config_file = db_api.config_file_create(
|
||||||
|
context,
|
||||||
|
dict(name=cfg_f,
|
||||||
|
file=self.registration_info[
|
||||||
|
'config_file_dict'][cfg_f],
|
||||||
|
service_component_id=service_component.id))
|
||||||
|
LOG.info('Oslo config file %s is created' % config_file)
|
||||||
|
except exception.AlreadyExist:
|
||||||
|
config_files = \
|
||||||
|
db_api.config_file_get_by_name_for_service_component(
|
||||||
|
context,
|
||||||
|
service_component_id=service_component.id,
|
||||||
|
name=cfg_f
|
||||||
|
)
|
||||||
|
if len(config_files) == 1:
|
||||||
|
config_file = \
|
||||||
|
db_api.config_file_update(
|
||||||
|
context,
|
||||||
|
config_files[0].id,
|
||||||
|
dict(file=self.registration_info[
|
||||||
|
'config_file_dict'][cfg_f]))
|
||||||
|
LOG.info('Oslo config file %s is existing and is updated'
|
||||||
|
% config_file)
|
||||||
|
|
||||||
# Service Worker
|
# Service Worker
|
||||||
try:
|
try:
|
||||||
service_worker = db_api.service_worker_create(
|
service_worker = db_api.service_worker_create(
|
||||||
|
|
|
@ -344,6 +344,40 @@ def config_delete(context, _id):
|
||||||
return IMPL.config_delete(context, _id)
|
return IMPL.config_delete(context, _id)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_create(context, values):
|
||||||
|
return IMPL.config_file_create(context, values)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_update(context, _id, values):
|
||||||
|
return IMPL.config_file_update(context, _id, values)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get(context, _id):
|
||||||
|
return IMPL.config_file_get(context, _id)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_by_name(context, name):
|
||||||
|
return IMPL.config_file_get_by_name(context, name)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_by_name_for_service_component(
|
||||||
|
context,
|
||||||
|
service_component_id,
|
||||||
|
name=None):
|
||||||
|
return IMPL.config_file_get_by_name_for_service_component(
|
||||||
|
context,
|
||||||
|
service_component_id,
|
||||||
|
name)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_all(context):
|
||||||
|
return IMPL.config_file_get_all(context)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_delete(context, _id):
|
||||||
|
return IMPL.config_file_delete(context, _id)
|
||||||
|
|
||||||
|
|
||||||
def service_perspective_get(context, service_id,
|
def service_perspective_get(context, service_id,
|
||||||
include_details=False):
|
include_details=False):
|
||||||
return IMPL.service_perspective_get(context,
|
return IMPL.service_perspective_get(context,
|
||||||
|
|
|
@ -177,6 +177,7 @@ def upgrade():
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
|
op.drop_table('oslo_config_file')
|
||||||
op.drop_table('oslo_config')
|
op.drop_table('oslo_config')
|
||||||
op.drop_table('device_driver')
|
op.drop_table('device_driver')
|
||||||
op.drop_table('service_worker')
|
op.drop_table('service_worker')
|
||||||
|
|
|
@ -548,6 +548,55 @@ def config_delete(context, _id):
|
||||||
return _delete(context, models.OsloConfig, _id)
|
return _delete(context, models.OsloConfig, _id)
|
||||||
|
|
||||||
|
|
||||||
|
# Config file
|
||||||
|
def config_file_create(context, values):
|
||||||
|
return _create(context, models.OsloConfigFile(), values)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_update(context, _id, values):
|
||||||
|
return _update(context, models.OsloConfigFile, _id, values)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get(context, _id):
|
||||||
|
config = _get(context, models.OsloConfigFile, _id)
|
||||||
|
if config is None:
|
||||||
|
raise exception.ConfigFileNotFound(config_file_id=_id)
|
||||||
|
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_by_name(context, name):
|
||||||
|
config = _get_by_name(context, models.OsloConfigFile, name)
|
||||||
|
if config is None:
|
||||||
|
raise exception.ConfigFileNotFound(config_file_id=name)
|
||||||
|
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_by_name_for_service_component(
|
||||||
|
context,
|
||||||
|
service_component_id,
|
||||||
|
name=None):
|
||||||
|
query = _model_query(context, models.OsloConfigFile). \
|
||||||
|
filter_by(service_component_id=service_component_id)
|
||||||
|
if name is not None:
|
||||||
|
query = query.filter_by(name=name)
|
||||||
|
|
||||||
|
return query.all()
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_get_all(context):
|
||||||
|
return _get_all(context, models.OsloConfigFile)
|
||||||
|
|
||||||
|
|
||||||
|
def _config_file_get_all_by(context, **kwargs):
|
||||||
|
return _get_all_by(context, models.OsloConfigFile, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_delete(context, _id):
|
||||||
|
return _delete(context, models.OsloConfigFile, _id)
|
||||||
|
|
||||||
|
|
||||||
# REST-API
|
# REST-API
|
||||||
def service_perspective_get(context, service_id, include_details=False):
|
def service_perspective_get(context, service_id, include_details=False):
|
||||||
# 1. itr over Service Components and find name vs set of components
|
# 1. itr over Service Components and find name vs set of components
|
||||||
|
@ -827,6 +876,18 @@ def view_360(context):
|
||||||
|
|
||||||
view['region'][rg.id]['service_node'][srv_nd.id][
|
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||||
'service_component'][srv_cmp.id] = dict()
|
'service_component'][srv_cmp.id] = dict()
|
||||||
|
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||||
|
'service_component'][srv_cmp.id]['config_file'] = dict()
|
||||||
|
cfg_fl_lst = config_file_get_by_name_for_service_component(
|
||||||
|
context,
|
||||||
|
service_component_id=srv_cmp.id
|
||||||
|
)
|
||||||
|
for cfg_fl in cfg_fl_lst:
|
||||||
|
# config file
|
||||||
|
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||||
|
'service_component'][srv_cmp.id][
|
||||||
|
'config_file'][cfg_fl.name] = cfg_fl.file
|
||||||
|
|
||||||
view['region'][rg.id]['service_node'][srv_nd.id][
|
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||||
'service_component'][srv_cmp.id]['service'] = srv_id
|
'service_component'][srv_cmp.id]['service'] = srv_id
|
||||||
view['region'][rg.id]['service_node'][srv_nd.id][
|
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||||
|
|
|
@ -330,3 +330,27 @@ class OsloConfig(BASE,
|
||||||
sqlalchemy.ForeignKey('service_worker.id'),
|
sqlalchemy.ForeignKey('service_worker.id'),
|
||||||
nullable=False
|
nullable=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class OsloConfigFile(BASE,
|
||||||
|
NamosBase,
|
||||||
|
SoftDelete,
|
||||||
|
Extra):
|
||||||
|
__tablename__ = 'oslo_config_file'
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint("name", "service_component_id"),
|
||||||
|
)
|
||||||
|
|
||||||
|
name = sqlalchemy.Column(sqlalchemy.String(255),
|
||||||
|
# unique=True,
|
||||||
|
nullable=False,
|
||||||
|
default=lambda: str(uuid.uuid4()))
|
||||||
|
|
||||||
|
file = sqlalchemy.Column(
|
||||||
|
sqlalchemy.Text
|
||||||
|
)
|
||||||
|
service_component_id = sqlalchemy.Column(
|
||||||
|
Uuid,
|
||||||
|
sqlalchemy.ForeignKey('service_component.id'),
|
||||||
|
nullable=False
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue