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