From 1a9638f5d5fc78f7e8be700e71b506fed3cc9d2d Mon Sep 17 00:00:00 2001 From: Sastry Isukapalli Date: Sat, 17 Mar 2018 02:40:15 -0400 Subject: New policies and required code changes Issue-ID: OPTFRA-146 Change-Id: I2261ae69f52b184cd7dcb7b86d5905538666a411 Signed-off-by: Sastry Isukapalli --- osdf/models/api/placementRequest.py | 82 ++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 46 deletions(-) (limited to 'osdf/models/api/placementRequest.py') diff --git a/osdf/models/api/placementRequest.py b/osdf/models/api/placementRequest.py index df5f931..aa71eac 100644 --- a/osdf/models/api/placementRequest.py +++ b/osdf/models/api/placementRequest.py @@ -26,60 +26,61 @@ class RequestInfo(OSDFModel): transactionId = StringType(required=True) requestId = StringType(required=True) callbackUrl = URLType(required=True) + callbackHeader = DictType(BaseType) sourceId = StringType(required=True) - optimizers = ListType(StringType(required=True)) + requestType = StringType(required=True) numSolutions = IntType() + optimizers = ListType(StringType(required=True)) timeout = IntType() - requestType = StringType() -class CandidateInfo(OSDFModel): +class Candidates(OSDFModel): """Preferred candidate for a resource (sent as part of a request from client)""" - candidateType = StringType(required=True) - candidates = ListType(StringType(required=True)) + identifierType = StringType(required=True) + identifiers = ListType(StringType(required=True)) + cloudOwner = StringType() -class ResourceModelInfo(OSDFModel): +class ModelMetaData(OSDFModel): """Model information for a specific resource""" - modelCustomizationId = StringType(required=True) modelInvariantId = StringType(required=True) + modelVersionId = StringType(required=True) modelName = StringType() - modelVersion = StringType() - modelVersionId = StringType() modelType = StringType() + modelVersion = StringType() + modelCustomizationName = StringType(required=True) -class ExistingLicenseInfo(OSDFModel): - entitlementPoolUUID = ListType(StringType()) - licenseKeyGroupUUID = ListType(StringType()) +class LicenseModel(OSDFModel): + entitlementPoolUUID = ListType(StringType(required=True)) + licenseKeyGroupUUID = ListType(StringType(required=True)) -class LicenseDemand(OSDFModel): - resourceInstanceType = StringType(required=True) - serviceResourceId = StringType(required=True) +class LicenseDemands(OSDFModel): resourceModuleName = StringType(required=True) - resourceModelInfo = ModelType(ResourceModelInfo) - existingLicense = ModelType(ExistingLicenseInfo) + serviceResourceId = StringType(required=True) + resourceModelInfo = ModelType(ModelMetaData, required=True) + existingLicenses = ModelType(LicenseModel) + + +class LicenseInfo(OSDFModel): + licenseDemands = ListType(ModelType(LicenseDemands)) class PlacementDemand(OSDFModel): - resourceInstanceType = StringType(required=True) - serviceResourceId = StringType(required=True) resourceModuleName = StringType(required=True) - exclusionCandidateInfo = ListType(ModelType(CandidateInfo)) - requiredCandidateInfo = ListType(ModelType(CandidateInfo)) - resourceModelInfo = ModelType(ResourceModelInfo) - tenantId = StringType(required=True) - tenantName = StringType() - -class ExistingPlacementInfo(OSDFModel): - serviceInstanceId = StringType(required=True) + serviceResourceId = StringType(required=True) + tenantId = StringType() + resourceModelInfo = ModelType(ModelMetaData, required=True) + existingCandidates = ListType(ModelType(Candidates)) + excludedCandidates = ListType(ModelType(Candidates)) + requiredCandidates = ListType(ModelType(Candidates)) -class DemandInfo(OSDFModel): - """Requested resources (sent as part of a request from client)""" - placementDemand = ListType(ModelType(PlacementDemand)) - licenseDemand = ListType(ModelType(LicenseDemand)) +class ServiceInfo(OSDFModel): + serviceInstanceId = StringType(required=True) + modelInfo = ModelType(ModelMetaData, required=True) + serviceName = StringType(required=True) class SubscriberInfo(OSDFModel): @@ -89,27 +90,16 @@ class SubscriberInfo(OSDFModel): subscriberCommonSiteId = StringType() -class ServiceModelInfo(OSDFModel): - """ASDC Service model information""" - modelType = StringType(required=True) - modelInvariantId = StringType(required=True) - modelVersionId = StringType(required=True) - modelName = StringType(required=True) - modelVersion = StringType(required=True) - - class PlacementInfo(OSDFModel): """Information specific to placement optimization""" - serviceModelInfo = ModelType(ServiceModelInfo, required=True) - subscriberInfo = ModelType(SubscriberInfo, required=True) - demandInfo = ModelType(DemandInfo, required=True) requestParameters = DictType(BaseType) - policyId = ListType(StringType()) - serviceInstanceId = StringType(required=True) - existingPlacement = ModelType(ExistingPlacementInfo) + placementDemands = ListType(ModelType(PlacementDemand), min_size=1) + subscriberInfo = ModelType(SubscriberInfo) class PlacementAPI(OSDFModel): """Request for placement optimization (specific to optimization and additional metadata""" requestInfo = ModelType(RequestInfo, required=True) placementInfo = ModelType(PlacementInfo, required=True) + licenseInfo = ModelType(LicenseInfo) + serviceInfo = ModelType(ServiceInfo, required=True) -- cgit 1.2.3-korg