summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Admin
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Server/Admin')
-rw-r--r--src/lib/Server/Admin/Snapshots.py29
-rw-r--r--src/lib/Server/Admin/__init__.py2
2 files changed, 30 insertions, 1 deletions
diff --git a/src/lib/Server/Admin/Snapshots.py b/src/lib/Server/Admin/Snapshots.py
new file mode 100644
index 000000000..17db0af62
--- /dev/null
+++ b/src/lib/Server/Admin/Snapshots.py
@@ -0,0 +1,29 @@
+import Bcfg2.Server.Admin
+import sqlalchemy, sqlalchemy.orm
+import Bcfg2.Server.Snapshots
+import Bcfg2.Server.Snapshots.model
+
+class Snapshots(Bcfg2.Server.Admin.Mode):
+ __shorthelp__ = "Interact with the Snapshots system"
+ __longhelp__ = (__shorthelp__)
+ __usage__ = ("bcfg2-admin snapshots [init|query qtype] ")
+
+ q_dispatch = {'client':Bcfg2.Server.Snapshots.model.Client,
+ 'group':Bcfg2.Server.Snapshots.model.Group,
+ 'snapshot':Bcfg2.Server.Snapshots.model.Snapshot,
+ }
+
+ def __init__(self, configfile):
+ Bcfg2.Server.Admin.Mode.__init__(self, configfile)
+ self.session = Bcfg2.Server.Snapshots.setup_session(debug=True)
+
+ def __call__(self, args):
+ if args[0] == 'query':
+ if args[1] in self.q_dispatch:
+ q_obj = self.q_dispatch[args[1]]
+ results = self.session.query(q_obj).all()
+ else:
+ print 'error'
+ raise SystemExit, 1
+ for result in results:
+ print result.name
diff --git a/src/lib/Server/Admin/__init__.py b/src/lib/Server/Admin/__init__.py
index 075822a56..e92020e5d 100644
--- a/src/lib/Server/Admin/__init__.py
+++ b/src/lib/Server/Admin/__init__.py
@@ -1,7 +1,7 @@
__revision__ = '$Revision$'
__all__ = ['Mode', 'Client', 'Compare', 'Fingerprint', 'Init', 'Minestruct',
- 'Pull', 'Query', 'Tidy', 'Viz']
+ 'Pull', 'Query', 'Snapshots', 'Tidy', 'Viz']
import ConfigParser, lxml.etree, logging, sys
import Bcfg2.Server.Core