summaryrefslogtreecommitdiffstats
path: root/components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py')
-rw-r--r--components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py37
1 files changed, 36 insertions, 1 deletions
diff --git a/components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py b/components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py
index d9f44001..7b31de50 100644
--- a/components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py
+++ b/components/pm-subscription-handler/pmsh_service/mod/api/services/subscription_service.py
@@ -18,7 +18,7 @@
from mod import db, logger
from mod.api.db_models import SubscriptionModel, NfSubRelationalModel, \
- NetworkFunctionFilterModel, NetworkFunctionModel
+ NetworkFunctionFilterModel, NetworkFunctionModel, MeasurementGroupModel
from mod.api.services import measurement_group_service, nf_service
from mod.api.custom_exception import InvalidDataException, DuplicateDataException
from mod.subscription import AdministrativeState, SubNfState
@@ -345,3 +345,38 @@ def get_subscriptions_list():
(len(subscription.measurement_groups) != 0):
subscriptions_list.append(subscription.serialize())
return subscriptions_list
+
+
+def query_unlocked_mg_by_sub_name(subscription_name):
+ """
+ Queries the db for unlocked/locking measurement groups by subscription name
+
+ Args:
+ subscription_name (String): Name of the Subscription
+
+ Returns:
+ list (MeasurementGroupModel): If measurement groups with admin state
+ UNLOCKED exists else empty list
+ """
+ logger.info(f'Attempting to fetch measurement groups by subscription name: {subscription_name}')
+ mg_model = db.session.query(MeasurementGroupModel) \
+ .filter_by(subscription_name=subscription_name) \
+ .filter(MeasurementGroupModel.administrative_state.in_(('UNLOCKED', 'LOCKING'))).all()
+ db.session.remove()
+ return mg_model
+
+
+def query_to_delete_subscription_by_name(subscription_name):
+ """
+ Deletes the subscription by name
+
+ Args:
+ subscription_name (String): Name of the Subscription
+
+ Returns:
+ int: Returns '1' if subscription exists and deleted successfully else '0'
+ """
+ effected_rows = db.session.query(SubscriptionModel) \
+ .filter_by(subscription_name=subscription_name).delete()
+ db.session.commit()
+ return effected_rows