-
Notifications
You must be signed in to change notification settings - Fork 11
/
secmgr_parser.py
93 lines (85 loc) · 3.32 KB
/
secmgr_parser.py
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""
secmgr command line actions and options
"""
import svc
import mgr_parser as mp
from rcOptParser import OptParser
from optparse import Option
PROG = "secmgr"
OPT = mp.OPT
OPT.update({
"key": Option(
"--key", default=None,
action="store", dest="key",
help="The secret key name."),
"value_from": Option(
"--from", default=None,
action="store", dest="value_from",
help="Read the secret value from a file or a directory. If set to '-' or '/dev/stdin', the value is read from stdin, and the --key is mandatory. If set to a file path, the key name is the file basename. If set to a directory, one key per file is added, and the keyname is the relative path, the --key value being used as the relative path prefix."),
"path": Option(
"--path", default=None,
action="store", dest="path",
help="The path where to install secret keys."),
"value": Option(
"--value", default=None,
action="store", dest="value",
help="The secret value."),
})
ACTIONS = mp.ACTIONS
ACTIONS.update({
"Secret actions": {
"add": {
"msg": "Add a secret key/value to the secret object.",
"options": mp.ACTION_OPTS + [
OPT.value_from,
OPT.key,
OPT.value,
],
},
"keys": {
"msg": "Show all keys available in this secret.",
},
"gen_cert": {
"msg": "Create a x509 certificate using information in the secret configuration.",
},
"fullpem" : {
"msg": "Print to stdout a ascii pem-formatted concatenation of the private key and certificate. This format is accepted by opensvc context configuration. If certificate and private key are not generated yet, run the gen_cert action.",
},
"pkcs12" : {
"msg": "Print to stdout a binary pkcs12-formatted concatenation of the private key and certificate. This format is accepted by most browsers certificate store. If certificate and private key are not generated yet, run the gen_cert action.",
},
"decode": {
"msg": "Decode a secret key from the secret object.",
"options": mp.ACTION_OPTS + [
OPT.key,
],
},
"install": {
"msg": "Install or update secret key or secret tree in consuming volumes.",
"options": mp.ACTION_OPTS + [
OPT.key,
],
},
},
})
DEPRECATED_OPTIONS = [
]
DEPRECATED_ACTIONS = [
]
ACTIONS_TRANSLATIONS = {
}
class SecmgrOptParser(OptParser):
"""
The secmgr-specific options parser class
"""
def __init__(self, args=None, colorize=True, width=None, formatter=None,
indent=6):
OptParser.__init__(self, args=args, prog=PROG, options=OPT,
actions=ACTIONS,
deprecated_options=DEPRECATED_OPTIONS,
deprecated_actions=DEPRECATED_ACTIONS,
actions_translations=ACTIONS_TRANSLATIONS,
global_options=mp.GLOBAL_OPTS,
svc_select_options=mp.SVC_SELECT_OPTS,
colorize=colorize, width=width,
formatter=formatter, indent=indent, async_actions=svc.ACTION_ASYNC)