X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=mock_smo%2Fmock_smo%2Fentrypoints%2Fmock_smo.py;h=67aadf3d1d4c07b7b068507b4272e297334a0748;hb=HEAD;hp=aea0840f8a4e7383bcd2453eb6fc497c1d6abd37;hpb=3da89330f3837ac6cffd2cad4c4018c9f8c3327d;p=pti%2Fo2.git
diff --git a/mock_smo/mock_smo/entrypoints/mock_smo.py b/mock_smo/mock_smo/entrypoints/mock_smo.py
index aea0840..67aadf3 100644
--- a/mock_smo/mock_smo/entrypoints/mock_smo.py
+++ b/mock_smo/mock_smo/entrypoints/mock_smo.py
@@ -1,122 +1,122 @@
-# Copyright (C) 2021 Wind River Systems, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import json
-import redis
-import http.client
-from flask import Flask, request
-from flask.helpers import url_for
-
-import mock_smo.config as config
-import mock_smo.logging as logging
-logger = logging.get_logger(__name__)
-
-apibase = config.get_o2ims_api_base()
-app = Flask(__name__)
-
-r = redis.Redis(**config.get_redis_host_and_port())
-REDIS_SUB_KEY = 'mock_smo_sub_key'
-REDIS_O2IMS_URL = 'mock_smo_o2ims_url'
-
-
-@app.route('/', methods=['GET', 'POST'])
-def index():
- if request.method == 'POST':
- url = request.form['url']
- consumerSubscriptionId = request.form['consumerSubId']
- sub_id = subscription_ims(url, consumerSubscriptionId)
- return """
-
Subscribed O2IMS
-Subscription ID: %s
-Subscribed O2IMS URL: %s
-
-
-
-""" % (sub_id, url, url_for('unsubscription'))
- return """
-Subscribe O2IMS
-
-"""
-
-
-@app.route('/unsubscription')
-def unsubscription():
- sub_key = r.get(REDIS_SUB_KEY)
- logger.info('Subscription key is {}'.format(sub_key))
- if sub_key is None:
- return 'Already unsubscribed '
- url = r.get(REDIS_O2IMS_URL).decode('utf-8')
- logger.info('O2 IMS API is: {}'.format(url))
- unsubscription_ims(url, sub_key.decode('utf-8'))
- r.delete(REDIS_O2IMS_URL)
- r.delete(REDIS_SUB_KEY)
- return """
-Unsubscribed O2IMS
-
-
-
-"""
-
-
-@app.route('/callback', methods=['POST'])
-def callback():
- logger.info('Callback data: {}'.format(request.get_data()))
- return '', 202
-
-
-@app.route('/registration', methods=['POST'])
-def registration():
- logger.info('Registration data: {}'.format(request.get_data()))
- return '', 200
-
-
-def subscription_ims(url, consumerSubscriptionId):
- sub_key = r.get(REDIS_SUB_KEY)
- logger.info('Subscription key is {}'.format(sub_key))
- if sub_key is not None:
- return sub_key.decode('utf-8')
-
- logger.info(request.host_url)
- conn = http.client.HTTPConnection(url)
- headers = {'Content-type': 'application/json'}
- post_val = {
- 'callback': 'http://mock_smo:80' + url_for('callback'),
- 'consumerSubscriptionId': consumerSubscriptionId,
- 'filter': '["pserver"]' # '["pserver","pserver_mem"]'
- }
- json_val = json.dumps(post_val)
- conn.request('POST', apibase+'/subscriptions', json_val, headers)
- resp = conn.getresponse()
- data = resp.read().decode('utf-8')
- logger.info('Subscription response: {} {}, data: {}'.format(
- resp.status, resp.reason, data))
- json_data = json.loads(data)
-
- r.set(REDIS_SUB_KEY, json_data['subscriptionId'])
- r.set(REDIS_O2IMS_URL, url)
- return json_data['subscriptionId']
-
-
-def unsubscription_ims(url, subId):
- conn = http.client.HTTPConnection(url)
- conn.request('DELETE', apibase + '/subscriptions/' + subId)
- resp = conn.getresponse()
- logger.info('Unsubscription response: {} {}'.format(
- resp.status, resp.reason))
+# Copyright (C) 2021 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json
+import redis
+import http.client
+from flask import Flask, request
+from flask.helpers import url_for
+
+import mock_smo.config as config
+import mock_smo.logging as logging
+logger = logging.get_logger(__name__)
+
+apibase = config.get_o2ims_api_base()
+app = Flask(__name__)
+
+r = redis.Redis(**config.get_redis_host_and_port())
+REDIS_SUB_KEY = 'mock_smo_sub_key'
+REDIS_O2IMS_URL = 'mock_smo_o2ims_url'
+
+
+@app.route('/', methods=['GET', 'POST'])
+def index():
+ if request.method == 'POST':
+ url = request.form['url']
+ consumerSubscriptionId = request.form['consumerSubId']
+ sub_id = subscription_ims(url, consumerSubscriptionId)
+ return """
+Subscribed O2IMS
+Subscription ID: %s
+Subscribed O2IMS URL: %s
+
+
+
+""" % (sub_id, url, url_for('unsubscription'))
+ return """
+Subscribe O2IMS
+
+"""
+
+
+@app.route('/unsubscription')
+def unsubscription():
+ sub_key = r.get(REDIS_SUB_KEY)
+ logger.info('Subscription key is {}'.format(sub_key))
+ if sub_key is None:
+ return 'Already unsubscribed '
+ url = r.get(REDIS_O2IMS_URL).decode('utf-8')
+ logger.info('O2 IMS API is: {}'.format(url))
+ unsubscription_ims(url, sub_key.decode('utf-8'))
+ r.delete(REDIS_O2IMS_URL)
+ r.delete(REDIS_SUB_KEY)
+ return """
+Unsubscribed O2IMS
+
+
+
+"""
+
+
+@app.route('/callback', methods=['POST'])
+def callback():
+ logger.info('Callback data: {}'.format(request.get_data()))
+ return '', 202
+
+
+@app.route('/registration', methods=['POST'])
+def registration():
+ logger.info('Registration data: {}'.format(request.get_data()))
+ return '', 200
+
+
+def subscription_ims(url, consumerSubscriptionId):
+ sub_key = r.get(REDIS_SUB_KEY)
+ logger.info('Subscription key is {}'.format(sub_key))
+ if sub_key is not None:
+ return sub_key.decode('utf-8')
+
+ logger.info(request.host_url)
+ conn = http.client.HTTPConnection(url)
+ headers = {'Content-type': 'application/json'}
+ post_val = {
+ 'callback': 'http://mock_smo:80' + url_for('callback'),
+ 'consumerSubscriptionId': consumerSubscriptionId,
+ 'filter': '["pserver"]' # '["pserver","pserver_mem"]'
+ }
+ json_val = json.dumps(post_val)
+ conn.request('POST', apibase+'/subscriptions', json_val, headers)
+ resp = conn.getresponse()
+ data = resp.read().decode('utf-8')
+ logger.info('Subscription response: {} {}, data: {}'.format(
+ resp.status, resp.reason, data))
+ json_data = json.loads(data)
+
+ r.set(REDIS_SUB_KEY, json_data['subscriptionId'])
+ r.set(REDIS_O2IMS_URL, url)
+ return json_data['subscriptionId']
+
+
+def unsubscription_ims(url, subId):
+ conn = http.client.HTTPConnection(url)
+ conn.request('DELETE', apibase + '/subscriptions/' + subId)
+ resp = conn.getresponse()
+ logger.info('Unsubscription response: {} {}'.format(
+ resp.status, resp.reason))