Code Review
/
pti
/
o2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix INF-346 and INF-347 subscription filter
[pti/o2.git]
/
o2ims
/
views
/
ocloud_view.py
diff --git
a/o2ims/views/ocloud_view.py
b/o2ims/views/ocloud_view.py
index
ed55dda
..
215c917
100644
(file)
--- a/
o2ims/views/ocloud_view.py
+++ b/
o2ims/views/ocloud_view.py
@@
-22,6
+22,7
@@
import shutil
from o2common.service import unit_of_work
from o2common.config import config
from o2common.views.pagination_view import Pagination
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 o2ims.domain import ocloud
from o2ims.views.ocloud_dto import SubscriptionDTO
from o2ims.domain.subscription_obj import Subscription
from o2ims.domain import ocloud
from o2ims.views.ocloud_dto import SubscriptionDTO
from o2ims.domain.subscription_obj import Subscription
@@
-44,9
+45,11
@@
def ocloud_one(ocloudid: str, uow: unit_of_work.AbstractUnitOfWork):
def resource_types(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
def resource_types(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
- filter_kwargs = pagination.get_filter()
+ query_kwargs = pagination.get_pagination()
+ args = gen_filter(ocloud.ResourceType,
+ kwargs['filter']) if 'filter' in kwargs else []
with uow:
with uow:
- li = uow.resource_types.list_with_count(*
*filter
_kwargs)
+ li = uow.resource_types.list_with_count(*
args, **query
_kwargs)
return pagination.get_result(li)
return pagination.get_result(li)
@@
-59,9
+62,11
@@
def resource_type_one(resourceTypeId: str,
def resource_pools(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
def resource_pools(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
- filter_kwargs = pagination.get_filter()
+ query_kwargs = pagination.get_pagination()
+ args = gen_filter(ocloud.ResourcePool,
+ kwargs['filter']) if 'filter' in kwargs else []
with uow:
with uow:
- li = uow.resource_pools.list_with_count(*
*filter
_kwargs)
+ li = uow.resource_pools.list_with_count(*
args, **query
_kwargs)
return pagination.get_result(li)
return pagination.get_result(li)
@@
-76,7
+81,7
@@
def resources(resourcePoolId: str, uow: unit_of_work.AbstractUnitOfWork,
**kwargs):
pagination = Pagination(**kwargs)
# filter key should be the same with database name
**kwargs):
pagination = Pagination(**kwargs)
# filter key should be the same with database name
-
filter_kwargs = pagination.get_filter
()
+
query_kwargs = pagination.get_pagination
()
if 'resourceTypeName' in kwargs:
resource_type_name = kwargs['resourceTypeName']
with uow:
if 'resourceTypeName' in kwargs:
resource_type_name = kwargs['resourceTypeName']
with uow:
@@
-87,15
+92,20
@@
def resources(resourcePoolId: str, uow: unit_of_work.AbstractUnitOfWork,
# restype_id = '' if len(restype_ids) == 0 else restype_ids[0]
res_type = uow.resource_types.get_by_name(resource_type_name)
restype_id = '' if res_type is None else res_type.resourceTypeId
# restype_id = '' if len(restype_ids) == 0 else restype_ids[0]
res_type = uow.resource_types.get_by_name(resource_type_name)
restype_id = '' if res_type is None else res_type.resourceTypeId
- filter_kwargs['resourceTypeId'] = restype_id
+ query_kwargs['resourceTypeId'] = restype_id
+ args = gen_filter(
+ ocloud.Resource, kwargs['filter']) if 'filter' in kwargs else []
+ args.append(ocloud.Resource.resourcePoolId == resourcePoolId)
+ # args.append(ocloud.Resource.parentId == None)
if 'parentId' in kwargs:
if 'parentId' in kwargs:
-
filter
_kwargs['parentId'] = kwargs['parentId']
+
query
_kwargs['parentId'] = kwargs['parentId']
if 'sort' in kwargs:
if 'sort' in kwargs:
-
filter
_kwargs['sort'] = kwargs['sort']
+
query
_kwargs['sort'] = kwargs['sort']
with uow:
with uow:
- ret = uow.resources.list_with_count(resourcePoolId, **filter_kwargs)
+ ret = uow.resources.list_with_count(
+ resourcePoolId, *args, **query_kwargs)
return pagination.get_result(ret)
return pagination.get_result(ret)
@@
-108,15
+118,18
@@
def resource_one(resourceId: str, uow: unit_of_work.AbstractUnitOfWork):
def deployment_managers(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
def deployment_managers(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
- filter_kwargs = pagination.get_filter()
+ query_kwargs = pagination.get_pagination()
+ args = gen_filter(ocloud.DeploymentManager,
+ kwargs['filter']) if 'filter' in kwargs else []
with uow:
with uow:
- li = uow.deployment_managers.list_with_count(*
*filter
_kwargs)
+ li = uow.deployment_managers.list_with_count(*
args, **query
_kwargs)
return pagination.get_result(li)
def deployment_manager_one(deploymentManagerId: str,
uow: unit_of_work.AbstractUnitOfWork,
return pagination.get_result(li)
def deployment_manager_one(deploymentManagerId: str,
uow: unit_of_work.AbstractUnitOfWork,
- profile: str = 'default'):
+ profile: str =
+ ocloud.DeploymentManagerProfileDefault):
profile = profile.lower()
with uow:
first = uow.deployment_managers.get(deploymentManagerId)
profile = profile.lower()
with uow:
first = uow.deployment_managers.get(deploymentManagerId)
@@
-128,15
+141,17
@@
def deployment_manager_one(deploymentManagerId: str,
profile_data = result.pop("profile", None)
result['profileName'] = profile
profile_data = result.pop("profile", None)
result['profileName'] = profile
+ profiles = config.get_dms_support_profiles()
+ if profile not in profiles:
+ return ""
- if ocloud.DeploymentManagerProfileDefault == profile:
- pass
- elif ocloud.DeploymentManagerProfileSOL018 == profile:
- result['deploymentManagementServiceEndpoint'] = \
+ if ocloud.DeploymentManagerProfileDefault == profile \
+ or ocloud.DeploymentManagerProfileSOL018 == profile:
+ result['serviceUri'] = \
profile_data['cluster_api_endpoint']
result['profileData'] = profile_data
elif ocloud.DeploymentManagerProfileSOL018HelmCLI == profile:
profile_data['cluster_api_endpoint']
result['profileData'] = profile_data
elif ocloud.DeploymentManagerProfileSOL018HelmCLI == profile:
- result['
deploymentManagementServiceEndpoint
'] = \
+ result['
serviceUri
'] = \
profile_data['cluster_api_endpoint']
helmcli_profile = dict()
profile_data['cluster_api_endpoint']
helmcli_profile = dict()
@@
-147,7
+162,7
@@
def deployment_manager_one(deploymentManagerId: str,
deploymentManagerId, profile_data)
result['profileData'] = helmcli_profile
else:
deploymentManagerId, profile_data)
result['profileData'] = helmcli_profile
else:
- return
None
+ return
""
return result
return result
@@
-188,9
+203,11
@@
def _gen_kube_config(dmId: str, kubeconfig: dict) -> dict:
def subscriptions(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
def subscriptions(uow: unit_of_work.AbstractUnitOfWork, **kwargs):
pagination = Pagination(**kwargs)
- filter_kwargs = pagination.get_filter()
+ query_kwargs = pagination.get_pagination()
+ args = gen_filter(Subscription,
+ kwargs['filter']) if 'filter' in kwargs else []
with uow:
with uow:
- li = uow.subscriptions.list_with_count(*
*filter
_kwargs)
+ li = uow.subscriptions.list_with_count(*
args, **query
_kwargs)
return pagination.get_result(li)
return pagination.get_result(li)
@@
-201,18
+218,22
@@
def subscription_one(subscriptionId: str,
return first.serialize() if first is not None else None
return first.serialize() if first is not None else None
-def subscription_create(subscriptionDto: SubscriptionDTO.subscription,
+def subscription_create(subscriptionDto: SubscriptionDTO.subscription
_create
,
uow: unit_of_work.AbstractUnitOfWork):
uow: unit_of_work.AbstractUnitOfWork):
+ filter = subscriptionDto.get('filter', '')
+ consumer_subs_id = subscriptionDto.get('consumerSubscriptionId', '')
+
+ check_filter(ocloud.Resource, filter)
sub_uuid = str(uuid.uuid4())
subscription = Subscription(
sub_uuid, subscriptionDto['callback'],
sub_uuid = str(uuid.uuid4())
subscription = Subscription(
sub_uuid, subscriptionDto['callback'],
- subscriptionDto['consumerSubscriptionId'],
- subscriptionDto['filter'])
+ consumer_subs_id, filter)
with uow:
uow.subscriptions.add(subscription)
uow.commit()
with uow:
uow.subscriptions.add(subscription)
uow.commit()
- return {"subscriptionId": sub_uuid}
+ first = uow.subscriptions.get(sub_uuid)
+ return first.serialize()
def subscription_delete(subscriptionId: str,
def subscription_delete(subscriptionId: str,