Revision 4220c336
b/snf-astakos-app/astakos/im/management/commands/authpolicy-add.py | ||
---|---|---|
111 | 111 |
|
112 | 112 |
profile.save() |
113 | 113 |
if update: |
114 |
print "Profile updated"
|
|
114 |
self.stderr.write("Profile updated\n")
|
|
115 | 115 |
else: |
116 |
print "Profile stored" |
|
116 |
self.stderr.write("Profile stored\n") |
b/snf-astakos-app/astakos/im/management/commands/cleanup-full.py | ||
---|---|---|
44 | 44 |
help = "Cleanup sessions and session catalog" |
45 | 45 |
|
46 | 46 |
def handle_noargs(self, **options): |
47 |
self.stdout.write('Cleanup sessions ...\n')
|
|
47 |
self.stderr.write('Cleanup sessions ...\n')
|
|
48 | 48 |
call_command('cleanup') |
49 | 49 |
|
50 |
self.stdout.write('Cleanup session catalog ...\n')
|
|
50 |
self.stderr.write('Cleanup session catalog ...\n')
|
|
51 | 51 |
engine = import_module(settings.SESSION_ENGINE) |
52 | 52 |
store = engine.SessionStore() |
53 | 53 |
tbd = (entry for entry in SessionCatalog.objects.all() |
b/snf-astakos-app/astakos/im/management/commands/fix-superusers.py | ||
---|---|---|
49 | 49 |
fixed = fix_superusers() |
50 | 50 |
count = len(fixed) |
51 | 51 |
if count != 0: |
52 |
self.stdout.write("Fixed %s superuser(s).\n" % count)
|
|
52 |
self.stderr.write("Fixed %s superuser(s).\n" % count)
|
|
53 | 53 |
else: |
54 |
self.stdout.write("No superuser needed a fix.\n")
|
|
54 |
self.stderr.write("No superuser needed a fix.\n")
|
|
55 | 55 |
except BaseException, e: |
56 | 56 |
raise CommandError(e) |
b/snf-astakos-app/astakos/im/management/commands/group-add.py | ||
---|---|---|
47 | 47 |
raise CommandError("Invalid number of arguments") |
48 | 48 |
|
49 | 49 |
Group.objects.get_or_create(name=args[0].strip()) |
50 |
print "Group created" |
|
50 |
self.stderr.write("Group created\n") |
b/snf-astakos-app/astakos/im/management/commands/project-control.py | ||
---|---|---|
124 | 124 |
s = '1 expired project:\n' |
125 | 125 |
else: |
126 | 126 |
s = '%d expired projects:\n' % (length,) |
127 |
self.stdout.write(s)
|
|
127 |
self.stderr.write(s)
|
|
128 | 128 |
|
129 | 129 |
if length > 0: |
130 | 130 |
labels = ('Project', 'Name', 'Status', 'Expiration date') |
131 | 131 |
columns = (10, 30, 14, 30) |
132 | 132 |
|
133 | 133 |
line = ' '.join(l.rjust(w) for l, w in zip(labels, columns)) |
134 |
self.stdout.write(line + '\n')
|
|
134 |
self.stderr.write(line + '\n')
|
|
135 | 135 |
sep = '-' * len(line) |
136 |
self.stdout.write(sep + '\n')
|
|
136 |
self.stderr.write(sep + '\n')
|
|
137 | 137 |
|
138 | 138 |
for project in projects: |
139 | 139 |
line = ' '.join(f.rjust(w) for f, w in zip(project, columns)) |
140 |
self.stdout.write(line + '\n')
|
|
140 |
self.stderr.write(line + '\n')
|
|
141 | 141 |
|
142 | 142 |
if execute: |
143 |
self.stdout.write('%d projects have been terminated.\n' % (
|
|
143 |
self.stderr.write('%d projects have been terminated.\n' % (
|
|
144 | 144 |
length,)) |
145 | 145 |
|
146 | 146 |
def expire(self, execute=False): |
b/snf-astakos-app/astakos/im/management/commands/quota-verify.py | ||
---|---|---|
79 | 79 |
def print_sync(self, diff_quotas): |
80 | 80 |
size = len(diff_quotas) |
81 | 81 |
if size == 0: |
82 |
self.stdout.write("No sync needed.\n")
|
|
82 |
self.stderr.write("No sync needed.\n")
|
|
83 | 83 |
else: |
84 |
self.stdout.write("Synced %s users:\n" % size)
|
|
84 |
self.stderr.write("Synced %s users:\n" % size)
|
|
85 | 85 |
uuids = diff_quotas.keys() |
86 | 86 |
users = AstakosUser.objects.filter(uuid__in=uuids) |
87 | 87 |
for user in users: |
88 |
self.stdout.write("%s (%s)\n" % (user.uuid, user.username))
|
|
88 |
self.stderr.write("%s (%s)\n" % (user.uuid, user.username))
|
|
89 | 89 |
|
90 | 90 |
def print_verify(self, qh_limits, diff_quotas): |
91 | 91 |
for holder, local in diff_quotas.iteritems(): |
92 | 92 |
registered = qh_limits.pop(holder, None) |
93 | 93 |
user = get_user_by_uuid(holder) |
94 | 94 |
if registered is None: |
95 |
self.stdout.write(
|
|
95 |
self.stderr.write(
|
|
96 | 96 |
"No quota for %s (%s) in quotaholder.\n" % |
97 | 97 |
(holder, user.username)) |
98 | 98 |
else: |
... | ... | |
105 | 105 |
|
106 | 106 |
diffs = len(diff_quotas) |
107 | 107 |
if diffs: |
108 |
self.stdout.write("Quota differ for %d users.\n" % (diffs)) |
|
108 |
self.stderr.write("Quota differ for %d users.\n" % (diffs)) |
b/snf-astakos-app/astakos/im/management/commands/reconcile-resources-astakos.py | ||
---|---|---|
69 | 69 |
|
70 | 70 |
@transaction.commit_on_success |
71 | 71 |
def handle(self, *args, **options): |
72 |
write = self.stdout.write
|
|
72 |
write = self.stderr.write
|
|
73 | 73 |
force = options['force'] |
74 | 74 |
userid = options['userid'] |
75 | 75 |
|
... | ... | |
130 | 130 |
|
131 | 131 |
headers = ("User", "Resource", "Astakos", "Quotaholder") |
132 | 132 |
if unsynced: |
133 |
pprint_table(self.stderr, unsynced, headers)
|
|
133 |
pprint_table(self.stdout, unsynced, headers)
|
|
134 | 134 |
if options["fix"]: |
135 | 135 |
provisions = map(create_provision, unsynced) |
136 | 136 |
try: |
b/snf-astakos-app/astakos/im/management/commands/resource-modify.py | ||
---|---|---|
111 | 111 |
resource = self.get_resource(resource_name) |
112 | 112 |
resource.api_visible = allow |
113 | 113 |
if not allow and resource.ui_visible: |
114 |
self.stdout.write("Also resetting 'ui_visible' for consistency.\n")
|
|
114 |
self.stderr.write("Also resetting 'ui_visible' for consistency.\n")
|
|
115 | 115 |
resource.ui_visible = False |
116 | 116 |
resource.save() |
117 | 117 |
|
... | ... | |
127 | 127 |
|
128 | 128 |
resource.ui_visible = allow |
129 | 129 |
if allow and not resource.api_visible: |
130 |
self.stdout.write("Also setting 'api_visible' for consistency.\n")
|
|
130 |
self.stderr.write("Also setting 'api_visible' for consistency.\n")
|
|
131 | 131 |
resource.api_visible = True |
132 | 132 |
resource.save() |
133 | 133 |
|
... | ... | |
196 | 196 |
updates.append((resource, value)) |
197 | 197 |
break |
198 | 198 |
if updates: |
199 |
self.stdout.write("Updating...\n")
|
|
199 |
self.stderr.write("Updating...\n")
|
|
200 | 200 |
update_resources(updates) |
201 | 201 |
|
202 | 202 |
def parse_limit(self, limit): |
b/snf-astakos-app/astakos/im/management/commands/service-import.py | ||
---|---|---|
73 | 73 |
self.add_services(data) |
74 | 74 |
|
75 | 75 |
def add_services(self, data): |
76 |
write = self.stdout.write
|
|
76 |
write = self.stderr.write
|
|
77 | 77 |
output = [] |
78 | 78 |
for name, service_dict in data.iteritems(): |
79 | 79 |
try: |
... | ... | |
91 | 91 |
|
92 | 92 |
try: |
93 | 93 |
existed = add_service(component, name, service_type, endpoints, |
94 |
out=self.stdout)
|
|
94 |
out=self.stderr)
|
|
95 | 95 |
except RegisterException as e: |
96 | 96 |
raise CommandError(e.message) |
97 | 97 |
|
b/snf-astakos-app/astakos/im/management/commands/user-activation-send.py | ||
---|---|---|
59 | 59 |
|
60 | 60 |
activation_backend.send_user_verification_email(user) |
61 | 61 |
|
62 |
self.stdout.write("Activation sent to '%s'\n" % (user.email,)) |
|
62 |
self.stderr.write("Activation sent to '%s'\n" % (user.email,)) |
b/snf-astakos-app/astakos/im/management/commands/user-modify.py | ||
---|---|---|
257 | 257 |
group = Group.objects.get(name=groupname) |
258 | 258 |
user.groups.add(group) |
259 | 259 |
except Group.DoesNotExist, e: |
260 |
self.stdout.write(
|
|
260 |
self.stderr.write(
|
|
261 | 261 |
"Group named %s does not exist\n" % groupname) |
262 | 262 |
|
263 | 263 |
groupname = options.get('delete-group') |
... | ... | |
266 | 266 |
group = Group.objects.get(name=groupname) |
267 | 267 |
user.groups.remove(group) |
268 | 268 |
except Group.DoesNotExist, e: |
269 |
self.stdout.write(
|
|
269 |
self.stderr.write(
|
|
270 | 270 |
"Group named %s does not exist\n" % groupname) |
271 | 271 |
|
272 | 272 |
pname = options.get('add-permission') |
... | ... | |
274 | 274 |
try: |
275 | 275 |
r, created = add_user_permission(user, pname) |
276 | 276 |
if created: |
277 |
self.stdout.write(
|
|
277 |
self.stderr.write(
|
|
278 | 278 |
'Permission: %s created successfully\n' % pname) |
279 | 279 |
if r > 0: |
280 |
self.stdout.write(
|
|
280 |
self.stderr.write(
|
|
281 | 281 |
'Permission: %s added successfully\n' % pname) |
282 | 282 |
elif r == 0: |
283 |
self.stdout.write(
|
|
283 |
self.stderr.write(
|
|
284 | 284 |
'User has already permission: %s\n' % pname) |
285 | 285 |
except Exception, e: |
286 | 286 |
raise CommandError(e) |
... | ... | |
290 | 290 |
try: |
291 | 291 |
r = remove_user_permission(user, pname) |
292 | 292 |
if r < 0: |
293 |
self.stdout.write(
|
|
293 |
self.stderr.write(
|
|
294 | 294 |
'Invalid permission codename: %s\n' % pname) |
295 | 295 |
elif r == 0: |
296 |
self.stdout.write('User has not permission: %s\n' % pname)
|
|
296 |
self.stderr.write('User has not permission: %s\n' % pname)
|
|
297 | 297 |
elif r > 0: |
298 |
self.stdout.write(
|
|
298 |
self.stderr.write(
|
|
299 | 299 |
'Permission: %s removed successfully\n' % pname) |
300 | 300 |
except Exception, e: |
301 | 301 |
raise CommandError(e) |
... | ... | |
374 | 374 |
self.stdout.write("Confirm? [y/N] ") |
375 | 375 |
response = raw_input() |
376 | 376 |
if string.lower(response) not in ['y', 'yes']: |
377 |
self.stdout.write("Aborted.\n")
|
|
377 |
self.stderr.write("Aborted.\n")
|
|
378 | 378 |
exit() |
379 | 379 |
|
380 | 380 |
def handle_limits_user(self, user, res, capacity, style): |
b/snf-astakos-app/astakos/scripts/snf_service_export.py | ||
---|---|---|
1 | 1 |
import os |
2 | 2 |
os.environ['DJANGO_SETTINGS_MODULE'] = 'synnefo.settings' |
3 |
import sys |
|
3 | 4 |
from optparse import OptionParser |
4 | 5 |
from synnefo.lib.services import fill_endpoints, filter_public |
5 | 6 |
from django.utils import simplejson as json |
... | ... | |
303 | 304 |
try: |
304 | 305 |
services = definitions[component] |
305 | 306 |
except KeyError: |
306 |
print "Unrecognized component %s" % component |
|
307 |
print >> sys.stderr, "Unrecognized component %s" % component
|
|
307 | 308 |
exit(1) |
308 | 309 |
base_url = args[1] |
309 | 310 |
print_definitions(services, base_url) |
b/snf-cyclades-app/synnefo/quotas/management/commands/enforce-resources-cyclades.py | ||
---|---|---|
75 | 75 |
) |
76 | 76 |
|
77 | 77 |
def confirm(self): |
78 |
self.stderr.write("Confirm? [y/N] ")
|
|
78 |
self.stdout.write("Confirm? [y/N] ")
|
|
79 | 79 |
response = raw_input() |
80 | 80 |
if string.lower(response) not in ['y', 'yes']: |
81 |
self.stdout.write("Aborted.\n")
|
|
81 |
self.stderr.write("Aborted.\n")
|
|
82 | 82 |
exit() |
83 | 83 |
|
84 | 84 |
def get_handlers(self, resources): |
... | ... | |
169 | 169 |
return |
170 | 170 |
|
171 | 171 |
headers = ("#", "User", "Source", "Resource", "Limit", "Usage") |
172 |
pprint_table(self.stderr, overlimit, headers,
|
|
172 |
pprint_table(self.stdout, overlimit, headers,
|
|
173 | 173 |
options["output_format"], title="Violations") |
174 | 174 |
|
175 | 175 |
if any(actions.values()): |
176 |
write("\n") |
|
176 |
self.stdout.write("\n")
|
|
177 | 177 |
if fix: |
178 | 178 |
if dangerous and not force: |
179 | 179 |
write("You are enforcing resources that may permanently " |
... | ... | |
185 | 185 |
headers = ("Type", "ID", "State", "Backend", "Action", "Violation") |
186 | 186 |
if fix: |
187 | 187 |
headers += ("Result",) |
188 |
pprint_table(self.stderr, log, headers,
|
|
188 |
pprint_table(self.stdout, log, headers,
|
|
189 | 189 |
options["output_format"], title=title) |
b/snf-cyclades-app/synnefo/quotas/management/commands/reconcile-resources-cyclades.py | ||
---|---|---|
65 | 65 |
) |
66 | 66 |
|
67 | 67 |
def handle(self, *args, **options): |
68 |
write = self.stdout.write
|
|
68 |
write = self.stderr.write
|
|
69 | 69 |
userid = options['userid'] |
70 | 70 |
|
71 | 71 |
# Get holdings from Cyclades DB |
... | ... | |
117 | 117 |
|
118 | 118 |
headers = ("User", "Resource", "Database", "Quotaholder") |
119 | 119 |
if unsynced: |
120 |
pprint_table(self.stderr, unsynced, headers)
|
|
120 |
pprint_table(self.stdout, unsynced, headers)
|
|
121 | 121 |
if options["fix"]: |
122 | 122 |
qh = quotas.Quotaholder.get() |
123 | 123 |
request = {} |
Also available in: Unified diff