diff options
author | efiacor <fiachra.corcoran@est.tech> | 2020-10-14 11:17:50 +0100 |
---|---|---|
committer | efiacor <fiachra.corcoran@est.tech> | 2020-10-19 10:03:24 +0100 |
commit | 27ec381034605d03285140cff8c21098e13808fe (patch) | |
tree | 4fec8438c714a049693d53957a7e91b94f78a0a1 /components/pm-subscription-handler/pmsh_service/mod/subscription.py | |
parent | 75c997686e5f85709b8c2bfc3f46d9661710a9f8 (diff) |
[PMSH] Bug fix to include ip in event1.1.2-pmsh
# Add fix for DB cleardown on exit
Signed-off-by: efiacor <fiachra.corcoran@est.tech>
Change-Id: I6630f74258d072f683b5b5e42f0da2e63ea1b3c2
Issue-ID: DCAEGEN2-2486
Diffstat (limited to 'components/pm-subscription-handler/pmsh_service/mod/subscription.py')
-rwxr-xr-x | components/pm-subscription-handler/pmsh_service/mod/subscription.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/components/pm-subscription-handler/pmsh_service/mod/subscription.py b/components/pm-subscription-handler/pmsh_service/mod/subscription.py index 21e2399d..34753e84 100755 --- a/components/pm-subscription-handler/pmsh_service/mod/subscription.py +++ b/components/pm-subscription-handler/pmsh_service/mod/subscription.py @@ -79,6 +79,8 @@ class Subscription: except Exception as e: logger.error(f'Failed to create subscription {self.subscriptionName} in the DB: {e}', exc_info=True) + finally: + db.session.remove() def update_subscription_status(self): """ Updates the status of subscription in subscription table """ @@ -92,6 +94,8 @@ class Subscription: except Exception as e: logger.error(f'Failed to update status of subscription: {self.subscriptionName}: {e}', exc_info=True) + finally: + db.session.remove() def prepare_subscription_event(self, nf, app_conf): """Prepare the sub event for publishing @@ -105,7 +109,9 @@ class Subscription: """ try: clean_sub = {k: v for k, v in self.__dict__.items() if k != 'nfFilter'} - sub_event = {'nfName': nf.nf_name, 'blueprintName': nf.sdnc_model_name, + sub_event = {'nfName': nf.nf_name, + 'ipv4Address': nf.ip_address, + 'blueprintName': nf.sdnc_model_name, 'blueprintVersion': nf.sdnc_model_version, 'policyName': app_conf.operational_policy_name, 'changeType': 'DELETE' @@ -149,8 +155,9 @@ class Subscription: Returns: SubscriptionModel object else None """ - return SubscriptionModel.query.filter( + sub_model = SubscriptionModel.query.filter( SubscriptionModel.subscription_name == self.subscriptionName).one_or_none() + return sub_model def get_local_sub_admin_state(self): """ Retrieves the subscription admin state @@ -160,6 +167,7 @@ class Subscription: """ sub_model = SubscriptionModel.query.filter( SubscriptionModel.subscription_name == self.subscriptionName).one_or_none() + db.session.remove() return sub_model.status @staticmethod @@ -169,14 +177,17 @@ class Subscription: Returns: list(SubscriptionModel): Subscriptions list else empty """ - return SubscriptionModel.query.all() + + sub_models = SubscriptionModel.query.all() + db.session.remove() + return sub_models def activate_subscription(self, nfs, mr_pub, app_conf): logger.info(f'Activate subscription initiated for {self.subscriptionName}.') try: existing_nfs = self.get_network_functions() sub_model = self.get() - for nf in set(nfs + existing_nfs): + for nf in [new_nf for new_nf in nfs if new_nf not in existing_nfs]: logger.info(f'Publishing event to activate ' f'Sub: {self.subscriptionName} for the nf: {nf.nf_name}') mr_pub.publish_subscription_event_data(self, nf, app_conf) @@ -209,6 +220,7 @@ class Subscription: list(NfSubRelationalModel): NetworkFunctions per Subscription list else empty """ nf_per_subscriptions = NfSubRelationalModel.query.all() + db.session.remove() return nf_per_subscriptions @staticmethod @@ -238,5 +250,5 @@ class Subscription: nf_model_object = NetworkFunctionModel.query.filter( NetworkFunctionModel.nf_name == nf_sub_entry.nf_name).one_or_none() nfs.append(nf_model_object.to_nf()) - + db.session.remove() return nfs |