public String postToLivy()

in service/src/main/java/org/apache/griffin/core/job/LivyTaskSubmitHelper.java [231:285]


    public String postToLivy(String uri) {
        LOGGER.info("Post To Livy URI is: " + uri);
        String needKerberos = env.getProperty("livy.need.kerberos");
        LOGGER.info("Need Kerberos:" + needKerberos);

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.set(REQUEST_BY_HEADER, "admin");

        if (needKerberos == null || needKerberos.isEmpty()) {
            LOGGER.error("The property \"livy.need.kerberos\" is empty");
            return null;
        }

        if (needKerberos.equalsIgnoreCase("false")) {
            LOGGER.info("The livy server doesn't need Kerberos Authentication");
            String result = null;
            try {
                HttpEntity<String> springEntity = new HttpEntity<>(toJsonWithFormat(livyConfMap), headers);
                result = restTemplate.postForObject(uri, springEntity, String.class);
                LOGGER.info(result);
            } catch (HttpClientErrorException e) {
                LOGGER.error("Post to livy ERROR. \n  response status : " + e.getMessage()
                    + "\n  response header : " + e.getResponseHeaders()
                    + "\n  response body : " + e.getResponseBodyAsString());
            } catch (JsonProcessingException e) {
                LOGGER.error("Json Parsing failed, {}", e.getMessage(), e);
            } catch (Exception e) {
                LOGGER.error("Post to livy ERROR. \n {}", e);
            }
            return result;
        } else {
            LOGGER.info("The livy server needs Kerberos Authentication");
            String userPrincipal = env.getProperty("livy.server.auth.kerberos.principal");
            String keyTabLocation = env.getProperty("livy.server.auth.kerberos.keytab");
            LOGGER.info("principal:{}, lcoation:{}", userPrincipal, keyTabLocation);

            KerberosRestTemplate restTemplate = new KerberosRestTemplate(keyTabLocation, userPrincipal);
            HttpEntity<String> springEntity = null;
            try {
                springEntity = new HttpEntity<>(toJsonWithFormat(livyConfMap), headers);
            } catch (HttpClientErrorException e) {
                LOGGER.error("Post to livy ERROR. \n  response status : " + e.getMessage()
                    + "\n  response header : " + e.getResponseHeaders()
                    + "\n  response body : " + e.getResponseBodyAsString());
            } catch (JsonProcessingException e) {
                LOGGER.error("Json Parsing failed, {}", e.getMessage(), e);
            } catch (Exception e) {
                LOGGER.error("Post to livy ERROR. {}", e.getMessage(), e);
            }
            String result = restTemplate.postForObject(uri, springEntity, String.class);
            LOGGER.info(result);
            return result;
        }
    }