use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class APIMgtAdminServiceImpl method updateSubscriptionPolicy.
@Override
public void updateSubscriptionPolicy(SubscriptionPolicy policy) throws APIManagementException {
try {
policyDAO.updateSubscriptionPolicy(policy);
PolicyValidationData policyValidationData = new PolicyValidationData(policy.getUuid(), policy.getPolicyName(), policy.isStopOnQuotaReach());
apiGateway.updatePolicy(policyValidationData);
} catch (APIMgtDAOException e) {
String errorMessage = "Couldn't update Subscription policy for uuid: " + policy.getUuid();
log.error(errorMessage, e);
throw new APIManagementException(errorMessage, e, e.getErrorHandler());
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class APIMgtAdminServiceImpl method deletePolicyByUuid.
@Override
public void deletePolicyByUuid(String uuid, PolicyLevel policyLevel) throws APIManagementException {
try {
policyDAO.deletePolicyByUuid(policyLevel, uuid);
PolicyValidationData policyValidationData = new PolicyValidationData(uuid, "", false);
apiGateway.deletePolicy(policyValidationData);
} catch (APIMgtDAOException e) {
String errorMessage = "Couldn't delete policy with id: " + uuid + ", level: " + policyLevel;
log.error(errorMessage, e);
throw new APIManagementException(errorMessage, e, e.getErrorHandler());
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class APIMgtAdminServiceImpl method addSubscriptionPolicy.
@Override
public String addSubscriptionPolicy(SubscriptionPolicy policy) throws APIManagementException {
try {
String policyUuid = policy.getUuid();
if (policyUuid == null) {
if (log.isDebugEnabled()) {
log.debug("Policy id is null, hence generating a new UUID for the policy with name: " + policy.getPolicyName());
}
policyUuid = UUID.randomUUID().toString();
policy.setUuid(policyUuid);
}
policyDAO.addSubscriptionPolicy(policy);
PolicyValidationData policyValidationData = new PolicyValidationData(policyUuid, policy.getPolicyName(), policy.isStopOnQuotaReach());
apiGateway.addPolicy(policyValidationData);
return policyUuid;
} catch (APIMgtDAOException e) {
String errorMessage = "Couldn't add Subscription policy for uuid: " + policy.getUuid();
log.error(errorMessage, e);
throw new APIManagementException(errorMessage, e, e.getErrorHandler());
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class APIThrottlePolicyTemplateBuilder method getThrottlePolicyTemplateForPipelines.
/**
* Generate policy for api level throttling
*
* @return throttle policies for api level
* @throws APITemplateException throws if generation failure occur
*/
public Map<String, String> getThrottlePolicyTemplateForPipelines() throws APITemplateException {
if (log.isDebugEnabled()) {
log.debug("Generating Siddhi App for apiLevel :" + apiPolicy.toString());
}
// get velocity template for API policy pipeline and generate the template
Map<String, String> policyArray = new HashMap<String, String>();
StringWriter writer;
VelocityContext context;
VelocityEngine velocityengine = initVelocityEngine();
Template template = velocityengine.getTemplate(getTemplatePathForAPI());
// Generate template for pipeline conditions if pipelines not null
if (apiPolicy.getPipelines() != null) {
for (Pipeline pipeline : apiPolicy.getPipelines()) {
// set values for velocity context
context = new VelocityContext();
setConstantContext(context);
context.put(PIPELINE_ITEM, pipeline);
context.put(POLICY, apiPolicy);
context.put(QUOTA_POLICY, pipeline.getQuotaPolicy());
context.put(PIPELINE, CONDITION + UNDERSCORE + pipeline.getId());
String conditionString = getPolicyCondition(pipeline.getConditions());
context.put(CONDITION, AND + conditionString);
writer = new StringWriter();
template.merge(context, writer);
if (log.isDebugEnabled()) {
log.debug("Generated Siddhi App : " + writer.toString());
}
String policyName = PolicyConstants.POLICY_LEVEL_RESOURCE + UNDERSCORE + apiPolicy.getPolicyName() + UNDERSCORE + CONDITION + UNDERSCORE + pipeline.getId();
policyArray.put(policyName, writer.toString());
}
}
return policyArray;
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class APIThrottlePolicyTemplateBuilder method getPolicyConditionForDefault.
/**
* Produces final condition inside a pipeline for default policy with null string
*
* @param conditions list of default throttle conditions
* @return formatted condition list
*/
private static String getPolicyConditionForDefault(List<Condition> conditions) {
String conditionString = null;
int i = 0;
for (Condition condition : conditions) {
String conditionStringComplete = condition.getCondition();
if (i == 0) {
conditionString = conditionStringComplete;
} else {
conditionString = conditionString + AND + conditionStringComplete;
}
i++;
}
return conditionString;
}
Aggregations