Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
themeEclipse
titlePOC code for Inventory Retriever
collapsetrue
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import lombok.Generated;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class InventoryRetriever {

    private String getAaiServiceUrlHttps() {
        final String version = "v23";
        return "https://aai:8443/aai/" + version + "/network/pnfs";
    }

    /**
     * get nfs from aai.
     * @return []
     */
    @Generated
    public String getXnfsFromAai() throws NoSuchAlgorithmException, KeyManagementException {

        final TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return new ArrayList<X509Certificate>().toArray(new X509Certificate[0]);
            }

            public void checkClientTrusted(final X509Certificate[] certs, final String authType) {
            }

            public void checkServerTrusted(final X509Certificate[] certs, final String authType) {
            }
        }
        };

        final SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

        final HostnameVerifier allHostsValid = new HostnameVerifier() {
            public boolean verify(final String hostname, final SSLSession session) {
                return true;
            }
        };

        HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
        String nfData = "";
        final String aaiNetworkEndPoint = getAaiServiceUrlHttps();
        final URL url;
        try {
            url = new URL(aaiNetworkEndPoint);
            final HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
            conn.setRequestProperty("Authorization", "Basic QUFJOkFBSQ==");
            conn.setRequestProperty("accept", "application/json");
            conn.setRequestProperty("conntent-type", "application/json");
            conn.setRequestProperty("x-fromappid", "cps-ncmp");
            conn.setRequestProperty("X-TransactionId", "get_aai_subscr");
            log.info("Reader info before connn ");
            conn.connect();
            log.info("Reader info after connn {}", conn.getResponseCode());
            log.info("response message {}", conn.getResponseMessage());
            nfData = responseReader(conn);

        } catch (final IOException e) {
            e.printStackTrace();
            log.info("Reader info ERROR: in IR class ");
        }
        return nfData;
    }
    
    private String responseReader(final HttpsURLConnection conn) {
        BufferedReader in = null;
        final StringBuilder response = new StringBuilder();
        try {
            in = new BufferedReader(new InputStreamReader(
                    conn.getInputStream(), StandardCharsets.UTF_8));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
        } catch (final IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (final IOException e) {
                throw new RuntimeException(e);
            }
        }
        return response.toString();
    }
    
}

...