diff options
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.py | 37 |
1 files changed, 35 insertions, 2 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 c41bb18b..96d50c27 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 @@ -292,9 +292,9 @@ def save_nf_filter(nf_filter, subscription_name): db.session.add(new_filter) -def get_subscription_by_name(subscription_name): +def query_subscription_by_name(subscription_name): """ - Retrieves the subscription information by name + Queries the db for existing subscription by name Args: subscription_name (String): Name of the Subscription @@ -309,3 +309,36 @@ def get_subscription_by_name(subscription_name): .filter_by(subscription_name=subscription_name).first() db.session.remove() return subscription_model + + +def query_all_subscriptions(): + """ + Queries the db for all existing subscriptions defined in PMSH + + Returns + list (SubscriptionModel): of all subscriptions else None + """ + logger.info('Attempting to fetch all the subscriptions') + subscriptions = db.session.query(SubscriptionModel) \ + .options(joinedload(SubscriptionModel.network_filter), + joinedload(SubscriptionModel.measurement_groups)) \ + .all() + db.session.remove() + return subscriptions + + +def get_subscriptions_list(): + """ Converts all subscriptions to JSON and appends to list + + Returns + list: dict of all subscriptions else empty + """ + subscriptions = query_all_subscriptions() + subscriptions_list = [] + if subscriptions is not None: + logger.info('Queried all the subscriptions was successful') + for subscription in subscriptions: + if (subscription.network_filter is not None) and \ + (len(subscription.measurement_groups) != 0): + subscriptions_list.append(subscription.serialize()) + return subscriptions_list |