http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/host/RegisterHostWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/host/RegisterHostWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/host/RegisterHostWebRequest.java deleted file mode 100644 index 86ae9c5..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/host/RegisterHostWebRequest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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.server.functionaltests.api.host; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Registers a host with Ambari. A host must - * be registered before it can be added to a cluster. - */ -public class RegisterHostWebRequest extends AmbariHttpWebRequest { - private String hostName = null; - private static String pathFormat = "/agent/v1/register/%s"; - - /** - * Registers a new host with Ambari. - * - * @param params - Ambari server connection information. - * @param hostName - Host name to be newly registered. - */ - public RegisterHostWebRequest(ConnectionParams params, String hostName) { - super(params); - this.hostName = hostName; - } - - public String getHostName() { return this.hostName; } - - @Override - public String getHttpMethod() { - return "POST"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, hostName); - } -}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/AddServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/AddServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/AddServiceWebRequest.java deleted file mode 100644 index d27afbc..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/AddServiceWebRequest.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Adds a service to the specified cluster. The service name is sent in the request data. - */ -public class AddServiceWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private static String pathFormat = "/api/v1/clusters/%s/services"; - - /** - * Add serviceName to the cluster clusterName - * - * @param params - Ambari server connection information - * @param clusterName - Existing name of a cluster. - * @param serviceName - Service name to be added. - */ - public AddServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - } - - /** - * Gets the cluster name. - * @return - */ - public String getClusterName() { return this.clusterName; } - - /** - * Gets the service name to be added. - * - * @return - */ - public String getServiceName() { return this.serviceName; } - - /** - * Gets the REST API method to use. - * - * @return - POST. - */ - @Override - public String getHttpMethod() { - return "POST"; - } - - /** - * Gets the API fragment to be added to the server URL. - * @return - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "ServiceInfo" : { - * "service_name" : serviceName - * } - * } - */ - JsonObject jsonServiceInfoObj; - jsonServiceInfoObj = createJsonObject("ServiceInfo", createJsonObject("service_name", serviceName)); - Gson gson = new Gson(); - return gson.toJson(jsonServiceInfoObj); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/DeleteServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/DeleteServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/DeleteServiceWebRequest.java deleted file mode 100644 index 50d02ac..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/DeleteServiceWebRequest.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Deletes the specified service from the specified cluster. - */ -public class DeleteServiceWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private static String pathFormat = "/api/v1/clusters/%s/services/%s"; - - /** - * Deletes a service from a cluster. - * - * @param params - Ambari server connection information - * @param clusterName - Cluster from where the service is to be deleted. - * @param serviceName - Service to be deleted. - */ - public DeleteServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - } - - public String getClusterName() { - return this.clusterName; - } - - public String getHostName() { - return this.serviceName; - } - - @Override - public String getHttpMethod() { - return "DELETE"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/GetServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/GetServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/GetServiceWebRequest.java deleted file mode 100644 index 69f2fc5..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/GetServiceWebRequest.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Gets the specified service from the specified cluster. - */ -public class GetServiceWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private static String pathFormat = "/api/v1/clusters/%s/services/%s"; - - /** - * Gets a service from a cluster. - * - * @param params - Ambari server connection information - * @param clusterName - Cluster from where the service is to be deleted. - * @param serviceName - Service to be deleted. - */ - public GetServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - } - - public String getClusterName() { - return this.clusterName; - } - - public String getHostName() { - return this.serviceName; - } - - @Override - public String getHttpMethod() { - return "GET"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/InstallServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/InstallServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/InstallServiceWebRequest.java deleted file mode 100644 index 662b905..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/InstallServiceWebRequest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.state.State; - -/** - * Installs a service. - */ -public class InstallServiceWebRequest extends SetServiceStateWebRequest { - - /** - * Updates the state of the specified service to INSTALLED. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Service to be installed. - */ - public InstallServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params, clusterName, serviceName, State.INSTALLED, "Install service"); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/SetServiceStateWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/SetServiceStateWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/SetServiceStateWebRequest.java deleted file mode 100644 index 5a5d3e6..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/SetServiceStateWebRequest.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.state.State; - -/** - * Updates the state of a service in a cluster. - */ -public class SetServiceStateWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private State serviceState; - private String requestContext; - private static String pathFormat = "/api/v1/clusters/%s/services/%s"; - - /** - * Updates the state of the specified service in the specified cluster. - * - * @param params - Ambari connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Service name whose state is to be updated. - * @param serviceState - New service state. - * @param requestContext - Comments or remarks. - */ - public SetServiceStateWebRequest(ConnectionParams params, String clusterName, String serviceName, State serviceState, - String requestContext) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - this.serviceState = serviceState; - this.requestContext = requestContext; - } - - public String getClusterName() { return this.clusterName; } - - public String getHostName() { return this.serviceName; } - - public State getServiceState() { return this.serviceState; } - - public String getRequestContext() { return this.requestContext; } - - @Override - public String getHttpMethod() { - return "PUT"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "RequestInfo" : {"context" : requestContext}, - * "Body" : {"ServiceInfo" : {"state" : serviceState}} - * } - */ - JsonObject jsonObject = new JsonObject(); - jsonObject.add("RequestInfo", createJsonObject("context", requestContext)); - jsonObject.add("Body", createJsonObject("ServiceInfo", createJsonObject("state", serviceState.toString()))); - Gson gson = new Gson(); - return gson.toJson(jsonObject); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StartServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StartServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StartServiceWebRequest.java deleted file mode 100644 index 26f5bc3..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StartServiceWebRequest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.state.State; - -/** - * Starts a service by updating it's state to STARTED. - */ -public class StartServiceWebRequest extends SetServiceStateWebRequest { - /** - * Updates the state of the specified service to STARTED. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Service to be started. - */ - public StartServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params, clusterName, serviceName, State.STARTED, "Start service"); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StopServiceWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StopServiceWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StopServiceWebRequest.java deleted file mode 100644 index 8c2d968..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/service/StopServiceWebRequest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.server.functionaltests.api.service; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.state.State; - -/** - * Stop a service by updating it's state to INSTALLED. - */ -public class StopServiceWebRequest extends SetServiceStateWebRequest { - /** - * Updates the state of the specified service to INSTALLED. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Service to be stopped. - */ - public StopServiceWebRequest(ConnectionParams params, String clusterName, String serviceName) { - super(params, clusterName, serviceName, State.INSTALLED, "Stop service"); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/AddServiceComponentWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/AddServiceComponentWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/AddServiceComponentWebRequest.java deleted file mode 100644 index 48a7b0d..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/AddServiceComponentWebRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponent; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Adds a component to a service. - */ -public class AddServiceComponentWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private String componentName; - private static String pathFormat = "/api/v1/clusters/%s/services/%s/components/%s"; - - /** - * Adds the specified service component to the specified service. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Existing service name. - * @param componentName - Component to be added to a service. - */ - public AddServiceComponentWebRequest(ConnectionParams params, String clusterName, String serviceName, - String componentName) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - this.componentName = componentName; - } - - public String getClusterName() { return this.clusterName; } - - public String getServiceName() { return this.serviceName; } - - public String getComponentName() { return this.componentName; } - - @Override - public String getHttpMethod() { - return "POST"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName, componentName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/GetServiceComponentWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/GetServiceComponentWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/GetServiceComponentWebRequest.java deleted file mode 100644 index abd35c1..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/GetServiceComponentWebRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponent; - -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -/** - * Gets a component to a service. - */ -public class GetServiceComponentWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private String componentName; - private static String pathFormat = "/api/v1/clusters/%s/services/%s/components/%s"; - - /** - * Gets the specified service component to the specified service. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param serviceName - Existing service name. - * @param componentName - Component to be added to a service. - */ - public GetServiceComponentWebRequest(ConnectionParams params, String clusterName, String serviceName, - String componentName) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - this.componentName = componentName; - } - - public String getClusterName() { return this.clusterName; } - - public String getServiceName() { return this.serviceName; } - - public String getComponentName() { return this.componentName; } - - @Override - public String getHttpMethod() { - return "GET"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName, componentName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/SetServiceComponentStateWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/SetServiceComponentStateWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/SetServiceComponentStateWebRequest.java deleted file mode 100644 index df7707b..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponent/SetServiceComponentStateWebRequest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponent; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.state.State; - -public class SetServiceComponentStateWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String serviceName; - private String componentName; - private State componentState; - private String requestContext; - private static String pathFormat = "/api/v1/clusters/%s/services/%s"; - - public SetServiceComponentStateWebRequest(ConnectionParams params, String clusterName, String serviceName, - String componentName, State componentState, String requestContext) { - super(params); - this.clusterName = clusterName; - this.serviceName = serviceName; - this.componentName = componentName; - this.componentState = componentState; - this.requestContext = requestContext; - } - - public String getClusterName() { return this.clusterName; } - - public String getServiceName() { return this.serviceName; } - - public State getComponentState() { return this.componentState; } - - public String getRequestContext() { return this.requestContext; } - - @Override - public String getHttpMethod() { - return "PUT"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, serviceName, componentName); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "RequestInfo" : {"context" : requestContext}, - * "Body" : {"ServiceComponentInfo" : {"state" : componentState}} - * } - */ - JsonObject jsonObject = new JsonObject(); - jsonObject.add("RequestInfo", createJsonObject("context", requestContext)); - jsonObject.add("Body", createJsonObject("ServiceComponentInfo", createJsonObject("state", componentState.toString()))); - Gson gson = new Gson(); - return gson.toJson(jsonObject); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/AddServiceComponentHostWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/AddServiceComponentHostWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/AddServiceComponentHostWebRequest.java deleted file mode 100644 index cd0fe0a..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/AddServiceComponentHostWebRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponenthost; - -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; - -/** - * Adds a service component to a host. - */ -public class AddServiceComponentHostWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String hostName; - private String componentName; - private static String pathFormat = "/api/v1/clusters/%s/hosts/%s/host_components/%s"; - - /** - * Adds the specified service component to the specified host. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster. - * @param hostName - Existing host. - * @param componentName - Component to be added to hostName. - */ - public AddServiceComponentHostWebRequest(ConnectionParams params, String clusterName, String hostName, - String componentName) { - super(params); - this.clusterName = clusterName; - this.hostName = hostName; - this.componentName = componentName; - } - - public String getClusterName() { return this.clusterName; } - - public String getHostName() { return this.hostName; } - - public String getComponentName() { return this.componentName; } - - @Override - public String getHttpMethod() { - return "POST"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, hostName, componentName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkAddServiceComponentHostsWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkAddServiceComponentHostsWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkAddServiceComponentHostsWebRequest.java deleted file mode 100644 index bacabb8..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkAddServiceComponentHostsWebRequest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponenthost; - -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; - -import java.util.Collections; -import java.util.List; -import java.util.ArrayList; - -/** - * Bulk add a set of components on multiple hosts. - * Replaces multiple calls to AddServiceComponentHostWebRequest - */ -public class BulkAddServiceComponentHostsWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private List<String> hostNames; - private List<String> componentNames; - private static String pathFormat = "/api/v1/clusters/%s/hosts"; - - /** - * Adds multiple componenents to multiple hosts. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster. - * @param hostNames - Hosts on which components are to be added. - * @param componentNames - Components to be added. - */ - public BulkAddServiceComponentHostsWebRequest(ConnectionParams params, String clusterName, List<String> hostNames, - List<String> componentNames) { - super(params); - this.clusterName = clusterName; - this.hostNames = new ArrayList<>(hostNames); - this.componentNames = new ArrayList<>(componentNames); - } - - public String getClusterName() { return this.clusterName; } - - public List<String> getHostNames() { return Collections.unmodifiableList(this.hostNames); } - - public List<String> getComponentNames() { return Collections.unmodifiableList(this.componentNames); } - - @Override - public String getHttpMethod() { - return "POST"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "RequestInfo" : { - * "query":"Hosts/host_name.in(host1,host2)" - * }, - * "Body" : { - * "host_components": [ - * { - * "HostRoles" : { "component_name" : "HIVE_CLIENT" } - * }, - * { - * "HostRoles" : { "component_name" : "TEZ_CLIENT" } - * } - * ] - * } - */ - JsonObject jsonObject = new JsonObject(); - JsonArray hostRoles = new JsonArray(); - - jsonObject.add("RequestInfo", createJsonObject("query", String.format("Hosts/host_name.in(%s)", toCsv(hostNames)))); - - for (String componentName : componentNames) { - hostRoles.add(createJsonObject("HostRoles", createJsonObject("component_name", componentName))); - } - - jsonObject.add("Body", createJsonObject("host_components", hostRoles)); - - Gson gson = new Gson(); - return gson.toJson(jsonObject); - } - - private static String toCsv(List<String> list) { - StringBuilder sb = new StringBuilder(); - - for (String item : list) { - sb.append(String.format("%s,", item)); - } - - sb.deleteCharAt(sb.length() - 1); - - return sb.toString(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkSetServiceComponentHostStateWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkSetServiceComponentHostStateWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkSetServiceComponentHostStateWebRequest.java deleted file mode 100644 index 6634373..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/BulkSetServiceComponentHostStateWebRequest.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponenthost; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.state.State; - -/** - * Updates the state of the specified set of components. - */ -public class BulkSetServiceComponentHostStateWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private State currentState; - private State desiredState; - - private static String pathFormat = "/api/v1/clusters/%s/host_components?HostRoles/state=%s"; - - /** - * Updates the state of multiple components in a cluster. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster name. - * @param currentState - Desired state. - * @param desiredState - Current state. - */ - public BulkSetServiceComponentHostStateWebRequest(ConnectionParams params, String clusterName, State currentState, - State desiredState) { - super(params); - this.clusterName = clusterName; - this.currentState = currentState; - this.desiredState = desiredState; - } - - @Override - public String getHttpMethod() { - return "PUT"; - } - - public State getCurrentState() { return this. currentState; } - - public State getDesiredState() { return this.desiredState; } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, this.currentState); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "HostRoles" : { "state" : "INSTALLED" } - * } - */ - JsonObject jsonObject = new JsonObject(); - - jsonObject.add("HostRoles", createJsonObject("state", desiredState.toString())); - - Gson gson = new Gson(); - return gson.toJson(jsonObject); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/GetServiceComponentHostWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/GetServiceComponentHostWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/GetServiceComponentHostWebRequest.java deleted file mode 100644 index 15d1441..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/GetServiceComponentHostWebRequest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponenthost; - -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; - -/** - * Gets a service component to a host. - */ -public class GetServiceComponentHostWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String hostName; - private String componentName; - private static String pathFormat = "/api/v1/clusters/%s/hosts/%s/host_components/%s"; - - /** - * Gets the specified service component to the specified host. - * - * @param params - Ambari server connection information. - * @param clusterName - Existing cluster. - * @param hostName - Existing host. - * @param componentName - Component to be added to hostName. - */ - public GetServiceComponentHostWebRequest(ConnectionParams params, String clusterName, String hostName, - String componentName) { - super(params); - this.clusterName = clusterName; - this.hostName = hostName; - this.componentName = componentName; - } - - public String getClusterName() { return this.clusterName; } - - public String getHostName() { return this.hostName; } - - public String getComponentName() { return this.componentName; } - - @Override - public String getHttpMethod() { - return "GET"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, hostName, componentName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/SetServiceComponentHostStateWebRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/SetServiceComponentHostStateWebRequest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/SetServiceComponentHostStateWebRequest.java deleted file mode 100644 index 8534a00..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/api/servicecomponenthost/SetServiceComponentHostStateWebRequest.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * 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.server.functionaltests.api.servicecomponenthost; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.AmbariHttpWebRequest; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.state.State; - -public class SetServiceComponentHostStateWebRequest extends AmbariHttpWebRequest { - private String clusterName; - private String hostName; - private String componentName; - private State componentState; - private String requestContext; - private static String pathFormat = "/api/v1/clusters/%s/hosts/%s/host_components/%s"; - - public SetServiceComponentHostStateWebRequest(ConnectionParams params, String clusterName, String hostName, - String componentName, State componentState, String requestContext) { - super(params); - this.clusterName = clusterName; - this.hostName = hostName; - this.componentName = componentName; - this.componentState = componentState; - this.requestContext = requestContext; - } - - public String getClusterName() { return this.clusterName; } - - public String getHostName() { return this.hostName; } - - public State getComponentState() { return this.componentState; } - - public String getRequestContext() { return this.requestContext; } - - @Override - public String getHttpMethod() { - return "PUT"; - } - - /** - * Get REST API path fragment for construction full URI. - * - * @return - REST API path - */ - @Override - protected String getApiPath() { - return String.format(pathFormat, clusterName, hostName, componentName); - } - - /** - * Constructs the request data. - * - * @return - Request data. - */ - @Override - protected String getRequestData() { - /** - * { - * "RequestInfo" : {"context" : requestContext}, - * "Body" : {"HostRoles" : {"state" : componentState}} - * } - */ - String content; - JsonObject jsonObject = new JsonObject(); - jsonObject.add("RequestInfo", createJsonObject("context", requestContext)); - jsonObject.add("Body", createJsonObject("HostRoles", createJsonObject("state", componentState.toString()))); - Gson gson = new Gson(); - content = gson.toJson(jsonObject); - return content; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/DeleteServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/DeleteServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/DeleteServiceTest.java deleted file mode 100644 index f7bd333..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/DeleteServiceTest.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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.server.functionaltests.server; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.WebResponse; -import org.apache.ambari.server.functionaltests.api.service.DeleteServiceWebRequest; -import org.apache.ambari.server.functionaltests.api.service.GetServiceWebRequest; -import org.apache.ambari.server.functionaltests.api.service.StopServiceWebRequest; -import org.apache.ambari.server.functionaltests.utils.ClusterUtils; -import org.apache.ambari.server.functionaltests.utils.RestApiUtils; -import org.apache.ambari.server.orm.dao.ClusterServiceDAO; -import org.apache.ambari.server.orm.dao.ServiceDesiredStateDAO; -import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO; -import org.apache.ambari.server.orm.dao.HostComponentStateDAO; -import org.apache.ambari.server.orm.dao.HostComponentDesiredStateDAO; -import org.apache.ambari.server.orm.entities.ClusterServiceEntity; -import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity; -import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntity; -import org.apache.ambari.server.orm.entities.HostComponentStateEntity; -import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity; -import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntityPK; -import org.apache.ambari.server.orm.entities.ServiceComponentDesiredStateEntityPK; -import org.apache.ambari.server.state.State; - -import org.apache.commons.httpclient.HttpStatus; - -import org.junit.Ignore; -import org.junit.Test; - -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - - -/** - * Simple test that starts the local ambari server, - * tests it's status and shuts down the server. - */ -@Ignore -public class DeleteServiceTest extends ServerTestBase { - /** - * Set up a test cluster with a service, a host and a few components. - * Attempt to delete the service. Verify the state of the DB. - * - * @throws Exception - */ - @Test - public void testDeleteService() throws Exception { - String clusterName = "c1"; - String serviceName = "HDFS"; - ConnectionParams params = new ConnectionParams(); - - params.setServerName("localhost"); - params.setServerApiPort(serverPort); - params.setServerAgentPort(serverAgentPort); - params.setUserName("admin"); - params.setPassword("admin"); - - ClusterUtils clusterUtils = injector.getInstance(ClusterUtils.class); - clusterUtils.createSampleCluster(params); - - /** - * Verify the status of the service - */ - JsonElement jsonResponse = RestApiUtils.executeRequest(new GetServiceWebRequest(params, clusterName, serviceName)); - assertTrue(!jsonResponse.isJsonNull()); - JsonObject jsonServiceInfoObj = jsonResponse.getAsJsonObject().get("ServiceInfo").getAsJsonObject(); - String cluster_name = jsonServiceInfoObj.get("cluster_name").getAsString(); - assertEquals(cluster_name, clusterName); - - String service_name = jsonServiceInfoObj.get("service_name").getAsString(); - assertEquals(service_name, serviceName); - - /** - * Check the following: - * ClusterServiceDAO - * ServiceDesiredStateDAO - * ServiceComponentDesiredStateDAO - * HostComponentStateDAO - * HostComponentDesiredStateDAO - */ - - /** - * Stop the service - */ - - jsonResponse = RestApiUtils.executeRequest(new StopServiceWebRequest(params, clusterName, serviceName)); - - /** - * clusterservice table - */ - ClusterServiceDAO clusterServiceDAO = injector.getInstance(ClusterServiceDAO.class); - List<ClusterServiceEntity> clusterServiceEntities = clusterServiceDAO.findAll(); - assertEquals(clusterServiceEntities.size(), 1); // Only one service in the sample cluster (HDFS) - assertEquals(clusterServiceEntities.get(0).getServiceName(), serviceName); // Verify the only service name - - ClusterServiceEntity clusterServiceEntity = clusterServiceEntities.get(0); - long clusterId = clusterServiceEntity.getClusterId(); - - /** - * servicedesiredstate table - */ - ServiceDesiredStateDAO serviceDesiredStateDAO = injector.getInstance(ServiceDesiredStateDAO.class); - List<ServiceDesiredStateEntity> serviceDesiredStateEntities = serviceDesiredStateDAO.findAll(); - assertEquals(serviceDesiredStateEntities.size(), 1); - ServiceDesiredStateEntity serviceDesiredStateEntity = serviceDesiredStateEntities.get(0); - assertEquals(serviceDesiredStateEntity.getServiceName(), serviceName); - assertEquals(serviceDesiredStateEntity.getDesiredState(), State.INSTALLED); - - /** - * servicecomponentdesiredstate table - */ - ServiceComponentDesiredStateDAO serviceComponentDesiredStateDAO = injector.getInstance(ServiceComponentDesiredStateDAO.class); - List<ServiceComponentDesiredStateEntity> serviceComponentDesiredStateEntities = serviceComponentDesiredStateDAO.findAll(); - assertEquals(serviceComponentDesiredStateEntities.size(), 3); // NAMENODE, SECONDARY_NAMENODE, DATANODE. - for (ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity : serviceComponentDesiredStateEntities) { - assertEquals(serviceComponentDesiredStateEntity.getDesiredState(), State.INSTALLED); - } - - /** - * hostcomponentstate table - */ - HostComponentStateDAO hostComponentStateDAO = injector.getInstance(HostComponentStateDAO.class); - List<HostComponentStateEntity> hostComponentStateEntities = hostComponentStateDAO.findAll(); - assertEquals(hostComponentStateEntities.size(), 3); - - /** - * hostcomponentdesiredstate table - */ - HostComponentDesiredStateDAO hostComponentDesiredStateDAO = injector.getInstance(HostComponentDesiredStateDAO.class); - List<HostComponentDesiredStateEntity> hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll(); - assertEquals(hostComponentDesiredStateEntities.size(), 3); - - /** - * Delete the service - */ - jsonResponse = RestApiUtils.executeRequest(new DeleteServiceWebRequest(params, clusterName, serviceName)); - - WebResponse webResponse = new GetServiceWebRequest(params, clusterName, serviceName).getResponse(); - assertEquals(webResponse.getStatusCode(), HttpStatus.SC_NOT_FOUND); - - /** - * ClusterServiceDAO - the service entry should have been removed. - */ - clusterServiceEntity = clusterServiceDAO.findByClusterAndServiceNames(clusterName, serviceName); - assertTrue(clusterServiceEntity == null); - - /** - * ServiceDesiredStateDAO - the service entry should have been removed. - */ - ServiceDesiredStateEntityPK serviceDesiredStateEntityPK = injector.getInstance(ServiceDesiredStateEntityPK.class); - serviceDesiredStateEntityPK.setClusterId(clusterId); - serviceDesiredStateEntityPK.setServiceName(serviceName); - serviceDesiredStateEntity = serviceDesiredStateDAO.findByPK(serviceDesiredStateEntityPK); - assertTrue(serviceDesiredStateEntity == null); - - /** - * ServiceComponentDesiredStateDAO - */ - ServiceComponentDesiredStateEntityPK serviceComponentDesiredStateEntityPK = injector.getInstance(ServiceComponentDesiredStateEntityPK.class); - ServiceComponentDesiredStateEntity serviceComponentDesiredStateEntity = serviceComponentDesiredStateDAO.findByPK(serviceComponentDesiredStateEntityPK); - assertTrue(serviceComponentDesiredStateEntity == null); - - /** - * HostComponentStateDAO - */ - hostComponentStateEntities = hostComponentStateDAO.findByService(serviceName); - assertEquals(hostComponentStateEntities.size(), 0); - - - /** - * HostComponentDesiredStateDAO - */ - hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll(); - assertEquals(hostComponentDesiredStateEntities.size(), 0); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/LocalAmbariServer.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/LocalAmbariServer.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/LocalAmbariServer.java deleted file mode 100644 index 24b4ccf..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/LocalAmbariServer.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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.server.functionaltests.server; - -import com.google.inject.Inject; -import com.google.inject.persist.PersistService; -import org.apache.ambari.server.controller.AmbariServer; -import org.apache.ambari.server.orm.GuiceJpaInitializer; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import com.google.inject.Injector; - -/** -* Wrap AmbariServer as a testable unit. -*/ -public class LocalAmbariServer implements Runnable { - - private static Log LOG = LogFactory.getLog(AmbariServer.class); - - /** - * Actual ambari server instance. - */ - private AmbariServer ambariServer = null; - - @Inject - private Injector injector; - - public LocalAmbariServer() {} - - /** - * Thread entry point. - */ - @Override - public void run(){ - try { - startServer(); - } - catch (Exception ex) { - LOG.info("Exception received ", ex); - throw new RuntimeException(ex); - } - } - - /** - * Configures the Guice injector to use the in-memory test DB - * and attempts to start an instance of AmbariServer. - * - * @throws Exception - */ - private void startServer() throws Exception { - try { - LOG.info("Attempting to start ambari server..."); - - AmbariServer.setupProxyAuth(); - injector.getInstance(GuiceJpaInitializer.class); - ambariServer = injector.getInstance(AmbariServer.class); - ambariServer.initViewRegistry(); - ambariServer.run(); - } catch (InterruptedException ex) { - LOG.info(ex); - } catch (Throwable t) { - LOG.error("Failed to run the Ambari Server", t); - stopServer(); - throw t; - } - } - - /** - * Attempts to stop the test AmbariServer instance. - * @throws Exception - */ - public void stopServer() throws Exception { - LOG.info("Stopping ambari server..."); - - if (ambariServer != null) { - ambariServer.stop(); - } - - if (injector != null) { - injector.getInstance(PersistService.class).stop(); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/ServerTestBase.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/ServerTestBase.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/ServerTestBase.java deleted file mode 100644 index a6d953a..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/ServerTestBase.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * 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.server.functionaltests.server; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.apache.ambari.server.configuration.Configuration; -import org.apache.ambari.server.orm.InMemoryDefaultTestModule; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.GetMethod; -import org.junit.After; -import org.junit.Before; - -import java.io.IOException; -import java.util.Properties; - -/** - * Base test infrastructure. - */ -public class ServerTestBase { - /** - * Run the ambari server on a thread. - */ - protected Thread serverThread = null; - - /** - * Instance of the local ambari server, which wraps the actual - * ambari server with test configuration. - */ - protected LocalAmbariServer server = null; - - /** - * Server port - */ - protected static int serverPort = 9995; - - /** - * Server agent port - */ - protected static int serverAgentPort = 9000; - - /** - * Guice injector using an in-memory DB. - */ - protected Injector injector = null; - - /** - * Server URL - */ - protected static String SERVER_URL_FORMAT = "http://localhost:%d"; - - /** - * Start our local server on a thread so that it does not block. - * - * @throws Exception - */ - @Before - public void setup() throws Exception { - InMemoryDefaultTestModule testModule = new InMemoryDefaultTestModule(); - Properties properties = testModule.getProperties(); - properties.setProperty(Configuration.AGENT_USE_SSL, "false"); - properties.setProperty(Configuration.CLIENT_API_PORT_KEY, Integer.toString(serverPort)); - properties.setProperty(Configuration.SRVR_ONE_WAY_SSL_PORT_KEY, Integer.toString(serverAgentPort)); - String tmpDir = System.getProperty("java.io.tmpdir"); - testModule.getProperties().setProperty(Configuration.SRVR_KSTR_DIR_KEY, tmpDir); - injector = Guice.createInjector(testModule); - server = injector.getInstance(LocalAmbariServer.class); - serverThread = new Thread(server); - serverThread.start(); - waitForServer(); - } - - /** - * Waits for the local server until it is ready to accept requests. - * - * @throws Exception - */ - private void waitForServer() throws Exception { - int count = 1; - - while (!isServerUp()) { - serverThread.join(count * 10000); // Give a few seconds for the ambari server to start up - //count += 1; // progressive back off - //count *= 2; // exponential back off - } - } - - /** - * Attempt to query the server for the stack. If the server is up, - * we will get a response. If not, an exception will be thrown. - * - * @return - True if the local server is responsive to queries. - * False, otherwise. - */ - private boolean isServerUp() { - String apiPath = "/api/v1/stacks"; - - String apiUrl = String.format(SERVER_URL_FORMAT, serverPort) + apiPath; - HttpClient httpClient = new HttpClient(); - GetMethod getMethod = new GetMethod(apiUrl); - - try { - int statusCode = httpClient.executeMethod(getMethod); - String response = getMethod.getResponseBodyAsString(); - - return true; - } catch (IOException ex) { - - } finally { - getMethod.releaseConnection(); - } - - return false; - } - - /** - * Shut down the local server. - * - * @throws Exception - */ - @After - public void teardown() throws Exception { - if (serverThread != null) { - serverThread.interrupt(); - } - if (server != null) { - server.stopServer(); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/StartStopServerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/StartStopServerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/StartStopServerTest.java deleted file mode 100644 index 55806f4..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/server/StartStopServerTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * 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.server.functionaltests.server; - -import org.junit.Ignore; -import org.junit.Test; - -import static org.junit.Assert.assertTrue; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.GetMethod; - -import java.io.StringReader; -import com.google.gson.JsonElement; -import com.google.gson.JsonParser; -import com.google.gson.stream.JsonReader; -import com.google.gson.JsonObject; -import com.google.gson.JsonArray; - -import java.io.IOException; - -import org.apache.http.HttpStatus; - -/** - * Simple test that starts the local ambari server, - * tests it's status and shuts down the server. - */ -@Ignore -public class StartStopServerTest extends ServerTestBase { - /** - * Waits for the ambari server to startup and then checks it's - * status by querying /api/v1/stacks (does not touch the DB) - */ - @Test - public void testServerStatus() throws IOException { - /** - * Query the ambari server for the list of stacks. - * A successful GET returns the list of stacks. - * We should get a json like: - * { - * "href" : "http://localhost:9995/api/v1/stacks", - * "items" : [ - * { - * "href" : "http://localhost:9995/api/v1/stacks/HDP", - * "Stacks" : { - * "stack_name" : "HDP" - * } - * } - * ] - * } - */ - - /** - * Test URL for GETting the status of the ambari server - */ - String stacksPath = "/api/v1/stacks"; - String stacksUrl = String.format(SERVER_URL_FORMAT, serverPort) + stacksPath; - HttpClient httpClient = new HttpClient(); - GetMethod getMethod = new GetMethod(stacksUrl); - - try { - int statusCode = httpClient.executeMethod(getMethod); - - assertTrue (statusCode == HttpStatus.SC_OK); // HTTP status code 200 - - String responseBody = getMethod.getResponseBodyAsString(); - - assertTrue(responseBody != null); // Make sure response body is valid - - JsonElement jsonElement = new JsonParser().parse(new JsonReader(new StringReader(responseBody))); - - assertTrue (jsonElement != null); // Response was a JSON string - - JsonObject jsonObject = jsonElement.getAsJsonObject(); - - assertTrue (jsonObject.has("items")); // Should have "items" entry - - JsonArray stacksArray = jsonObject.get("items").getAsJsonArray(); - - assertTrue (stacksArray.size() > 0); // Should have at least one stack - - } finally { - getMethod.releaseConnection(); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/ClusterUtils.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/ClusterUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/ClusterUtils.java deleted file mode 100644 index 8361bf1..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/ClusterUtils.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * 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.server.functionaltests.utils; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.inject.Inject; -import com.google.inject.Injector; -import org.apache.ambari.server.actionmanager.HostRoleStatus; -import org.apache.ambari.server.functionaltests.api.ClusterConfigParams; -import org.apache.ambari.server.functionaltests.api.ConnectionParams; -import org.apache.ambari.server.functionaltests.api.WebRequest; -import org.apache.ambari.server.functionaltests.api.WebResponse; -import org.apache.ambari.server.functionaltests.api.cluster.*; -import org.apache.ambari.server.functionaltests.api.host.AddHostWebRequest; -import org.apache.ambari.server.functionaltests.api.host.RegisterHostWebRequest; -import org.apache.ambari.server.functionaltests.api.service.AddServiceWebRequest; -import org.apache.ambari.server.functionaltests.api.service.InstallServiceWebRequest; -import org.apache.ambari.server.functionaltests.api.service.StartServiceWebRequest; -import org.apache.ambari.server.functionaltests.api.servicecomponent.AddServiceComponentWebRequest; -import org.apache.ambari.server.functionaltests.api.servicecomponenthost.BulkAddServiceComponentHostsWebRequest; -import org.apache.ambari.server.functionaltests.api.servicecomponenthost.BulkSetServiceComponentHostStateWebRequest; -import org.apache.ambari.server.state.Clusters; -import org.apache.ambari.server.state.Host; -import org.apache.ambari.server.state.State; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -public class ClusterUtils { - - @Inject - private Injector injector; - - public void createSampleCluster(ConnectionParams serverParams) throws Exception { - WebResponse response = null; - JsonElement jsonResponse; - String clusterName = "c1"; - String hostName = "host1"; - String clusterVersion = "HDP-2.2.0"; - - /** - * Register a host - */ - if (injector == null) { - jsonResponse = RestApiUtils.executeRequest(new RegisterHostWebRequest(serverParams, hostName)); - } - else { - /** - * Hack: Until we figure out how to get the agent servlet going, - * register a host directly using the Clusters class. - */ - Clusters clusters = injector.getInstance(Clusters.class); - clusters.addHost(hostName); - Host host1 = clusters.getHost(hostName); - Map<String, String> hostAttributes = new HashMap<String, String>(); - hostAttributes.put("os_family", "redhat"); - hostAttributes.put("os_release_version", "6.3"); - host1.setHostAttributes(hostAttributes); - host1.persist(); - } - - /** - * Create a cluster - */ - jsonResponse = RestApiUtils.executeRequest(new CreateClusterWebRequest(serverParams, clusterName, clusterVersion)); - - /** - * Add the registered host to the new cluster - */ - jsonResponse = RestApiUtils.executeRequest(new AddHostWebRequest(serverParams, clusterName, hostName)); - - /** - * Create and add a configuration to our cluster - */ - - String configType = "test-hadoop-env"; - String configTag = "version1"; - ClusterConfigParams configParams = new ClusterConfigParams(); - configParams.setClusterName(clusterName); - configParams.setConfigType(configType); - configParams.setConfigTag(configTag); - configParams.setProperties(new HashMap<String, String>() {{ - put("fs.default.name", "localhost:9995"); - }}); - - jsonResponse = RestApiUtils.executeRequest(new CreateConfigurationWebRequest(serverParams, configParams)); - - /** - * Apply the desired configuration to our cluster - */ - jsonResponse = RestApiUtils.executeRequest(new AddDesiredConfigurationWebRequest(serverParams, configParams)); - - /** - * Add a service to the cluster - */ - - String serviceName = "HDFS"; - jsonResponse = RestApiUtils.executeRequest(new AddServiceWebRequest(serverParams, clusterName, serviceName)); - - String [] componentNames = new String [] {"NAMENODE", "DATANODE", "SECONDARY_NAMENODE"}; - - /** - * Add components to the service - */ - for (String componentName : componentNames) { - jsonResponse = RestApiUtils.executeRequest(new AddServiceComponentWebRequest(serverParams, clusterName, - serviceName, componentName)); - } - - /** - * Install the service - */ - jsonResponse = RestApiUtils.executeRequest(new InstallServiceWebRequest(serverParams, clusterName, serviceName)); - - /** - * Add components to the host - */ - - jsonResponse = RestApiUtils.executeRequest(new BulkAddServiceComponentHostsWebRequest(serverParams, clusterName, - Arrays.asList(hostName), Arrays.asList(componentNames))); - - /** - * Install the service component hosts - */ - jsonResponse = RestApiUtils.executeRequest(new BulkSetServiceComponentHostStateWebRequest(serverParams, - clusterName, State.INIT, State.INSTALLED)); - int requestId = parseRequestId(jsonResponse); - RequestStatusPoller.poll(serverParams, clusterName, requestId); - - /** - * Start the service component hosts - */ - - jsonResponse = RestApiUtils.executeRequest(new BulkSetServiceComponentHostStateWebRequest(serverParams, - clusterName, State.INSTALLED, State.STARTED)); - requestId = parseRequestId(jsonResponse); - RequestStatusPoller.poll(serverParams, clusterName, requestId); - - /** - * Start the service - */ - //jsonResponse = RestApiUtils.executeRequest(new StartServiceWebRequest(serverParams, clusterName, serviceName)); - } - - /** - * Parses a JSON response string for { "Requests" : { "id" : "2" } } - * - * @param jsonResponse - * @return - request id - * @throws IllegalArgumentException - */ - private static int parseRequestId(JsonElement jsonResponse) throws IllegalArgumentException { - if (jsonResponse.isJsonNull()) { - throw new IllegalArgumentException("jsonResponse with request id expected."); - } - - JsonObject jsonObject = jsonResponse.getAsJsonObject(); - int requestId = jsonObject.get("Requests").getAsJsonObject().get("id").getAsInt(); - return requestId; - } -} - -/** - * Polls the status of a service component host request. - */ -class RequestStatusPoller implements Runnable { - private HostRoleStatus hostRoleStatus; - private ConnectionParams serverParams; - private String clusterName; - private int requestId; - - public RequestStatusPoller(ConnectionParams serverParams, String clusterName, int requestId) { - this.hostRoleStatus = HostRoleStatus.IN_PROGRESS; - this.serverParams = serverParams; - this.clusterName = clusterName; - this.requestId = requestId; - } - - public HostRoleStatus getHostRoleStatus() { - return this.hostRoleStatus; - } - - public static boolean poll(ConnectionParams serverParams, String clusterName, int requestId) throws Exception { - RequestStatusPoller poller = new RequestStatusPoller(serverParams, clusterName, requestId); - Thread pollerThread = new Thread(poller); - pollerThread.start(); - pollerThread.join(); - if (poller.getHostRoleStatus() == HostRoleStatus.COMPLETED) - return true; - - return false; - } - - @Override - public void run() { - int retryCount = 5; - while (true) { - JsonElement jsonResponse; - - try { - WebRequest webRequest = new GetRequestStatusWebRequest(serverParams, clusterName, requestId); - jsonResponse = RestApiUtils.executeRequest(webRequest); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - if (!jsonResponse.isJsonNull()) { - JsonObject jsonObj = jsonResponse.getAsJsonObject(); - JsonObject jsonRequestsObj = jsonObj.getAsJsonObject("Requests"); - String requestStatus = jsonRequestsObj.get("request_status").getAsString(); - hostRoleStatus = HostRoleStatus.valueOf(requestStatus); - - if (hostRoleStatus == HostRoleStatus.COMPLETED || - hostRoleStatus == HostRoleStatus.ABORTED || - hostRoleStatus == HostRoleStatus.TIMEDOUT || - retryCount == 0) - break; - } - - try { - Thread.sleep(5000); - } catch (InterruptedException ex) { - break; - } - - retryCount--; - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/ffb4d3b8/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/RestApiUtils.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/RestApiUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/RestApiUtils.java deleted file mode 100644 index 1cb0f31..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/functionaltests/utils/RestApiUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.server.functionaltests.utils; - -import com.google.gson.JsonElement; -import com.google.gson.JsonParser; -import com.google.gson.stream.JsonReader; -import org.apache.ambari.server.functionaltests.api.WebRequest; -import org.apache.ambari.server.functionaltests.api.WebResponse; -import org.apache.commons.httpclient.HttpStatus; - -import java.io.StringReader; - -/** - * Helper that executes a web request object and evaluates the response code. - */ -public class RestApiUtils { - /** - * Executes a web request and throws an exception if the status code is incorrect. - * - * @param request - * @return - * @throws Exception - */ - public static JsonElement executeRequest(WebRequest request) throws Exception { - WebResponse response = request.getResponse(); - int responseCode = response.getStatusCode(); - String responseBody = response.getContent(); - - if (responseCode != HttpStatus.SC_OK && responseCode != HttpStatus.SC_CREATED && responseCode != HttpStatus.SC_ACCEPTED) { - throw new RuntimeException(String.format("%d:%s", responseCode, responseBody)); - } - - return new JsonParser().parse(new JsonReader(new StringReader(responseBody))); - } -}
