spacecmd/src/lib/activationkey.py | 18 ++++++++--------
spacecmd/src/lib/group.py | 11 ++++++---
spacecmd/src/lib/misc.py | 2 -
spacecmd/src/lib/report.py | 10 ++++-----
spacecmd/src/lib/system.py | 42 ++++++++------------------------------
spacecmd/src/lib/user.py | 21 +++++++++++--------
spacecmd/src/lib/utils.py | 4 +--
7 files changed, 46 insertions(+), 62 deletions(-)
New commits:
commit 49ab85c49fbdafc1ff6e527e7c0c502c7df16dd2
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 11:11:41 2010 -0400
support quoting of package profile names in tab completion
diff --git a/spacecmd/src/lib/system.py b/spacecmd/src/lib/system.py
index 75b637e..9684a0c 100644
--- a/spacecmd/src/lib/system.py
+++ b/spacecmd/src/lib/system.py
@@ -20,6 +20,7 @@
# NOTE: the 'self' variable is an instance of SpacewalkShell
+import shlex
from operator import itemgetter
from xml.parsers.expat import ExpatError
from spacecmd.utils import *
@@ -2176,8 +2177,10 @@ def do_system_listpackageprofiles(self, args, doreturn=False):
def help_system_deletepackageprofile(self):
print 'system_deletepackageprofile: Delete a package profile'
print 'usage: system_deletepackageprofile PROFILE'
+
def complete_system_deletepackageprofile(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return self.tab_complete_systems(\
@@ -2249,13 +2252,14 @@ def help_system_comparepackageprofile(self):
print self.HELP_SYSTEM_OPTS
def complete_system_comparepackageprofile(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return self.tab_complete_systems(text)
elif len(parts) > 2:
return self.tab_complete_systems(\
- self.do_system_listpackageprofiles('', True), text)
+ self.do_system_listpackageprofiles('', True), parts[-1])
def do_system_comparepackageprofile(self, args):
args = parse_arguments(args)
commit 973e696dc6a4a243896c5d4f099b3558d59efa66
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 11:10:07 2010 -0400
remove old instance of system_createpackageprofile
diff --git a/spacecmd/src/lib/system.py b/spacecmd/src/lib/system.py
index 4d07060..75b637e 100644
--- a/spacecmd/src/lib/system.py
+++ b/spacecmd/src/lib/system.py
@@ -1984,36 +1984,6 @@ def do_system_applyerrata(self, args):
####################
-def help_system_createpackageprofile(self):
- print 'system_createpackageprofile: Create a profile of ' + \
- 'the packages installed on this system'
- print 'usage: system_createpackageprofile SYSTEM PROFILENAME'
-
-def complete_system_createpackageprofile(self, text, line, beg, end):
- return tab_completer(self.get_system_names(), text)
-
-def do_system_createpackageprofile(self, args):
- args = parse_arguments(args)
-
- if len(args) < 2:
- self.help_system_createpackageprofile()
- return
-
- system = args[0]
- label = ' '.join(args[1:])
-
- description = prompt_user('Description:')
-
- system_id = self.get_system_id(system)
- if not system_id: return
-
- self.client.system.createPackageProfile(self.session,
- system_id,
- label,
- description)
-
-####################
-
def help_system_listevents(self):
print 'system_listevents: List the event history for a system'
print 'usage: system_listevents <SYSTEMS>'
@@ -2267,6 +2237,8 @@ def do_system_createpackageprofile(self, args):
label,
description)
+ logging.info("Created package profile '%s'" % label)
+
####################
def help_system_comparepackageprofile(self):
commit 6cb8408dd177bd1eccfe69767184b665a8ef14b8
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 11:02:36 2010 -0400
only call the system.listDuplicates* functions if the API supports it
diff --git a/spacecmd/src/lib/report.py b/spacecmd/src/lib/report.py
index 623c2b6..d6995f2 100644
--- a/spacecmd/src/lib/report.py
+++ b/spacecmd/src/lib/report.py
@@ -249,11 +249,6 @@ def help_report_duplicates(self):
print 'usage: report_duplicates'
def do_report_duplicates(self, args):
- dupes_by_ip = self.client.system.listDuplicatesByIp(self.session)
- dupes_by_mac = self.client.system.listDuplicatesByMac(self.session)
- dupes_by_hostname = \
- self.client.system.listDuplicatesByHostname(self.session)
-
add_separator = False
dupes_by_profile = []
@@ -270,6 +265,11 @@ def do_report_duplicates(self, args):
print '\n'.join(sorted(dupes_by_profile))
if self.check_api_version('10.11'):
+ dupes_by_ip = self.client.system.listDuplicatesByIp(self.session)
+ dupes_by_mac = self.client.system.listDuplicatesByMac(self.session)
+ dupes_by_hostname = \
+ self.client.system.listDuplicatesByHostname(self.session)
+
if len(dupes_by_ip):
if add_separator: print self.SEPARATOR
add_separator = True
commit f014d97c2ec4399b8647ea0556f66e727a28ef06
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 10:58:02 2010 -0400
support quoting of group names
diff --git a/spacecmd/src/lib/activationkey.py b/spacecmd/src/lib/activationkey.py
index 110eead..353ec5e 100644
--- a/spacecmd/src/lib/activationkey.py
+++ b/spacecmd/src/lib/activationkey.py
@@ -20,7 +20,7 @@
# NOTE: the 'self' variable is an instance of SpacewalkShell
-import re
+import re, shlex
from spacecmd.utils import *
def help_activationkey_addpackages(self):
@@ -86,13 +86,13 @@ def help_activationkey_addgroups(self):
print 'usage: activationkey_addgroups KEY <GROUP ...>'
def complete_activationkey_addgroups(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
- return tab_completer(self.do_activationkey_list('', True),
- text)
+ return tab_completer(self.do_activationkey_list('', True), text)
elif len(parts) > 2:
- return tab_completer(self.do_group_list('', True), text)
+ return tab_completer(self.do_group_list('', True), parts[-1])
def do_activationkey_addgroups(self, args):
args = parse_arguments(args)
@@ -117,14 +117,14 @@ def help_activationkey_removegroups(self):
print 'usage: activationkey_removegroups KEY <GROUP ...>'
def complete_activationkey_removegroups(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
- return tab_completer(self.do_activationkey_list('', True),
- text)
+ return tab_completer(self.do_activationkey_list('', True), text)
elif len(parts) > 2:
key_details = self.client.activationkey.getDetails(self.session,
- parts[1])
+ parts[-1])
groups = []
for group in key_details.get('server_group_ids'):
diff --git a/spacecmd/src/lib/group.py b/spacecmd/src/lib/group.py
index 0f07983..240fc2b 100644
--- a/spacecmd/src/lib/group.py
+++ b/spacecmd/src/lib/group.py
@@ -20,6 +20,7 @@
# NOTE: the 'self' variable is an instance of SpacewalkShell
+import shlex
from spacecmd.utils import *
def help_group_addsystems(self):
@@ -29,12 +30,13 @@ def help_group_addsystems(self):
print self.HELP_SYSTEM_OPTS
def complete_group_addsystems(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_group_list('', True), text)
elif len(parts) > 2:
- return self.tab_complete_systems(parts[1])
+ return self.tab_complete_systems(parts[-1])
def do_group_addsystems(self, args):
args = parse_arguments(args)
@@ -71,12 +73,13 @@ def help_group_removesystems(self):
print self.HELP_SYSTEM_OPTS
def complete_group_removesystems(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_group_list('', True), text)
elif len(parts) > 2:
- return self.tab_complete_systems(parts[1])
+ return self.tab_complete_systems(parts[-1])
def do_group_removesystems(self, args):
args = parse_arguments(args)
diff --git a/spacecmd/src/lib/user.py b/spacecmd/src/lib/user.py
index 73aaf86..747daca 100644
--- a/spacecmd/src/lib/user.py
+++ b/spacecmd/src/lib/user.py
@@ -20,6 +20,7 @@
# NOTE: the 'self' variable is an instance of SpacewalkShell
+import shlex
from spacecmd.utils import *
def help_user_delete(self):
@@ -243,12 +244,13 @@ def help_user_addgroup(self):
print 'usage: user_addgroup USER <GROUP ...>'
def complete_user_addgroup(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_user_list('', True), text)
elif len(parts) > 2:
- return tab_completer(self.do_group_list('', True), text)
+ return tab_completer(self.do_group_list('', True), parts[-1])
def do_user_addgroup(self, args):
args = parse_arguments(args)
@@ -272,12 +274,13 @@ def help_user_adddefaultgroup(self):
print 'usage: user_adddefaultgroup USER <GROUP ...>'
def complete_user_adddefaultgroup(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_user_list('', True), text)
elif len(parts) > 2:
- return tab_completer(self.do_group_list('', True), text)
+ return tab_completer(self.do_group_list('', True), parts[-1])
def do_user_adddefaultgroup(self, args):
args = parse_arguments(args)
@@ -300,7 +303,8 @@ def help_user_removegroup(self):
print 'usage: user_removegroup USER <GROUP ...>'
def complete_user_removegroup(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_user_list('', True), text)
@@ -308,7 +312,7 @@ def complete_user_removegroup(self, text, line, beg, end):
# only list the groups currently assigned to this user
groups = self.client.user.listAssignedSystemGroups(self.session,
parts[1])
- return tab_completer([ g.get('name') for g in groups ], text)
+ return tab_completer([ g.get('name') for g in groups ], parts[-1])
def do_user_removegroup(self, args):
args = parse_arguments(args)
@@ -333,7 +337,8 @@ def help_user_removedefaultgroup(self):
print 'usage: user_removedefaultgroup USER <GROUP ...>'
def complete_user_removedefaultgroup(self, text, line, beg, end):
- parts = line.split(' ')
+ parts = shlex.split(line)
+ if line[-1] == ' ': parts.append('')
if len(parts) == 2:
return tab_completer(self.do_user_list('', True), text)
@@ -341,7 +346,7 @@ def complete_user_removedefaultgroup(self, text, line, beg, end):
# only list the groups currently assigned to this user
groups = self.client.user.listDefaultSystemGroups(self.session,
parts[1])
- return tab_completer([ g.get('name') for g in groups ], text)
+ return tab_completer([ g.get('name') for g in groups ], parts[-1])
def do_user_removedefaultgroup(self, args):
args = parse_arguments(args)
commit bf1ce10dac37c564908642eacfaf7c8a0b0edcf4
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 10:57:34 2010 -0400
support quoting of arguments
diff --git a/spacecmd/src/lib/utils.py b/spacecmd/src/lib/utils.py
index 2bbe674..6d4a803 100644
--- a/spacecmd/src/lib/utils.py
+++ b/spacecmd/src/lib/utils.py
@@ -20,7 +20,7 @@
# NOTE: the 'self' variable is an instance of SpacewalkShell
-import logging, os, pickle, re, readline, sys, time, xmlrpclib
+import logging, os, pickle, re, readline, shlex, sys, time, xmlrpclib
from datetime import datetime, timedelta
from tempfile import mkstemp
from textwrap import wrap
@@ -29,7 +29,7 @@ __EDITORS = ['vim', 'vi', 'nano',
'emacs']
def parse_arguments(args):
try:
- parts = args.split()
+ parts = shlex.split(args)
# allow simple globbing
parts = [re.sub('\*', '.*', a) for a in parts]
commit 8c9afb0d013652b080e6d3e69e90a8d5b555a44b
Author: Aron Parsons <aparsons(a)redhat.com>
Date: Wed Jul 28 09:54:27 2010 -0400
change the log level for warning that cached credentials are invalid
diff --git a/spacecmd/src/lib/misc.py b/spacecmd/src/lib/misc.py
index 22a25e7..394c9bc 100644
--- a/spacecmd/src/lib/misc.py
+++ b/spacecmd/src/lib/misc.py
@@ -245,7 +245,7 @@ def do_login(self, args):
self.client.user.listUsers(self.session)
except:
- logging.debug('Cached credentials are invalid')
+ logging.warning('Cached credentials are invalid')
username = ''
self.session = ''