From ce28825e1c85cf4d4ef4b1a6f06493528c0178b3 Mon Sep 17 00:00:00 2001 From: John Sanda Date: Tue, 17 Nov 2015 15:15:35 -0500 Subject: [PATCH] [BZ 1234991] add support for fetching storage cluster settings from remote API Cluster settings that are exposed in the UI, including replication factor, can now be fetched from a remote Java client such as the CLI. --- .../org/rhq/bindings/client/RhqManager.java | 5 ++- .../org/rhq/bindings/client/RhqManagers.java | 2 ++ .../StorageClusterSettingsManagerBean.java | 3 +- .../StorageClusterSettingsManagerLocal.java | 3 +- .../StorageClusterSettingsManagerRemote.java | 32 +++++++++++++++++++ 5 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerRemote.java diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManager.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManager.java index 7aa89d6e407..2a9791ef04b 100644 --- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManager.java +++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManager.java @@ -50,6 +50,7 @@ import org.rhq.enterprise.server.resource.group.definition.GroupDefinitionManagerRemote; import org.rhq.enterprise.server.resource.metadata.PluginManagerRemote; import org.rhq.enterprise.server.search.SavedSearchManagerRemote; +import org.rhq.enterprise.server.storage.StorageClusterSettingsManagerRemote; import org.rhq.enterprise.server.support.SupportManagerRemote; import org.rhq.enterprise.server.sync.SynchronizationManagerRemote; import org.rhq.enterprise.server.system.SystemManagerRemote; @@ -105,7 +106,9 @@ public enum RhqManager { SystemManager(SystemManagerRemote.class, "${SystemManager}"), // RemoteInstallManager(RemoteInstallManagerRemote.class, "${RemoteInstallManager}"), // TagManager(TagManagerRemote.class, "${TagManager}"), // - SynchronizationManager(SynchronizationManagerRemote.class, "${SynchronizationManager}"); + SynchronizationManager(SynchronizationManagerRemote.class, "${SynchronizationManager}"), + + StorageClusterSettingsManager(StorageClusterSettingsManagerRemote.class, "${StorageClusterSettingsManager}"); private Class remote; private String localInterfaceClassName; diff --git a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManagers.java b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManagers.java index 77612d15c3b..66a44c863f7 100644 --- a/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManagers.java +++ b/modules/enterprise/binding/src/main/java/org/rhq/bindings/client/RhqManagers.java @@ -28,6 +28,7 @@ import org.rhq.enterprise.server.resource.group.ResourceGroupManagerRemote; import org.rhq.enterprise.server.resource.group.definition.GroupDefinitionManagerRemote; import org.rhq.enterprise.server.search.SavedSearchManagerRemote; +import org.rhq.enterprise.server.storage.StorageClusterSettingsManagerRemote; import org.rhq.enterprise.server.support.SupportManagerRemote; import org.rhq.enterprise.server.sync.SynchronizationManagerRemote; import org.rhq.enterprise.server.system.SystemManagerRemote; @@ -65,6 +66,7 @@ public enum RhqManagers { ResourceTypeManager(ResourceTypeManagerRemote.class, "${ResourceTypeManager}"), // RoleManager(RoleManagerRemote.class, "${RoleManager}"), // SavedSearchManager(SavedSearchManagerRemote.class, "${SavedSearchManager}"), // + StorageClusterSettingsManager(StorageClusterSettingsManagerRemote.class, "${StorageClusterSettingsManager}"), // StorageNodeManager(StorageNodeManagerRemote.class, "${StorageNodeManager}"), // SubjectManager(SubjectManagerRemote.class, "${SubjectManager}"), // SupportManager(SupportManagerRemote.class, "${SupportManager}"), // diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java index 6451a1eb9ae..909221cfe1e 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerBean.java @@ -18,7 +18,8 @@ * @author John Sanda */ @Stateless -public class StorageClusterSettingsManagerBean implements StorageClusterSettingsManagerLocal { +public class StorageClusterSettingsManagerBean implements StorageClusterSettingsManagerLocal, + StorageClusterSettingsManagerRemote { private static final String UPDATE_PASSWORD_QUERY = "ALTER USER '%s' WITH PASSWORD '%s'"; diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerLocal.java index f98cccc13cd..6b86848f0e9 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerLocal.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerLocal.java @@ -9,8 +9,7 @@ * @author John Sanda */ @Local -public interface StorageClusterSettingsManagerLocal { - StorageClusterSettings getClusterSettings(Subject subject); +public interface StorageClusterSettingsManagerLocal extends StorageClusterSettingsManagerRemote { void setClusterSettings(Subject subject, StorageClusterSettings clusterSettings); } diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerRemote.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerRemote.java new file mode 100644 index 00000000000..77ce6a767e8 --- /dev/null +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClusterSettingsManagerRemote.java @@ -0,0 +1,32 @@ +/* + * Copyright 2015 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * 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. + */ +package org.rhq.enterprise.server.storage; + +import javax.ejb.Remote; + +import org.rhq.core.domain.auth.Subject; +import org.rhq.core.domain.cloud.StorageClusterSettings; + +/** + * @author jsanda + */ +@Remote +public interface StorageClusterSettingsManagerRemote { + + StorageClusterSettings getClusterSettings(Subject subject); + +}