/usr/share/rhn/actions/up2date_config.py is in rhn-client-tools 1.8.26-4.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | #!/usr/bin/python
# Copyright (c) 1999--2012 Red Hat, Inc. Distributed under GPLv2.
#
# Author: Adrian Likins <alikins@redhat.com>
#
import os
import re
import sys
sys.path.append("/usr/share/rhn")
from up2date_client import config
cfg = config.initUp2dateConfig()
__rhnexport__ = [
'update',
'rpmmacros',
'get']
argVerbose = 0
def update(configdict, cache_only=None):
"""Invoke this to change the ondisk configuration of up2date"""
if cache_only:
return (0, "no-ops for caching", {})
if argVerbose > 1:
print "called update_up2date_config"
if type(configdict) != type({}):
return (13, "Invalid arguments passed to function", {})
unknownparams = []
if cfg['disallowConfChanges']:
skipParams = cfg['disallowConfChanges']
else:
skipParams = []
for param in configdict.keys():
# dont touch params in the skip params list
if param in skipParams:
continue
# write out all params, even ones we dont know about
# could be useful
cfg.set(param, configdict[param])
if len(unknownparams):
return unknownparams
cfg.save()
return (0, "config updated", {})
def get(cache_only=None):
"""Reterieve the current configuration of up2date"""
if cache_only:
return (0, "no-ops for caching", {})
if argVerbose > 1:
print "called get_up2date_config"
ret = {}
for k in cfg.keys():
ret[k] = cfg[k]
return (0, "configuration retrived", {'data' : ret})
def rpmmacros(macroName, macroValue, cache_only):
if cache_only:
return (0, "no-ops for caching", {})
writeUp2dateMacro(macroName, macroValue)
return (0, "%s set to %s" % (macroName, macroValue), {})
def writeUp2dateMacro(macroName, macroValue):
if os.access("/etc/rpm/macros.up2date", os.R_OK):
f = open("/etc/rpm/macros.up2date", "r")
lines = f.readlines()
f.close()
else:
lines = []
comment_r = re.compile("\s*#.*")
value_r = re.compile("%s.*" % macroName)
blank_r = re.compile("\s*")
newfile = []
for line in lines:
m = value_r.match(line)
if m:
continue
m = comment_r.match(line)
if m:
newfile.append(line)
continue
newfile.append(line)
# dont care about blank lines...
newfile.append("\n")
newfile.append("%s %s" % (macroName, macroValue))
f = open("/etc/rpm/macros.up2date", "w")
for line in newfile:
f.write(line)
f.write("\n")
f.close()
def main():
configdatatup = get()
configdata = configdatatup[2]['data']
import time
timestamp = time.time()
configdata['timeStampTest'] = timestamp
print configdata
import pprint
pprint.pprint(update(configdata))
configdata['serverURL'] = "http://localhost/XMLRPC"
pprint.pprint(update(configdata))
if __name__ == "__main__":
main()
|