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):
|
||||
msg_fmt = ("Config %(config_id)s does not found")
|
||||
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)
|
||||
# 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
|
||||
try:
|
||||
service_worker = db_api.service_worker_create(
|
||||
|
|
|
@ -344,6 +344,40 @@ def 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,
|
||||
include_details=False):
|
||||
return IMPL.service_perspective_get(context,
|
||||
|
|
|
@ -177,6 +177,7 @@ def upgrade():
|
|||
|
||||
|
||||
def downgrade():
|
||||
op.drop_table('oslo_config_file')
|
||||
op.drop_table('oslo_config')
|
||||
op.drop_table('device_driver')
|
||||
op.drop_table('service_worker')
|
||||
|
|
|
@ -548,6 +548,55 @@ def config_delete(context, _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
|
||||
def service_perspective_get(context, service_id, include_details=False):
|
||||
# 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][
|
||||
'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][
|
||||
'service_component'][srv_cmp.id]['service'] = srv_id
|
||||
view['region'][rg.id]['service_node'][srv_nd.id][
|
||||
|
|
|
@ -330,3 +330,27 @@ class OsloConfig(BASE,
|
|||
sqlalchemy.ForeignKey('service_worker.id'),
|
||||
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