summaryrefslogtreecommitdiff
path: root/rupdate/update
blob: 37c3eedf6a01d8504d01a87687ed263dafb0edb9 (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
#!/usr/bin/env python3
import argparse
import n.kerberos
import n.log
import os
from pprint import pprint
import re
import stat
import sys

from lib import UPDATE_HOST
from lib.client import RemoteFault
from lib.engine import UpEngine
from lib.util import parse_owner, format_owner

parser = argparse.ArgumentParser()
parser.add_argument("-E", "--endpoint",
                        default=UPDATE_HOST)
parser.add_argument("-n", "--dry-run",
                        action="store_true",
                        help="process configuration without applying changes")
parser.add_argument("-v", "--verbose",
                        action="count",
                        default=0,
                        help="show detailed information")
parser.add_argument("fileset",
                        help="file set name to apply")
args = parser.parse_args()

log = n.log.init("update", args.verbose)

os.umask(0o022)
n.kerberos.use_default_creds()

engine = UpEngine(args.endpoint)

try:
    engine.apply_set(args.fileset,
                     dry_run=args.dry_run)
except RemoteFault as ex:
    exit(f"update: server error: {ex}")