summaryrefslogtreecommitdiffstats
path: root/src/sch/util.clj
blob: f5b0bc261b38a3ee84b039c0affc04d7653bbeb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
; ============LICENSE_START=======================================================
; org.onap.dcae
; ================================================================================
; Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
; ================================================================================
; Licensed 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.
; ============LICENSE_END=========================================================
;
; ECOMP is a trademark and service mark of AT&T Intellectual Property.

(ns sch.util
  (:require [clj-http.client :as client]
            [clj-yaml.core :as yaml]
            [cheshire.core :refer [parse-string]]
            )
  (:gen-class))


(defn- read-config-http-json
  [config-url]
  (let [resp (client/get config-url)]
    (if (= (:status resp) 200)
      (parse-string (:body resp) true)
      )))

(defn read-config
  "Read configuration from file or from an http server

  Returns a native map representation of the configuration"
  [config-path]
  (letfn [(is-http? [config-path]
            (not (nil? (re-find #"(?:https|http)://.*" config-path))))]
    (if (is-http? config-path)
      (read-config-http-json config-path)
      (yaml/parse-string (slurp config-path))
      )
    ))