diff options
Diffstat (limited to 'artifactbroker/model')
8 files changed, 423 insertions, 0 deletions
diff --git a/artifactbroker/model/pom.xml b/artifactbroker/model/pom.xml new file mode 100644 index 0000000..21f0ba4 --- /dev/null +++ b/artifactbroker/model/pom.xml @@ -0,0 +1,32 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2018 Ericsson. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.multicloud.framework</groupId> + <artifactId>multicloud-framework-artifactbroker</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <artifactId>multicloud-framework-artifactbroker-model</artifactId> + <name>${project.artifactId}</name> + <description>[${project.parent.artifactId}] module provides the model for policy distribution</description> + +</project> diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Csar.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Csar.java new file mode 100644 index 0000000..df7eaf2 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Csar.java @@ -0,0 +1,43 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +/** + * Represents a CSAR file that a {@link Policy} can be decoded from. + */ +public class Csar implements PolicyInput { + + private String csarFilePath; + + public Csar(final String csarFilePath) { + this.csarFilePath = csarFilePath; + } + + /** + * Get the path to the CSAR file. + * + * @return the path of the CSAR file + */ + public String getCsarPath() { + return csarFilePath; + } + +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/OptimizationPolicy.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/OptimizationPolicy.java new file mode 100644 index 0000000..2ca3c94 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/OptimizationPolicy.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +import java.util.Date; + +/** + * An optimization policy. + */ +public class OptimizationPolicy implements Policy { + + private static final String OPTIMIZATION = "Optimization"; + private String policyName; + private String policyDescription; + private String onapName; + private String configBody; + private String configBodyType; + private Date timetolive; + private String guard; + private String riskLevel; + private String riskType; + + @Override + public String getPolicyName() { + return policyName; + } + + @Override + public String getPolicyType() { + return OPTIMIZATION; + } + + public void setPolicyName(final String policyName) { + this.policyName = policyName; + } + + public String getPolicyDescription() { + return policyDescription; + } + + public void setPolicyDescription(final String policyDescription) { + this.policyDescription = policyDescription; + } + + public String getPolicyConfigType() { + return getPolicyType(); + } + + public String getOnapName() { + return onapName; + } + + public void setOnapName(final String onapName) { + this.onapName = onapName; + } + + public String getConfigBody() { + return configBody; + } + + public void setConfigBody(final String configBody) { + this.configBody = configBody; + } + + public String getConfigBodyType() { + return configBodyType; + } + + public void setConfigBodyType(final String configBodyType) { + this.configBodyType = configBodyType; + } + + public Date getTimetolive() { + return timetolive; + } + + public void setTimetolive(final Date timetolive) { + this.timetolive = timetolive; + } + + public String getGuard() { + return guard; + } + + public void setGuard(final String guard) { + this.guard = guard; + } + + public String getRiskLevel() { + return riskLevel; + } + + public void setRiskLevel(final String riskLevel) { + this.riskLevel = riskLevel; + } + + public String getRiskType() { + return riskType; + } + + public void setRiskType(final String riskType) { + this.riskType = riskType; + } +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Policy.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Policy.java new file mode 100644 index 0000000..02ac335 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Policy.java @@ -0,0 +1,42 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +/** + * A policy created . + */ +public interface Policy { + + /** + * Get the name of the policy. + * + * @return the name of the policy + */ + String getPolicyName(); + + /** + * Get the type of the policy. + * + * @return the type of the policy + */ + String getPolicyType(); + +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyAsString.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyAsString.java new file mode 100644 index 0000000..25bc412 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyAsString.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +/** + * This class represents a policy . + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class PolicyAsString implements Policy { + private String policyName; + private String policyType; + private String policy; + + /** + * Constructor for creating instance of {@link PolicyAsString}. + * + * @param policyName the policy file name + * @param policyType the policy type + * @param policy the policy + */ + public PolicyAsString(final String policyName, final String policyType, final String policy) { + this.policyName = policyName; + this.policyType = policyType; + this.policy = policy; + } + + /** + * Returns the policy of this {@link PolicyAsString} instance. + * + * @return the policy + */ + public String getPolicy() { + return policy; + } + + /** + * {@inheritDoc}. + */ + @Override + public String getPolicyName() { + return policyName; + } + + /** + * {@inheritDoc}. + */ + @Override + public String getPolicyType() { + return policyType; + } +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyInput.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyInput.java new file mode 100644 index 0000000..1716503 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/PolicyInput.java @@ -0,0 +1,28 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +/** + * An input that a {@link Policy} can be decoded from. + */ +public interface PolicyInput { + +} diff --git a/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Tosca.java b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Tosca.java new file mode 100644 index 0000000..b7b14c4 --- /dev/null +++ b/artifactbroker/model/src/main/java/org/onap/policy/distribution/model/Tosca.java @@ -0,0 +1,43 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +/** + * Represents a TOSCA file that a {@link Policy} can be decoded from. + */ +public class Tosca implements PolicyInput { + + private String toscaFilePath; + + public Tosca(String toscaFilePath) { + this.toscaFilePath = toscaFilePath; + } + + /** + * Get the path to the TOSCA file. + * + * @return the path of the TOSCA file + */ + String getToscaFilePath() { + return toscaFilePath; + } + +} diff --git a/artifactbroker/model/src/test/java/org/onap/policy/distribution/model/TestModels.java b/artifactbroker/model/src/test/java/org/onap/policy/distribution/model/TestModels.java new file mode 100644 index 0000000..060ab36 --- /dev/null +++ b/artifactbroker/model/src/test/java/org/onap/policy/distribution/model/TestModels.java @@ -0,0 +1,43 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.model; + +import com.openpojo.reflection.filters.FilterPackageInfo; +import com.openpojo.validation.Validator; +import com.openpojo.validation.ValidatorBuilder; +import com.openpojo.validation.test.impl.GetterTester; +import com.openpojo.validation.test.impl.SetterTester; + +import org.junit.Test; + +/** + * Class to perform unit testing of all policy models. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class TestModels { + + @Test + public void testAllModels() { + final Validator validator = ValidatorBuilder.create().with(new SetterTester()).with(new GetterTester()).build(); + validator.validate(Policy.class.getPackage().getName(), new FilterPackageInfo()); + } +} |