3a154db20e9749bde72034e1696ef02357f886ff
[dcaegen2/collectors/hv-ves.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * dcaegen2-collectors-veshv
4  * ================================================================================
5  * Copyright (C) 2018 NOKIA
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.dcae.collectors.veshv.utils.commandline
21
22 import org.apache.commons.cli.Option
23
24
25 enum class CommandLineOption(val option: Option) {
26     HEALTH_CHECK_API_PORT(Option.builder("H")
27             .longOpt("health-check-api-port")
28             .hasArg()
29             .desc("Health check rest api listen port")
30             .build()
31     ),
32     LISTEN_PORT(Option.builder("p")
33             .longOpt("listen-port")
34             .required()
35             .hasArg()
36             .desc("Listen port")
37             .build()
38     ),
39     CONSUL_CONFIG_URL(Option.builder("c")
40             .longOpt("config-url")
41             .required()
42             .hasArg()
43             .desc("URL of ves configuration on consul")
44             .build()
45     ),
46     CONSUL_FIRST_REQUEST_DELAY(Option.builder("d")
47             .longOpt("first-request-delay")
48             .hasArg()
49             .desc("Delay of first request to consul in seconds")
50             .build()
51     ),
52     CONSUL_REQUEST_INTERVAL(Option.builder("I")
53             .longOpt("request-interval")
54             .hasArg()
55             .desc("Interval of consul configuration requests in seconds")
56             .build()
57     ),
58     VES_HV_PORT(Option.builder("v")
59             .longOpt("ves-port")
60             .required()
61             .hasArg()
62             .desc("VesHvCollector port")
63             .build()
64     ),
65     VES_HV_HOST(Option.builder("h")
66             .longOpt("ves-host")
67             .required()
68             .hasArg()
69             .desc("VesHvCollector host")
70             .build()
71     ),
72     KAFKA_SERVERS(Option.builder("s")
73             .longOpt("kafka-bootstrap-servers")
74             .required()
75             .hasArg()
76             .desc("Comma-separated Kafka bootstrap servers in <host>:<port> format")
77             .build()
78     ),
79     KAFKA_TOPICS(Option.builder("f")
80             .longOpt("kafka-topics")
81             .required()
82             .hasArg()
83             .desc("Comma-separated Kafka topics")
84             .build()
85     ),
86     SSL_DISABLE(Option.builder("l")
87             .longOpt("ssl-disable")
88             .desc("Disable SSL encryption")
89             .build()
90     ),
91     PRIVATE_KEY_FILE(Option.builder("k")
92             .longOpt("private-key-file")
93             .hasArg()
94             .desc("File with private key in PEM format")
95             .build()
96     ),
97     CERT_FILE(Option.builder("e")
98             .longOpt("cert-file")
99             .hasArg()
100             .desc("File with certificate bundle")
101             .build()
102     ),
103     TRUST_CERT_FILE(Option.builder("t")
104             .longOpt("trust-cert-file")
105             .hasArg()
106             .desc("File with trusted certificate bundle for trusting connections")
107             .build()
108     ),
109     IDLE_TIMEOUT_SEC(Option.builder("i")
110             .longOpt("idle-timeout-sec")
111             .hasArg()
112             .desc("""Idle timeout for remote hosts. After given time without any data exchange the
113                 |connection might be closed.""".trimMargin())
114             .build()
115     ),
116     DUMMY_MODE(Option.builder("u")
117             .longOpt("dummy")
118             .desc("If present will start in dummy mode (dummy external services)")
119             .build()
120     );
121
122     fun environmentVariableName(prefix: String = DEFAULT_ENV_PREFIX): String =
123             option.longOpt.toUpperCase().replace('-', '_').let { mainPart ->
124                 "${prefix}_${mainPart}"
125             }
126
127     companion object {
128         private const val DEFAULT_ENV_PREFIX = "VESHV"
129     }
130 }