summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Admin
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-25 10:48:43 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-11-25 10:48:49 -0500
commita87c59d6f23b4c4fd4e38e380994f2193ca24588 (patch)
treea19f4e154cb042d64bf9efd5ee305cb1e111db39 /src/lib/Bcfg2/Server/Admin
parenta02509650edd374b60ef178d217cda7faab24141 (diff)
downloadbcfg2-a87c59d6f23b4c4fd4e38e380994f2193ca24588.tar.gz
bcfg2-a87c59d6f23b4c4fd4e38e380994f2193ca24588.tar.bz2
bcfg2-a87c59d6f23b4c4fd4e38e380994f2193ca24588.zip
bcfg2-admin: Restored missing "bcfg2-admin client add ... attrib=val" functionality
Diffstat (limited to 'src/lib/Bcfg2/Server/Admin')
-rw-r--r--src/lib/Bcfg2/Server/Admin/Client.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Admin/Client.py b/src/lib/Bcfg2/Server/Admin/Client.py
index 187ccfd71..4eb67a9de 100644
--- a/src/lib/Bcfg2/Server/Admin/Client.py
+++ b/src/lib/Bcfg2/Server/Admin/Client.py
@@ -5,6 +5,18 @@ import Bcfg2.Server.Admin
from Bcfg2.Server.Plugin import MetadataConsistencyError
+def get_attribs(args):
+ attr_d = {}
+ for i in args[2:]:
+ attr, val = i.split('=', 1)
+ if attr not in ['profile', 'uuid', 'password', 'floating', 'secure',
+ 'address', 'auth']:
+ print("Attribute %s unknown" % attr)
+ raise SystemExit(1)
+ attr_d[attr] = val
+ return attr_d
+
+
class Client(Bcfg2.Server.Admin.MetadataCore):
""" Create, delete, or list client entries """
__usage__ = "[options] [add|del|list] [attr=val]"
@@ -16,14 +28,19 @@ class Client(Bcfg2.Server.Admin.MetadataCore):
"Usage: %s" % self.__usage__)
if args[0] == 'add':
try:
- self.metadata.add_client(args[1])
+ self.metadata.add_client(args[1], get_attribs(args))
+ except MetadataConsistencyError:
+ self.errExit("Error adding client: %s" % sys.exc_info()[1])
+ elif args[0] in ['update', 'up']:
+ try:
+ self.metadata.update_client(args[1], get_attribs(args))
except MetadataConsistencyError:
- self.errExit("Error in adding client: %s" % sys.exc_info()[1])
+ self.errExit("Error updating client: %s" % sys.exc_info()[1])
elif args[0] in ['delete', 'remove', 'del', 'rm']:
try:
self.metadata.remove_client(args[1])
except MetadataConsistencyError:
- self.errExit("Error in deleting client: %s" %
+ self.errExit("Error deleting client: %s" %
sys.exc_info()[1])
elif args[0] in ['list', 'ls']:
for client in self.metadata.list_clients():