|
|
@@ -0,0 +1,179 @@
|
|
|
+/*
|
|
|
+ * Licensed to the Apache Software Foundation (ASF) under one
|
|
|
+ * or more contributor license agreements. See the NOTICE file
|
|
|
+ * distributed with this work for additional information
|
|
|
+ * regarding copyright ownership. The ASF licenses this file
|
|
|
+ * to you 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.apache.ambari.view.hive2.internal;
|
|
|
+
|
|
|
+import org.apache.ambari.view.AmbariStreamProvider;
|
|
|
+import org.apache.ambari.view.DataStore;
|
|
|
+import org.apache.ambari.view.HttpImpersonator;
|
|
|
+import org.apache.ambari.view.ImpersonatorSetting;
|
|
|
+import org.apache.ambari.view.ResourceProvider;
|
|
|
+import org.apache.ambari.view.SecurityException;
|
|
|
+import org.apache.ambari.view.URLConnectionProvider;
|
|
|
+import org.apache.ambari.view.URLStreamProvider;
|
|
|
+import org.apache.ambari.view.ViewContext;
|
|
|
+import org.apache.ambari.view.ViewController;
|
|
|
+import org.apache.ambari.view.ViewDefinition;
|
|
|
+import org.apache.ambari.view.ViewInstanceDefinition;
|
|
|
+import org.apache.ambari.view.cluster.Cluster;
|
|
|
+
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Wrapper to ViewContext. This delegates all the method calls to wrapped ViewContext object excepting for
|
|
|
+ * #getUsername() and #getLoggedinUser(). At the creation time, the username and loggedinuser are store
|
|
|
+ * in instance variable. This was done to bypass the ThreadLocal variables implicitly used in actual viewContext.
|
|
|
+ * So, object of this class should be used in the ActorSystem.
|
|
|
+ */
|
|
|
+public class SafeViewContext implements ViewContext {
|
|
|
+ private final ViewContext viewContext;
|
|
|
+ private final String username;
|
|
|
+ private final String loggedinUser;
|
|
|
+
|
|
|
+ public SafeViewContext(ViewContext viewContext) {
|
|
|
+ this.viewContext = viewContext;
|
|
|
+ username = viewContext.getUsername();
|
|
|
+ loggedinUser = viewContext.getLoggedinUser();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getUsername() {
|
|
|
+ return username;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getLoggedinUser() {
|
|
|
+ return loggedinUser;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void hasPermission(String userName, String permissionName) throws SecurityException {
|
|
|
+ viewContext.hasPermission(userName, permissionName);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getViewName() {
|
|
|
+ return viewContext.getViewName();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ViewDefinition getViewDefinition() {
|
|
|
+ return viewContext.getViewDefinition();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getInstanceName() {
|
|
|
+ return viewContext.getInstanceName();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ViewInstanceDefinition getViewInstanceDefinition() {
|
|
|
+ return viewContext.getViewInstanceDefinition();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getProperties() {
|
|
|
+ return viewContext.getProperties();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void putInstanceData(String key, String value) {
|
|
|
+ viewContext.putInstanceData(key, value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getInstanceData(String key) {
|
|
|
+ return viewContext.getInstanceData(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getInstanceData() {
|
|
|
+ return viewContext.getInstanceData();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void removeInstanceData(String key) {
|
|
|
+ viewContext.removeInstanceData(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getAmbariProperty(String key) {
|
|
|
+ return viewContext.getAmbariProperty(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResourceProvider<?> getResourceProvider(String type) {
|
|
|
+ return viewContext.getResourceProvider(type);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public URLStreamProvider getURLStreamProvider() {
|
|
|
+ return viewContext.getURLStreamProvider();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public URLConnectionProvider getURLConnectionProvider() {
|
|
|
+ return viewContext.getURLConnectionProvider();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AmbariStreamProvider getAmbariStreamProvider() {
|
|
|
+ return viewContext.getAmbariStreamProvider();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AmbariStreamProvider getAmbariClusterStreamProvider() {
|
|
|
+ return viewContext.getAmbariClusterStreamProvider();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public DataStore getDataStore() {
|
|
|
+ return viewContext.getDataStore();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Collection<ViewDefinition> getViewDefinitions() {
|
|
|
+ return viewContext.getViewDefinitions();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Collection<ViewInstanceDefinition> getViewInstanceDefinitions() {
|
|
|
+ return viewContext.getViewInstanceDefinitions();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ViewController getController() {
|
|
|
+ return viewContext.getController();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpImpersonator getHttpImpersonator() {
|
|
|
+ return viewContext.getHttpImpersonator();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ImpersonatorSetting getImpersonatorSetting() {
|
|
|
+ return viewContext.getImpersonatorSetting();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Cluster getCluster() {
|
|
|
+ return viewContext.getCluster();
|
|
|
+ }
|
|
|
+}
|