private Response createResponse(UUID uuid, OperationState state) { TrackerOperationView po = tracker.getTrackerOperation(HiveConfig.PRODUCT_KEY, uuid); if (state == OperationState.FAILED) { return Response.status(Response.Status.INTERNAL_SERVER_ERROR) .entity(JsonUtil.GSON.toJson(po.getLog())) .build(); } else if (state == OperationState.SUCCEEDED) { return Response.status(Response.Status.OK).entity(JsonUtil.GSON.toJson(po.getLog())).build(); } else { return Response.status(Response.Status.INTERNAL_SERVER_ERROR) .entity(JsonUtil.GSON.toJson("Timeout")) .build(); } }
@Override public Response getAvailableNodes(final String clusterName) { Set<String> hostsName = Sets.newHashSet(); HiveConfig hiveConfig = hiveManager.getCluster(clusterName); HadoopClusterConfig hadoopConfig = hadoopManager.getCluster(hiveConfig.getHadoopClusterName()); Set<String> nodes = new HashSet<>(hadoopConfig.getAllNodes()); nodes.removeAll(hiveConfig.getAllNodes()); if (!nodes.isEmpty()) { Set<EnvironmentContainerHost> hosts; try { hosts = environmentManager .loadEnvironment(hadoopConfig.getEnvironmentId()) .getContainerHostsByIds(nodes); for (final EnvironmentContainerHost host : hosts) { hostsName.add(host.getHostname()); } } catch (ContainerHostNotFoundException | EnvironmentNotFoundException e) { e.printStackTrace(); } } else { LOG.info("All nodes in corresponding Hadoop cluster have Nutch installed"); // return Response.status( Response.Status.NOT_FOUND ).build(); } String hosts = JsonUtil.GSON.toJson(hostsName); return Response.status(Response.Status.OK).entity(hosts).build(); }
@Override public Response getCluster(final String clusterName) { HiveConfig config = hiveManager.getCluster(clusterName); if (config == null) { return Response.status(Response.Status.INTERNAL_SERVER_ERROR) .entity(clusterName + "cluster not found") .build(); } String cluster = JsonUtil.GSON.toJson(parsePojo(config)); return Response.status(Response.Status.OK).entity(cluster).build(); }
@Override public Response getClusters() { List<HiveConfig> configs = hiveManager.getClusters(); ArrayList<String> clusterNames = Lists.newArrayList(); for (HiveConfig config : configs) { clusterNames.add(config.getClusterName()); } String clusters = JsonUtil.GSON.toJson(clusterNames); return Response.status(Response.Status.OK).entity(clusters).build(); }
@Override public Response getPluginInfo() { Properties prop = new Properties(); VersionPojo pojo = new VersionPojo(); InputStream input = null; try { input = getClass().getResourceAsStream("/git.properties"); prop.load(input); pojo.setGitCommitId(prop.getProperty("git.commit.id")); pojo.setGitCommitTime(prop.getProperty("git.commit.time")); pojo.setGitBranch(prop.getProperty("git.branch")); pojo.setGitCommitUserName(prop.getProperty("git.commit.user.name")); pojo.setGitCommitUserEmail(prop.getProperty("git.commit.user.email")); pojo.setProjectVersion(prop.getProperty("git.build.version")); pojo.setGitBuildUserName(prop.getProperty("git.build.user.name")); pojo.setGitBuildUserEmail(prop.getProperty("git.build.user.email")); pojo.setGitBuildHost(prop.getProperty("git.build.host")); pojo.setGitBuildTime(prop.getProperty("git.build.time")); pojo.setGitClosestTagName(prop.getProperty("git.closest.tag.name")); pojo.setGitCommitIdDescribeShort(prop.getProperty("git.commit.id.describe-short")); pojo.setGitClosestTagCommitCount(prop.getProperty("git.closest.tag.commit.count")); pojo.setGitCommitIdDescribe(prop.getProperty("git.commit.id.describe")); } catch (IOException ex) { ex.printStackTrace(); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } String projectInfo = JsonUtil.GSON.toJson(pojo); return Response.status(Response.Status.OK).entity(projectInfo).build(); }