Merge "Fix INF-342 refactor deploymentManager profile data"
authorBin Yang <bin.yang@windriver.com>
Thu, 10 Nov 2022 13:03:46 +0000 (13:03 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Thu, 10 Nov 2022 13:03:46 +0000 (13:03 +0000)
1  2 
o2ims/views/ocloud_view.py
tests/unit/test_ocloud.py

@@@ -21,10 -21,8 +21,10 @@@ import shuti
  
  from o2common.service import unit_of_work
  from o2common.config import config
 -from o2common.views.pagination_view import Pagination
  from o2common.views.view import gen_filter, check_filter
 +from o2common.views.pagination_view import Pagination
 +from o2common.views.route_exception import BadRequestException
 +
  from o2ims.domain import ocloud
  from o2ims.views.ocloud_dto import SubscriptionDTO
  from o2ims.domain.subscription_obj import Subscription
@@@ -142,16 -140,18 +142,18 @@@ def deployment_manager_one(deploymentMa
              return None
  
      profile_data = result.pop("profile", None)
-     result['profileName'] = profile
      profiles = config.get_dms_support_profiles()
      if profile not in profiles:
          return ""
  
+     extensions = {
+         'profileName': profile
+     }
      if ocloud.DeploymentManagerProfileDefault == profile \
              or ocloud.DeploymentManagerProfileSOL018 == profile:
          result['serviceUri'] = \
              profile_data['cluster_api_endpoint']
-         result['profileData'] = profile_data
+         extensions['profileData'] = profile_data
      elif ocloud.DeploymentManagerProfileSOL018HelmCLI == profile:
          result['serviceUri'] = \
              profile_data['cluster_api_endpoint']
              config.get_helmcli_access()
          helmcli_profile["helmcli_kubeconfig"] = _gen_kube_config(
              deploymentManagerId, profile_data)
-         result['profileData'] = helmcli_profile
+         extensions['profileData'] = helmcli_profile
      else:
          return ""
  
+     result['extensions'] = extensions
      return result
  
  
@@@ -232,15 -233,6 +235,15 @@@ def subscription_create(subscriptionDto
          sub_uuid, subscriptionDto['callback'],
          consumer_subs_id, filter)
      with uow:
 +        args = list()
 +        args.append(getattr(Subscription, 'callback')
 +                    == subscriptionDto['callback'])
 +        args.append(getattr(Subscription, 'filter') == filter)
 +        args.append(getattr(Subscription,
 +                    'consumerSubscriptionId') == consumer_subs_id)
 +        count, _ = uow.alarm_subscriptions.list_with_count(*args)
 +        if count > 0:
 +            raise BadRequestException("The value of parameters is duplicated")
          uow.subscriptions.add(subscription)
          uow.commit()
          first = uow.subscriptions.get(sub_uuid)
@@@ -324,7 -324,7 +324,7 @@@ def test_view_deployment_manager_one(mo
          deployment_manager_id1, uow, profile=profileName)
      assert str(deployment_manager_res.get(
          'serviceUri')) == cluster_endpoint
-     assert str(deployment_manager_res.get(
+     assert str(deployment_manager_res.get("extensions").get(
          "profileName")) == profileName
  
      # profile wrong name
@@@ -446,16 -446,10 +446,16 @@@ def test_flask_get_one(mock_flask_uow)
          assert resp.status_code == 404
  
  
 -def test_flask_post(mock_flask_uow):
 +def test_flask_post(mock_flask_uow, mappers):
      session, app = mock_flask_uow
      apibase = config.get_o2ims_api_base() + '/v1'
  
 +    order_by = MagicMock()
 +    order_by.count.return_value = 0
 +    order_by.limit.return_value.offset.return_value = []
 +    session.return_value.query.return_value.filter.return_value.\
 +        order_by.return_value = order_by
 +
      with app.test_client() as client:
          session.return_value.execute.return_value = []
  
          resp = client.post(apibase+'/subscriptions', json={
              'callback': sub_callback,
              'consumerSubscriptionId': 'consumerSubId1',
 -            'filter': ''
 +            'filter': '(eq,resourceTypeId,xxx)'
          })
          assert resp.status_code == 201
          assert 'subscriptionId' in resp.get_json()