diff --git a/deploy/all.sh b/deploy/all.sh index 06b8ee701530f56381080879d0e2941b664e5197..f7f2a743312cf6f9152c25ac13b410f4395638bf 100755 --- a/deploy/all.sh +++ b/deploy/all.sh @@ -26,8 +26,8 @@ export TFS_REGISTRY_IMAGES=${TFS_REGISTRY_IMAGES:-"http://localhost:32000/tfs/"} # If not already set, set the list of components, separated by spaces, you want to build images for, and deploy. -# By default, only basic components are deployed -export TFS_COMPONENTS=${TFS_COMPONENTS:-"context device pathcomp service slice nbi webui load_generator"} +# By default, only basic components are deployed +export TFS_COMPONENTS=${TFS_COMPONENTS:-"context device pathcomp opticalcontroller service slice nbi webui load_generator"} # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/service/service/__main__.py b/src/service/service/__main__.py index b7f8b749c771736484196f833a636ef54d9b2d9b..22b7c721c9b90e5307cfce0648509d5010e10619 100644 --- a/src/service/service/__main__.py +++ b/src/service/service/__main__.py @@ -47,8 +47,8 @@ def main(): get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_PORT_GRPC), get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.QKD_APP, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.QKD_APP, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + # get_env_var_name(ServiceNameEnum.QKD_APP, ENVVAR_SUFIX_SERVICE_HOST ), + # get_env_var_name(ServiceNameEnum.QKD_APP, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) VAR_NAME_OPTICAL_CONTROLLER_HOST = get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_HOST) VAR_NAME_OPTICAL_CONTROLLER_PORT = get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_PORT_GRPC) diff --git a/src/webui/Dockerfile b/src/webui/Dockerfile index 204b6f7311d4d182d830ef5483204790e165599b..55e67b670f36812a55cf60e411cf137bc5b8a2ee 100644 --- a/src/webui/Dockerfile +++ b/src/webui/Dockerfile @@ -84,8 +84,6 @@ COPY --chown=webui:webui src/service/__init__.py service/__init__.py COPY --chown=webui:webui src/service/client/. service/client/ COPY --chown=webui:webui src/slice/__init__.py slice/__init__.py COPY --chown=webui:webui src/slice/client/. slice/client/ -COPY --chown=webui:webui src/app/__init__.py app/__init__.py -COPY --chown=webui:webui src/app/client/. app/client/ COPY --chown=webui:webui src/webui/. webui/ COPY --chown=webui:webui src/bgpls_speaker/__init__.py bgpls_speaker/__init__.py COPY --chown=webui:webui src/bgpls_speaker/client/. bgpls_speaker/client/ diff --git a/src/webui/service/__init__.py b/src/webui/service/__init__.py index 6bbd58da776e47086006846e618efb6c33f87114..9c04ac749e02711fa4f6d9a500431d7850ad2d9c 100644 --- a/src/webui/service/__init__.py +++ b/src/webui/service/__init__.py @@ -19,7 +19,7 @@ from flask_healthz import healthz, HealthError from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from qkd_app.client.QKDAppClient import QKDAppClient +#from qkd_app.client.QKDAppClient import QKDAppClient def get_working_context() -> str: return session['context_uuid'] if 'context_uuid' in session else '---' @@ -39,9 +39,9 @@ def readiness(): device_client.connect() device_client.close() # DEPENDENCY QKD - qkd_app_client = QKDAppClient() - qkd_app_client.connect() - qkd_app_client.close() + # qkd_app_client = QKDAppClient() + # qkd_app_client.connect() + # qkd_app_client.close() except Exception as e: raise HealthError("Can't connect with the service: {:s}".format(str(e))) from e @@ -116,8 +116,8 @@ def create_app(use_config=None, web_app_root=None): from webui.service.link.routes import link # pylint: disable=import-outside-toplevel app.register_blueprint(link) - from webui.service.qkd_app.routes import qkd_app as _qkd_app # pylint: disable=import-outside-toplevel - app.register_blueprint(_qkd_app) + # from webui.service.qkd_app.routes import qkd_app as _qkd_app # pylint: disable=import-outside-toplevel + # app.register_blueprint(_qkd_app) from webui.service.policy_rule.routes import policy_rule # pylint: disable=import-outside-toplevel app.register_blueprint(policy_rule) diff --git a/src/webui/service/__main__.py b/src/webui/service/__main__.py index 8cb577d7149f08fa05c11961945f2b8d98beaa00..6bd65a9814807bb9161a53249cd416f1d827a89c 100644 --- a/src/webui/service/__main__.py +++ b/src/webui/service/__main__.py @@ -43,8 +43,8 @@ def main(): get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), - get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + # get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_HOST ), + # get_env_var_name(ServiceNameEnum.APP, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) logger.info('Starting...') diff --git a/src/webui/service/qkd_app/routes.py b/src/webui/service/qkd_app/routes.py index 5cbe715dcfe6de16d84706b28799e22018737f29..685c4d360480b4385b90878f753a57498d833f0b 100644 --- a/src/webui/service/qkd_app/routes.py +++ b/src/webui/service/qkd_app/routes.py @@ -12,102 +12,102 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, json, logging +# import grpc, json, logging -from flask import current_app, render_template, Blueprint, flash, session, redirect, url_for -from common.proto.context_pb2 import Empty, Link, LinkId, LinkList -from common.proto.qkd_app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum -from common.tools.context_queries.Context import get_context -from common.tools.context_queries.Device import get_device -from common.tools.context_queries.Topology import get_topology -from context.client.ContextClient import ContextClient -from qkd_app.client.QKDAppClient import QKDAppClient +# from flask import current_app, render_template, Blueprint, flash, session, redirect, url_for +# from common.proto.context_pb2 import Empty, Link, LinkId, LinkList +# from common.proto.qkd_app_pb2 import App, QKDAppStatusEnum, QKDAppTypesEnum +# from common.tools.context_queries.Context import get_context +# from common.tools.context_queries.Device import get_device +# from common.tools.context_queries.Topology import get_topology +# from context.client.ContextClient import ContextClient +# from qkd_app.client.QKDAppClient import QKDAppClient -LOGGER = logging.getLogger(__name__) -app = Blueprint('qkd_app', __name__, url_prefix='/qkd_app') +# LOGGER = logging.getLogger(__name__) +# app = Blueprint('qkd_app', __name__, url_prefix='/qkd_app') -qkd_app_client = QKDAppClient() -context_client = ContextClient() +# qkd_app_client = QKDAppClient() +# context_client = ContextClient() -@app.get('/') -def home(): - if 'context_uuid' not in session or 'topology_uuid' not in session: - flash("Please select a context!", "warning") - return redirect(url_for("main.home")) - context_uuid = session['context_uuid'] - topology_uuid = session['topology_uuid'] +# @app.get('/') +# def home(): +# if 'context_uuid' not in session or 'topology_uuid' not in session: +# flash("Please select a context!", "warning") +# return redirect(url_for("main.home")) +# context_uuid = session['context_uuid'] +# topology_uuid = session['topology_uuid'] - context_client.connect() - device_names = dict() +# context_client.connect() +# device_names = dict() - context_obj = get_context(context_client, context_uuid, rw_copy=False) - if context_obj is None: - flash('Context({:s}) not found'.format(str(context_uuid)), 'danger') - apps = list() - else: - try: - apps = qkd_app_client.ListApps(context_obj.context_id) - apps = apps.apps - except grpc.RpcError as e: - if e.code() != grpc.StatusCode.NOT_FOUND: raise - if e.details() != 'Context({:s}) not found'.format(context_uuid): raise - apps = list() - else: - # Too many requests to context_client if it has too many apps (update in the future) - for app in apps: - if app.local_device_id.device_uuid.uuid not in device_names: - device = get_device(context_client, app.local_device_id.device_uuid.uuid) - if device is not None: - device_names[app.local_device_id.device_uuid.uuid] = device.name +# context_obj = get_context(context_client, context_uuid, rw_copy=False) +# if context_obj is None: +# flash('Context({:s}) not found'.format(str(context_uuid)), 'danger') +# apps = list() +# else: +# try: +# apps = qkd_app_client.ListApps(context_obj.context_id) +# apps = apps.apps +# except grpc.RpcError as e: +# if e.code() != grpc.StatusCode.NOT_FOUND: raise +# if e.details() != 'Context({:s}) not found'.format(context_uuid): raise +# apps = list() +# else: +# # Too many requests to context_client if it has too many apps (update in the future) +# for app in apps: +# if app.local_device_id.device_uuid.uuid not in device_names: +# device = get_device(context_client, app.local_device_id.device_uuid.uuid) +# if device is not None: +# device_names[app.local_device_id.device_uuid.uuid] = device.name - if app.remote_device_id.device_uuid.uuid and app.remote_device_id.device_uuid.uuid not in device_names: - device = get_device(context_client, app.remote_device_id.device_uuid.uuid) - if device is not None: - device_names[app.remote_device_id.device_uuid.uuid] = device.name +# if app.remote_device_id.device_uuid.uuid and app.remote_device_id.device_uuid.uuid not in device_names: +# device = get_device(context_client, app.remote_device_id.device_uuid.uuid) +# if device is not None: +# device_names[app.remote_device_id.device_uuid.uuid] = device.name - context_client.close() - return render_template( - 'app/home.html', apps=apps, device_names=device_names, ate=QKDAppTypesEnum, ase=QKDAppStatusEnum) +# context_client.close() +# return render_template( +# 'app/home.html', apps=apps, device_names=device_names, ate=QKDAppTypesEnum, ase=QKDAppStatusEnum) -@app.route('detail/<path:app_uuid>', methods=('GET', 'POST')) -def detail(app_uuid: str): - ''' - context_client.connect() - link_obj = get_link(context_client, link_uuid, rw_copy=False) - if link_obj is None: - flash('Link({:s}) not found'.format(str(link_uuid)), 'danger') - link_obj = Link() - device_names, endpoints_data = dict(), dict() - else: - device_names, endpoints_data = get_endpoint_names(context_client, link_obj.link_endpoint_ids) - context_client.close() - return render_template('link/detail.html',link=link_obj, device_names=device_names, endpoints_data=endpoints_data) - ''' - pass +# @app.route('detail/<path:app_uuid>', methods=('GET', 'POST')) +# def detail(app_uuid: str): +# ''' +# context_client.connect() +# link_obj = get_link(context_client, link_uuid, rw_copy=False) +# if link_obj is None: +# flash('Link({:s}) not found'.format(str(link_uuid)), 'danger') +# link_obj = Link() +# device_names, endpoints_data = dict(), dict() +# else: +# device_names, endpoints_data = get_endpoint_names(context_client, link_obj.link_endpoint_ids) +# context_client.close() +# return render_template('link/detail.html',link=link_obj, device_names=device_names, endpoints_data=endpoints_data) +# ''' +# pass -@app.get('<path:app_uuid>/delete') -def delete(app_uuid): - ''' - try: +# @app.get('<path:app_uuid>/delete') +# def delete(app_uuid): +# ''' +# try: - # first, check if link exists! - # request: LinkId = LinkId() - # request.link_uuid.uuid = link_uuid - # response: Link = client.GetLink(request) - # TODO: finalize implementation +# # first, check if link exists! +# # request: LinkId = LinkId() +# # request.link_uuid.uuid = link_uuid +# # response: Link = client.GetLink(request) +# # TODO: finalize implementation - request = LinkId() - request.link_uuid.uuid = link_uuid # pylint: disable=no-member - context_client.connect() - context_client.RemoveLink(request) - context_client.close() +# request = LinkId() +# request.link_uuid.uuid = link_uuid # pylint: disable=no-member +# context_client.connect() +# context_client.RemoveLink(request) +# context_client.close() - flash(f'Link "{link_uuid}" deleted successfully!', 'success') - except Exception as e: # pylint: disable=broad-except - flash(f'Problem deleting link "{link_uuid}": {e.details()}', 'danger') - current_app.logger.exception(e) - return redirect(url_for('link.home')) - ''' - pass +# flash(f'Link "{link_uuid}" deleted successfully!', 'success') +# except Exception as e: # pylint: disable=broad-except +# flash(f'Problem deleting link "{link_uuid}": {e.details()}', 'danger') +# current_app.logger.exception(e) +# return redirect(url_for('link.home')) +# ''' +# pass diff --git a/src/webui/service/templates/base.html b/src/webui/service/templates/base.html index ace8e19958a0d89f51d25febcba9df57e45414eb..51c2034601924fb397a151252a0f8cabe564b989 100644 --- a/src/webui/service/templates/base.html +++ b/src/webui/service/templates/base.html @@ -110,13 +110,7 @@ <a class="nav-link" href="{{ url_for('load_gen.home') }}">Load Generator</a> {% endif %} </li> - <li class="nav-item"> - {% if '/qkd_app/' in request.path %} - <a class="nav-link active" aria-current="page" href="{{ url_for('app.home') }}">App</a> - {% else %} - <a class="nav-link" href="{{ url_for('app.home') }}">App</a> - {% endif %} - </li> + <li class="nav-item"> {% if '/bgpls/' in request.path %} <a class="nav-link active" aria-current="page" href="{{ url_for('bgpls.home') }}">BGPLS</a> diff --git a/src/webui/service/templates/qkd_app/home.html b/src/webui/service/templates/qkd_app/home.html index e138acd1463202b64114921d70f1df3e3716d40a..1603139192eb70481c65fa510e019186952c1c0b 100644 --- a/src/webui/service/templates/qkd_app/home.html +++ b/src/webui/service/templates/qkd_app/home.html @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - +<!-- {% extends 'base.html' %} {% block content %} @@ -91,4 +91,4 @@ </tbody> </table> -{% endblock %} +{% endblock %} -->