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))
)
))
|