From d5dbd2ee4f68732d49b5e9d57c5b1138b68ab7dd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 10 Nov 2010 00:35:14 +0100 Subject: Changed Redhat to Red Hat --- src/lib/Server/Admin/Init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/Server/Admin/Init.py b/src/lib/Server/Admin/Init.py index 384ba6929..c6d1f9e3d 100644 --- a/src/lib/Server/Admin/Init.py +++ b/src/lib/Server/Admin/Init.py @@ -66,7 +66,7 @@ clients = ''' # Mapping of operating system names to groups os_list = [ - ('Redhat/Fedora/RHEL/RHAS/Centos', 'redhat'), + ('Red Hat/Fedora/RHEL/RHAS/Centos', 'redhat'), ('SUSE/SLES', 'suse'), ('Mandrake', 'mandrake'), ('Debian', 'debian'), -- cgit v1.2.3-1-g7c22 From a5f0c8b9936eb55283b3a2bb03e048842c773b45 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 3 Dec 2010 01:25:49 +0100 Subject: Initial bcfg2-admin backup part --- src/lib/Server/Admin/Backup.py | 47 ++++++++++++++++++++++++++++++++++++++++ src/lib/Server/Admin/__init__.py | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/lib/Server/Admin/Backup.py (limited to 'src') diff --git a/src/lib/Server/Admin/Backup.py b/src/lib/Server/Admin/Backup.py new file mode 100644 index 000000000..583f0329c --- /dev/null +++ b/src/lib/Server/Admin/Backup.py @@ -0,0 +1,47 @@ +import glob +import sys +import time +import tarfile +import Bcfg2.Server.Admin +import Bcfg2.Options + +class Backup(Bcfg2.Server.Admin.MetadataCore): + __shorthelp__ = "Make a backup of the Bcfg2 repository." + __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin backup start" + "\n\nbcfg2-admin backup restore") + __usage__ = ("bcfg2-admin backup [start|restore]") + + def __init__(self, configfile): + Bcfg2.Server.Admin.MetadataCore.__init__(self, configfile, + self.__usage__) + + def __call__(self, args): + Bcfg2.Server.Admin.MetadataCore.__call__(self, args) + # Get Bcfg2 repo directory + opts = {'repo': Bcfg2.Options.SERVER_REPOSITORY} + setup = Bcfg2.Options.OptionParser(opts) + setup.parse(sys.argv[1:]) + repo = setup['repo'] + + if len(args) == 0: + self.errExit("No argument specified.\n" + "Please see bcfg2-admin backup help for usage.") + if args[0] == 'start': + timestamp = time.strftime('%Y%m%d%H%M%S') + format = 'gz' + mode = 'w:' + format + filename = timestamp + '.tar' + '.' + format + out = tarfile.open(filename, mode=mode) + content = os.listdir(os.getcwd()) + for item in content: + out.add(item) + out.close() + print "Archive %s was stored.\nLocation: %s" % (filename, datastore) + + elif args[0] == 'restore': + print 'Not implemented yet' + + else: + print "No command specified" + raise SystemExit(1) + diff --git a/src/lib/Server/Admin/__init__.py b/src/lib/Server/Admin/__init__.py index 3a088b2fb..bb5c41895 100644 --- a/src/lib/Server/Admin/__init__.py +++ b/src/lib/Server/Admin/__init__.py @@ -2,7 +2,7 @@ __revision__ = '$Revision$' __all__ = ['Mode', 'Client', 'Compare', 'Init', 'Minestruct', 'Perf', 'Pull', 'Query', 'Reports', 'Snapshots', 'Tidy', 'Viz', - 'Xcmd', 'Group'] + 'Xcmd', 'Group', 'Backup'] import ConfigParser import logging -- cgit v1.2.3-1-g7c22 From c9eec98340168b1e9e3f4877b15b681855ee696b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 3 Dec 2010 01:52:34 +0100 Subject: Fixed backup location --- src/lib/Server/Admin/Backup.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Admin/Backup.py b/src/lib/Server/Admin/Backup.py index 583f0329c..f150b9cf0 100644 --- a/src/lib/Server/Admin/Backup.py +++ b/src/lib/Server/Admin/Backup.py @@ -1,4 +1,5 @@ import glob +import os import sys import time import tarfile @@ -21,7 +22,7 @@ class Backup(Bcfg2.Server.Admin.MetadataCore): opts = {'repo': Bcfg2.Options.SERVER_REPOSITORY} setup = Bcfg2.Options.OptionParser(opts) setup.parse(sys.argv[1:]) - repo = setup['repo'] + self.datastore = setup['repo'] if len(args) == 0: self.errExit("No argument specified.\n" @@ -31,12 +32,12 @@ class Backup(Bcfg2.Server.Admin.MetadataCore): format = 'gz' mode = 'w:' + format filename = timestamp + '.tar' + '.' + format - out = tarfile.open(filename, mode=mode) - content = os.listdir(os.getcwd()) + out = tarfile.open(self.datastore + '/' + filename, mode=mode) + content = os.listdir(self.datastore) for item in content: out.add(item) out.close() - print "Archive %s was stored.\nLocation: %s" % (filename, datastore) + print "Archive %s was stored.\nLocation: %s" % (filename, self.datastore) elif args[0] == 'restore': print 'Not implemented yet' -- cgit v1.2.3-1-g7c22 From 94e4f622b4dee6b33983a17313c0ef5a71c93f2e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 5 Dec 2010 21:50:18 +0100 Subject: Backup part reworked --- src/lib/Server/Admin/Backup.py | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Admin/Backup.py b/src/lib/Server/Admin/Backup.py index f150b9cf0..27a7fd8c8 100644 --- a/src/lib/Server/Admin/Backup.py +++ b/src/lib/Server/Admin/Backup.py @@ -1,4 +1,3 @@ -import glob import os import sys import time @@ -8,9 +7,9 @@ import Bcfg2.Options class Backup(Bcfg2.Server.Admin.MetadataCore): __shorthelp__ = "Make a backup of the Bcfg2 repository." - __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin backup start" - "\n\nbcfg2-admin backup restore") - __usage__ = ("bcfg2-admin backup [start|restore]") + __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin backup") + #"\n\nbcfg2-admin backup restore") + __usage__ = ("bcfg2-admin backup") def __init__(self, configfile): Bcfg2.Server.Admin.MetadataCore.__init__(self, configfile, @@ -23,26 +22,11 @@ class Backup(Bcfg2.Server.Admin.MetadataCore): setup = Bcfg2.Options.OptionParser(opts) setup.parse(sys.argv[1:]) self.datastore = setup['repo'] - - if len(args) == 0: - self.errExit("No argument specified.\n" - "Please see bcfg2-admin backup help for usage.") - if args[0] == 'start': - timestamp = time.strftime('%Y%m%d%H%M%S') - format = 'gz' - mode = 'w:' + format - filename = timestamp + '.tar' + '.' + format - out = tarfile.open(self.datastore + '/' + filename, mode=mode) - content = os.listdir(self.datastore) - for item in content: - out.add(item) - out.close() - print "Archive %s was stored.\nLocation: %s" % (filename, self.datastore) - - elif args[0] == 'restore': - print 'Not implemented yet' - - else: - print "No command specified" - raise SystemExit(1) - + timestamp = time.strftime('%Y%m%d%H%M%S') + format = 'gz' + mode = 'w:' + format + filename = timestamp + '.tar' + '.' + format + out = tarfile.open(self.datastore + '/' + filename, mode=mode) + out.add(self.datastore, os.path.basename(self.datastore)) + out.close() + print "Archive %s was stored under %s" % (filename, self.datastore) -- cgit v1.2.3-1-g7c22 From e833a7a76b231cd346f09c9a422ecb855d1cc6b4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 8 Dec 2010 23:27:15 +0100 Subject: Merge with upstream --- src/lib/Server/Admin/20101204011521.tar.gz | Bin 0 -> 1269 bytes src/lib/Server/Admin/Examples.py | 71 ++++++++++++++++++++++++++ src/lib/Server/Admin/Web.py | 79 +++++++++++++++++++++++++++++ src/lib/Server/Admin/test.py | 73 ++++++++++++++++++++++++++ src/lib/Server/Plugins/__Web.py | 47 +++++++++++++++++ 5 files changed, 270 insertions(+) create mode 100644 src/lib/Server/Admin/20101204011521.tar.gz create mode 100644 src/lib/Server/Admin/Examples.py create mode 100644 src/lib/Server/Admin/Web.py create mode 100644 src/lib/Server/Admin/test.py create mode 100644 src/lib/Server/Plugins/__Web.py (limited to 'src') diff --git a/src/lib/Server/Admin/20101204011521.tar.gz b/src/lib/Server/Admin/20101204011521.tar.gz new file mode 100644 index 000000000..e14ae8fea Binary files /dev/null and b/src/lib/Server/Admin/20101204011521.tar.gz differ diff --git a/src/lib/Server/Admin/Examples.py b/src/lib/Server/Admin/Examples.py new file mode 100644 index 000000000..3335c5e10 --- /dev/null +++ b/src/lib/Server/Admin/Examples.py @@ -0,0 +1,71 @@ +import dulwich +import time +import tarfile +from subprocess import Popen +import Bcfg2.Server.Admin +from Bcfg2.Server.Plugins.Metadata import MetadataConsistencyError + +class Examples(Bcfg2.Server.Admin.MetadataCore): + __shorthelp__ = "Pulls in the data from the Bcfg2 sample repository" + __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin examples pull\n" + "\n\nbcfg2-admin examples update\n" + "bcfg2-admin examples backup") + __usage__ = ("bcfg2-admin examples [options] [add|del|update|list] [attr=val]") + + def __init__(self, configfile): + Bcfg2.Server.Admin.MetadataCore.__init__(self, configfile, + self.__usage__) + + def __call__(self, args): + Bcfg2.Server.Admin.MetadataCore.__call__(self, args) + + + Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) + Bcfg2.Server.Plugin.Version.__init__(self) + self.core = core + self.datastore = datastore + + if len(args) == 0: + self.errExit("No argument specified.\n" + "Please see bcfg2-admin examples help for usage.") + + if args[0] == 'pull': + try: + # FIXME: Repo URL is hardcoded for now + Popen(['git', 'clone', 'https://github.com/solj/bcfg2-repo.git', datastore]) + except MetadataConsistencyError: + print "Error in pulling examples." + raise SystemExit(1) + +#fatal: destination path 'bcfg2-test' already exists and is not an empty directory. + + elif args[0] == 'backup': + try: + self.metadata.add_group(args[1], attr_d) + except MetadataConsistencyError: + print "Error in adding group" + raise SystemExit(1) + + + elif args[0] == 'backup': + try: + self.metadata.add_group(args[1], attr_d) + except MetadataConsistencyError: + print "Error in adding group" + raise SystemExit(1) + + else: + print "No command specified" + raise SystemExit(1) + + def repobackup(): + """Make a backup of the existing files in the Bcfg2 repo directory.""" + if os.path.isdir(datastore): + print 'Backup in progress...' + target = time.strftime('%Y%m%d%H%M%S') + + + out = tarfile.open(filename, w.gz) + else: + logger.error("%s doesn't exist." % datastore) + #raise Bcfg2.Server.Plugin.PluginInitError diff --git a/src/lib/Server/Admin/Web.py b/src/lib/Server/Admin/Web.py new file mode 100644 index 000000000..5ad14f2b9 --- /dev/null +++ b/src/lib/Server/Admin/Web.py @@ -0,0 +1,79 @@ +import os +import sys +import BaseHTTPServer +import SimpleHTTPServer +import daemon +import Bcfg2.Server.Admin +import Bcfg2.Options + +# For debugging output only +import logging +logger = logging.getLogger('Bcfg2.Server.Admin.Web') + +class Web(Bcfg2.Server.Admin.Mode): + __shorthelp__ = "A simple webserver to display the content of the Bcfg2 repos." + __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin web start\n" + "\n\nbcfg2-admin web stop") + __usage__ = ("bcfg2-admin web [start|stop]") + + def __init__(self, configfile): + Bcfg2.Server.Admin.Mode.__init__(self, configfile) + + def __call__(self, args): + Bcfg2.Server.Admin.Mode.__call__(self, args) + opts = {'repo': Bcfg2.Options.SERVER_REPOSITORY} + setup = Bcfg2.Options.OptionParser(opts) + setup.parse(sys.argv[1:]) + repo = setup['repo'] + + if len(args) == 0 or args[0] == '-h': + print(self.__usage__) + raise SystemExit(0) + + if len(args) == 0: + self.errExit("No argument specified.\n" + "Please see bcfg2-admin web help for usage.") + + if args[0] in ['start', 'up']: + # Change directory to the Bcfg2 repo + if not os.path.exists(repo): + #print "Path '%s' doesn't exisit" % repo + logger.error("%s doesn't exist" % repo) + else: + os.chdir(repo) + self.start_web() + + elif args[0] in ['stop', 'down']: + self.stop_web() + + else: + print "No command specified" + raise SystemExit(1) + + # The web server part with hardcoded port number + def start_web(self, port=6788): + """Starts the webserver for directory listing of the Bcfg2 repo.""" + try: + server_class = BaseHTTPServer.HTTPServer + handler_class = SimpleHTTPServer.SimpleHTTPRequestHandler + server_address = ('', port) + server = server_class(server_address, handler_class) + #server.serve_forever() + # Make the context manager for becoming a daemon process + daemon_context = daemon.DaemonContext() + daemon_context.files_preserve = [server.fileno()] + + # Become a daemon process + with daemon_context: + server.serve_forever() + except: + logger.error("Failed to start webserver") + #raise Bcfg2.Server.Admin.AdminInitError + + def stop_web(self): + """Stops the webserver.""" +# self.shutdown = 1 + self.shutdown() + # self.stopped = True +# self.serve_forever() + diff --git a/src/lib/Server/Admin/test.py b/src/lib/Server/Admin/test.py new file mode 100644 index 000000000..06271b186 --- /dev/null +++ b/src/lib/Server/Admin/test.py @@ -0,0 +1,73 @@ +import os +import time +import tarfile +import sys +datastore = '/var/lib/bcfg2' + +#Popen(['git', 'clone', 'https://github.com/solj/bcfg2-repo.git', datastore]) +#timestamp = time.strftime('%Y%m%d%H%M%S') +#format = 'gz' +#mode = 'w:' + format +#filename = timestamp + '.tar' + '.' + format +#out = tarfile.open('/home/fab/' + filename, mode=mode) + + +#content = os.listdir(os.getcwd()) +#for item in content: +# out.add(item) +#out.close() +#print "Archive %s was stored.\nLocation: %s" % (filename, datastore) + +#print os.getcwd() +#print os.listdir(os.getcwd()) + +#import shlex +#args = shlex.split('env LC_ALL=C git clone https://github.com/solj/bcfg2-repo.git datastore') +#print args + +#Popen("env LC_ALL=C git clone https://github.com/solj/bcfg2-repo.git datastore") + +#timestamp = time.strftime('%Y%m%d%H%M%S') +#format = 'gz' +#mode = 'w:' + format +#filename = timestamp + '.tar' + '.' + format +#out = tarfile.open(name = filename, mode = mode) +##content = os.listdir(datastore) +##for item in content: +## out.add(item) +##out.close() + +###t = tarfile.open(name = destination, mode = 'w:gz') +#out.add(datastore, os.path.basename(datastore)) +#out.close() + +#print datastore, os.path.basename(datastore) + +#content = os.listdir(datastore) +#for item in content: +# #out.add(item) +# print item + +#timestamp = time.strftime('%Y%m%d%H%M%S') +#format = 'gz' +#mode = 'w:' + format +#filename = timestamp + '.tar' + '.' + format + +if len(sys.argv) == 0: + destination = datastore + '/' +else: + destination = sys.argv[1] + +print destination +#out = tarfile.open(destination + filename, mode=mode) +#out.add(self.datastore, os.path.basename(self.datastore)) +#out.close() +#print "Archive %s was stored at %s" % (filename, destination) + +#print 'Die Kommandozeilenparameter sind:' +##for i in sys.argv: +## print i + +#print sys.argv[0] +#print sys.argv[1] +##print sys.argv[2] diff --git a/src/lib/Server/Plugins/__Web.py b/src/lib/Server/Plugins/__Web.py new file mode 100644 index 000000000..e1646e429 --- /dev/null +++ b/src/lib/Server/Plugins/__Web.py @@ -0,0 +1,47 @@ +import os +import BaseHTTPServer +import SimpleHTTPServer +import Bcfg2.Server.Plugin + +# for debugging output only +import logging +logger = logging.getLogger('Bcfg2.Plugins.Web') + +class Web(Bcfg2.Server.Plugin.Plugin, + Bcfg2.Server.Plugin.Version): + """Web is a simple webserver to display the content of the Bcfg2 repos.""" + name = 'Web' + __version__ = '$Id$' + __author__ = 'bcfg-dev@mcs.anl.gov' + experimental = True + + def __init__(self, core, datastore): + Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) + Bcfg2.Server.Plugin.Version.__init__(self) + self.core = core + self.datastore = datastore + + # Change directory to the Bcfg2 repo + ##path = '/home/fab/backup' + if not os.path.exists(datastore): + ##print "Path '%s' doesn't exisit" % datastore + logger.error("%s doesn't exist" % datastore) + raise Bcfg2.Server.Plugin.PluginInitError + else: + os.chdir(datastore) + self.start_web() + + logger.debug("Serving at port %s" % port) + + + def start_web(self, port=6788): + """Starts the webserver for directory listing of the Bcfg2 repo.""" + try: + server_class = BaseHTTPServer.HTTPServer + handler_class = SimpleHTTPServer.SimpleHTTPRequestHandler + server_address = ('', port) + server = server_class(server_address, handler_class) + server.serve_forever() + except: + logger.error("Failed to start webserver") + raise Bcfg2.Server.Plugin.PluginInitError -- cgit v1.2.3-1-g7c22 From 1bd521bcd125752b0430865446300c9896c5bfe2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 8 Dec 2010 23:31:06 +0100 Subject: Deleted old stuff --- src/lib/Server/Admin/20101204011521.tar.gz | Bin 1269 -> 0 bytes src/lib/Server/Admin/test.py | 73 ----------------------------- src/lib/Server/Plugins/__Web.py | 47 ------------------- 3 files changed, 120 deletions(-) delete mode 100644 src/lib/Server/Admin/20101204011521.tar.gz delete mode 100644 src/lib/Server/Admin/test.py delete mode 100644 src/lib/Server/Plugins/__Web.py (limited to 'src') diff --git a/src/lib/Server/Admin/20101204011521.tar.gz b/src/lib/Server/Admin/20101204011521.tar.gz deleted file mode 100644 index e14ae8fea..000000000 Binary files a/src/lib/Server/Admin/20101204011521.tar.gz and /dev/null differ diff --git a/src/lib/Server/Admin/test.py b/src/lib/Server/Admin/test.py deleted file mode 100644 index 06271b186..000000000 --- a/src/lib/Server/Admin/test.py +++ /dev/null @@ -1,73 +0,0 @@ -import os -import time -import tarfile -import sys -datastore = '/var/lib/bcfg2' - -#Popen(['git', 'clone', 'https://github.com/solj/bcfg2-repo.git', datastore]) -#timestamp = time.strftime('%Y%m%d%H%M%S') -#format = 'gz' -#mode = 'w:' + format -#filename = timestamp + '.tar' + '.' + format -#out = tarfile.open('/home/fab/' + filename, mode=mode) - - -#content = os.listdir(os.getcwd()) -#for item in content: -# out.add(item) -#out.close() -#print "Archive %s was stored.\nLocation: %s" % (filename, datastore) - -#print os.getcwd() -#print os.listdir(os.getcwd()) - -#import shlex -#args = shlex.split('env LC_ALL=C git clone https://github.com/solj/bcfg2-repo.git datastore') -#print args - -#Popen("env LC_ALL=C git clone https://github.com/solj/bcfg2-repo.git datastore") - -#timestamp = time.strftime('%Y%m%d%H%M%S') -#format = 'gz' -#mode = 'w:' + format -#filename = timestamp + '.tar' + '.' + format -#out = tarfile.open(name = filename, mode = mode) -##content = os.listdir(datastore) -##for item in content: -## out.add(item) -##out.close() - -###t = tarfile.open(name = destination, mode = 'w:gz') -#out.add(datastore, os.path.basename(datastore)) -#out.close() - -#print datastore, os.path.basename(datastore) - -#content = os.listdir(datastore) -#for item in content: -# #out.add(item) -# print item - -#timestamp = time.strftime('%Y%m%d%H%M%S') -#format = 'gz' -#mode = 'w:' + format -#filename = timestamp + '.tar' + '.' + format - -if len(sys.argv) == 0: - destination = datastore + '/' -else: - destination = sys.argv[1] - -print destination -#out = tarfile.open(destination + filename, mode=mode) -#out.add(self.datastore, os.path.basename(self.datastore)) -#out.close() -#print "Archive %s was stored at %s" % (filename, destination) - -#print 'Die Kommandozeilenparameter sind:' -##for i in sys.argv: -## print i - -#print sys.argv[0] -#print sys.argv[1] -##print sys.argv[2] diff --git a/src/lib/Server/Plugins/__Web.py b/src/lib/Server/Plugins/__Web.py deleted file mode 100644 index e1646e429..000000000 --- a/src/lib/Server/Plugins/__Web.py +++ /dev/null @@ -1,47 +0,0 @@ -import os -import BaseHTTPServer -import SimpleHTTPServer -import Bcfg2.Server.Plugin - -# for debugging output only -import logging -logger = logging.getLogger('Bcfg2.Plugins.Web') - -class Web(Bcfg2.Server.Plugin.Plugin, - Bcfg2.Server.Plugin.Version): - """Web is a simple webserver to display the content of the Bcfg2 repos.""" - name = 'Web' - __version__ = '$Id$' - __author__ = 'bcfg-dev@mcs.anl.gov' - experimental = True - - def __init__(self, core, datastore): - Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) - Bcfg2.Server.Plugin.Version.__init__(self) - self.core = core - self.datastore = datastore - - # Change directory to the Bcfg2 repo - ##path = '/home/fab/backup' - if not os.path.exists(datastore): - ##print "Path '%s' doesn't exisit" % datastore - logger.error("%s doesn't exist" % datastore) - raise Bcfg2.Server.Plugin.PluginInitError - else: - os.chdir(datastore) - self.start_web() - - logger.debug("Serving at port %s" % port) - - - def start_web(self, port=6788): - """Starts the webserver for directory listing of the Bcfg2 repo.""" - try: - server_class = BaseHTTPServer.HTTPServer - handler_class = SimpleHTTPServer.SimpleHTTPRequestHandler - server_address = ('', port) - server = server_class(server_address, handler_class) - server.serve_forever() - except: - logger.error("Failed to start webserver") - raise Bcfg2.Server.Plugin.PluginInitError -- cgit v1.2.3-1-g7c22 From 725383528b3b7132644bacfa1d146e084a39277f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 12 Dec 2010 10:11:40 +0100 Subject: backup and bundle added --- src/lib/Server/Admin/__init__.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Admin/__init__.py b/src/lib/Server/Admin/__init__.py index bb5c41895..aac38d30d 100644 --- a/src/lib/Server/Admin/__init__.py +++ b/src/lib/Server/Admin/__init__.py @@ -1,8 +1,24 @@ __revision__ = '$Revision$' -__all__ = ['Mode', 'Client', 'Compare', 'Init', 'Minestruct', 'Perf', - 'Pull', 'Query', 'Reports', 'Snapshots', 'Tidy', 'Viz', - 'Xcmd', 'Group', 'Backup'] +__all__ = [ + 'Backup', + 'Bundle', + 'Client', + 'Compare', + 'Group', + 'Examples', + 'Init', + 'Minestruct', + 'Mode', + 'Perf', + 'Pull', + 'Query', + 'Reports', + 'Snapshots', + 'Tidy', + 'Viz', + 'Xcmd' + ] import ConfigParser import logging -- cgit v1.2.3-1-g7c22 From eb655503a5881c81c25f4c891eefdbbe9ec84fbd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 12 Dec 2010 11:07:15 +0100 Subject: Examples commented out --- src/lib/Server/Admin/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/Server/Admin/__init__.py b/src/lib/Server/Admin/__init__.py index aac38d30d..b76d0a77e 100644 --- a/src/lib/Server/Admin/__init__.py +++ b/src/lib/Server/Admin/__init__.py @@ -6,7 +6,7 @@ __all__ = [ 'Client', 'Compare', 'Group', - 'Examples', + #'Examples', 'Init', 'Minestruct', 'Mode', -- cgit v1.2.3-1-g7c22 From fe4a1326c9c800282a6ea4c81e6d563ec5021ea6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 12 Dec 2010 22:34:18 +0100 Subject: full stop added --- src/lib/Server/Admin/Bundle.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/lib/Server/Admin/Bundle.py b/src/lib/Server/Admin/Bundle.py index 41cd5727e..893fde489 100644 --- a/src/lib/Server/Admin/Bundle.py +++ b/src/lib/Server/Admin/Bundle.py @@ -46,7 +46,7 @@ class Bundle(Bcfg2.Server.Admin.MetadataCore): # except MetadataConsistencyError: # print "Error in deleting bundle." # raise SystemExit(1) - #Lists all available xml bundles + # Lists all available xml bundles elif args[0] in ['list-xml', 'ls-xml']: bundle_name = [] for bundle_path in xml_list: @@ -54,7 +54,7 @@ class Bundle(Bcfg2.Server.Admin.MetadataCore): bundle_name.append(rg.search(bundle_path).group(1)) for bundle in bundle_name: print bundle.split('.')[0] - #Lists all available genshi bundles + # Lists all available genshi bundles elif args[0] in ['list-genshi', 'ls-gen']: bundle_name = [] for bundle_path in genshi_list: @@ -62,9 +62,11 @@ class Bundle(Bcfg2.Server.Admin.MetadataCore): bundle_name.append(rg.search(bundle_path).group(1)) for bundle in bundle_name: print bundle.split('.')[0] - #Shows a list of all available bundles and prints bundle - #details after the user choose one bundle. - #FIXME: Add support for detailed output of genshi bundles + # Shows a list of all available bundles and prints bundle + # details after the user choose one bundle. + # FIXME: Add support for detailed output of genshi bundles + # FIXME: This functionality is almost identical with + # bcfg2-info bundles elif args[0] in ['show']: bundle_name = [] bundle_list = xml_list + genshi_list @@ -84,7 +86,7 @@ class Bundle(Bcfg2.Server.Admin.MetadataCore): else: if '%s/Bundler/%s' % \ (repo, bundle_name[int(lineno)]) in genshi_list: - print "Detailed output for *.genshi bundle is not supported." + print "Detailed output for *.genshi bundles is not supported." else: print 'Details for the "%s" bundle:' % \ (bundle_name[int(lineno)].split('.')[0]) -- cgit v1.2.3-1-g7c22 From 007ab2c646c56600ed6701cf11e9a72bb402ad3e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 13 Dec 2010 23:48:52 +0100 Subject: Removed new features, too early to commit --- src/lib/Server/Admin/Examples.py | 71 ------------------------------------ src/lib/Server/Admin/Web.py | 79 ---------------------------------------- 2 files changed, 150 deletions(-) delete mode 100644 src/lib/Server/Admin/Examples.py delete mode 100644 src/lib/Server/Admin/Web.py (limited to 'src') diff --git a/src/lib/Server/Admin/Examples.py b/src/lib/Server/Admin/Examples.py deleted file mode 100644 index 3335c5e10..000000000 --- a/src/lib/Server/Admin/Examples.py +++ /dev/null @@ -1,71 +0,0 @@ -import dulwich -import time -import tarfile -from subprocess import Popen -import Bcfg2.Server.Admin -from Bcfg2.Server.Plugins.Metadata import MetadataConsistencyError - -class Examples(Bcfg2.Server.Admin.MetadataCore): - __shorthelp__ = "Pulls in the data from the Bcfg2 sample repository" - __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin examples pull\n" - "\n\nbcfg2-admin examples update\n" - "bcfg2-admin examples backup") - __usage__ = ("bcfg2-admin examples [options] [add|del|update|list] [attr=val]") - - def __init__(self, configfile): - Bcfg2.Server.Admin.MetadataCore.__init__(self, configfile, - self.__usage__) - - def __call__(self, args): - Bcfg2.Server.Admin.MetadataCore.__call__(self, args) - - - Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) - Bcfg2.Server.Plugin.Version.__init__(self) - self.core = core - self.datastore = datastore - - if len(args) == 0: - self.errExit("No argument specified.\n" - "Please see bcfg2-admin examples help for usage.") - - if args[0] == 'pull': - try: - # FIXME: Repo URL is hardcoded for now - Popen(['git', 'clone', 'https://github.com/solj/bcfg2-repo.git', datastore]) - except MetadataConsistencyError: - print "Error in pulling examples." - raise SystemExit(1) - -#fatal: destination path 'bcfg2-test' already exists and is not an empty directory. - - elif args[0] == 'backup': - try: - self.metadata.add_group(args[1], attr_d) - except MetadataConsistencyError: - print "Error in adding group" - raise SystemExit(1) - - - elif args[0] == 'backup': - try: - self.metadata.add_group(args[1], attr_d) - except MetadataConsistencyError: - print "Error in adding group" - raise SystemExit(1) - - else: - print "No command specified" - raise SystemExit(1) - - def repobackup(): - """Make a backup of the existing files in the Bcfg2 repo directory.""" - if os.path.isdir(datastore): - print 'Backup in progress...' - target = time.strftime('%Y%m%d%H%M%S') - - - out = tarfile.open(filename, w.gz) - else: - logger.error("%s doesn't exist." % datastore) - #raise Bcfg2.Server.Plugin.PluginInitError diff --git a/src/lib/Server/Admin/Web.py b/src/lib/Server/Admin/Web.py deleted file mode 100644 index 5ad14f2b9..000000000 --- a/src/lib/Server/Admin/Web.py +++ /dev/null @@ -1,79 +0,0 @@ -import os -import sys -import BaseHTTPServer -import SimpleHTTPServer -import daemon -import Bcfg2.Server.Admin -import Bcfg2.Options - -# For debugging output only -import logging -logger = logging.getLogger('Bcfg2.Server.Admin.Web') - -class Web(Bcfg2.Server.Admin.Mode): - __shorthelp__ = "A simple webserver to display the content of the Bcfg2 repos." - __longhelp__ = (__shorthelp__ + "\n\nbcfg2-admin web start\n" - "\n\nbcfg2-admin web stop") - __usage__ = ("bcfg2-admin web [start|stop]") - - def __init__(self, configfile): - Bcfg2.Server.Admin.Mode.__init__(self, configfile) - - def __call__(self, args): - Bcfg2.Server.Admin.Mode.__call__(self, args) - opts = {'repo': Bcfg2.Options.SERVER_REPOSITORY} - setup = Bcfg2.Options.OptionParser(opts) - setup.parse(sys.argv[1:]) - repo = setup['repo'] - - if len(args) == 0 or args[0] == '-h': - print(self.__usage__) - raise SystemExit(0) - - if len(args) == 0: - self.errExit("No argument specified.\n" - "Please see bcfg2-admin web help for usage.") - - if args[0] in ['start', 'up']: - # Change directory to the Bcfg2 repo - if not os.path.exists(repo): - #print "Path '%s' doesn't exisit" % repo - logger.error("%s doesn't exist" % repo) - else: - os.chdir(repo) - self.start_web() - - elif args[0] in ['stop', 'down']: - self.stop_web() - - else: - print "No command specified" - raise SystemExit(1) - - # The web server part with hardcoded port number - def start_web(self, port=6788): - """Starts the webserver for directory listing of the Bcfg2 repo.""" - try: - server_class = BaseHTTPServer.HTTPServer - handler_class = SimpleHTTPServer.SimpleHTTPRequestHandler - server_address = ('', port) - server = server_class(server_address, handler_class) - #server.serve_forever() - # Make the context manager for becoming a daemon process - daemon_context = daemon.DaemonContext() - daemon_context.files_preserve = [server.fileno()] - - # Become a daemon process - with daemon_context: - server.serve_forever() - except: - logger.error("Failed to start webserver") - #raise Bcfg2.Server.Admin.AdminInitError - - def stop_web(self): - """Stops the webserver.""" -# self.shutdown = 1 - self.shutdown() - # self.stopped = True -# self.serve_forever() - -- cgit v1.2.3-1-g7c22