summaryrefslogtreecommitdiffstats
path: root/common-be
diff options
context:
space:
mode:
authortalio <talio@amdocs.com>2020-06-17 15:57:06 +0300
committerOfir Sonsino <ofir.sonsino@intl.att.com>2020-06-21 07:13:29 +0000
commita098edad859459ab116d4587af8262877f2b522a (patch)
treed5ac83bf0ef79e0d0b7de4c28ba2953acf238b9d /common-be
parentb0140364e491df1009cf00e50c0207d2e9ca3453 (diff)
Toggle
Add toggling mechanism to catalog side. The first toggleable feature is healing - this was added to healing flow, in healJanusGraphDao Issue-ID: SDC-2874 Signed-off-by: talio <talio@amdocs.com> Change-Id: If386651cab8304ebaf13497ded3a7a50bd60e477 Signed-off-by: talio <talio@amdocs.com>
Diffstat (limited to 'common-be')
-rw-r--r--common-be/pom.xml20
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/togglz/ToggleableFeature.java45
-rw-r--r--common-be/src/main/java/org/openecomp/sdc/be/togglz/TogglzConfiguration.java50
-rw-r--r--common-be/src/main/resources/feature.properties0
4 files changed, 108 insertions, 7 deletions
diff --git a/common-be/pom.xml b/common-be/pom.xml
index 2005537798..175b3877ef 100644
--- a/common-be/pom.xml
+++ b/common-be/pom.xml
@@ -166,13 +166,19 @@
<version>${togglz.version}</version>
</dependency>
- <!-- Togglz for testing -->
- <dependency>
- <groupId>org.togglz</groupId>
- <artifactId>togglz-testing</artifactId>
- <version>${togglz.version}</version>
- <scope>test</scope>
- </dependency>
+ <!-- Togglz for testing -->
+ <dependency>
+ <groupId>org.togglz</groupId>
+ <artifactId>togglz-testing</artifactId>
+ <version>${togglz.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.togglz</groupId>
+ <artifactId>togglz-core</artifactId>
+ <version>${togglz.version}</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/togglz/ToggleableFeature.java b/common-be/src/main/java/org/openecomp/sdc/be/togglz/ToggleableFeature.java
new file mode 100644
index 0000000000..b2697235b8
--- /dev/null
+++ b/common-be/src/main/java/org/openecomp/sdc/be/togglz/ToggleableFeature.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.togglz;
+
+import java.util.Arrays;
+import org.togglz.core.Feature;
+import org.togglz.core.annotation.Label;
+import org.togglz.core.context.FeatureContext;
+
+public enum ToggleableFeature implements Feature {
+ @Label("Default Feature")
+ DEFAULT_FEATURE,
+
+ @Label("Healing")
+ HEALING;
+
+ public static Feature getFeatureByName(String featureName) {
+ return Arrays.stream(values()).
+ filter(e -> e.name().equals(featureName))
+ .findFirst()
+ .orElse(null);
+ }
+
+ public boolean isActive() {
+ return FeatureContext.getFeatureManager().isActive(this);
+ }
+}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/togglz/TogglzConfiguration.java b/common-be/src/main/java/org/openecomp/sdc/be/togglz/TogglzConfiguration.java
new file mode 100644
index 0000000000..830449ca9e
--- /dev/null
+++ b/common-be/src/main/java/org/openecomp/sdc/be/togglz/TogglzConfiguration.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.togglz;
+
+import org.togglz.core.Feature;
+import org.togglz.core.manager.TogglzConfig;
+import org.togglz.core.repository.StateRepository;
+import org.togglz.core.repository.file.FileBasedStateRepository;
+import org.togglz.core.user.SimpleFeatureUser;
+import org.togglz.core.user.UserProvider;
+
+import java.io.File;
+
+public class TogglzConfiguration implements TogglzConfig {
+
+ private static final String TOGGLZ_FILE_LOCATION = "/tmp/features.properties";
+
+ @Override
+ public Class<? extends Feature> getFeatureClass() {
+ return ToggleableFeature.class;
+ }
+
+ @Override
+ public StateRepository getStateRepository() {
+ return new FileBasedStateRepository(new File(TOGGLZ_FILE_LOCATION));
+ }
+
+ @Override
+ public UserProvider getUserProvider() {
+ return () -> new SimpleFeatureUser("admin", true);
+ }
+}
diff --git a/common-be/src/main/resources/feature.properties b/common-be/src/main/resources/feature.properties
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/common-be/src/main/resources/feature.properties