~gandelman-a/ubuntu/precise/nova/891227

« back to all changes in this revision

Viewing changes to bin/nova-manage

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-09-20 15:44:39 UTC
  • mfrom: (1.1.31 upstream)
  • Revision ID: package-import@ubuntu.com-20110920154439-fb1rlzl2lb4hew92
Tags: 2011.3~rc~20110920.r1192-0ubuntu2
* debian/nova_sudoers:
  + Fix typo in nova_sudoers. 
  + Tabs vs Spaces.
* debian/nova.conf:
  + Use force_dhcp_release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
import netaddr
62
62
from optparse import OptionParser
63
63
import os
 
64
import StringIO
64
65
import sys
65
66
import time
66
67
 
274
275
        arguments: path"""
275
276
        exec(compile(open(path).read(), path, 'exec'), locals(), globals())
276
277
 
 
278
    @args('--filename', dest='filename', metavar='<path>', default=False,
 
279
          help='Export file path')
 
280
    def export(self, filename):
 
281
        """Export Nova users into a file that can be consumed by Keystone"""
 
282
 
 
283
        def create_file(filename):
 
284
            data = generate_data()
 
285
            with open(filename, 'w') as f:
 
286
                f.write(data.getvalue())
 
287
 
 
288
        def tenants(data, am):
 
289
            for project in am.get_projects():
 
290
                print >> data, ("tenant add '%s'" %
 
291
                               (project.name))
 
292
                for u in project.member_ids:
 
293
                    user = am.get_user(u)
 
294
                    print >> data, ("user add '%s' '%s' '%s'" %
 
295
                                   (user.name, user.access, project.name))
 
296
                    print >> data, ("credentials add 'EC2' '%s:%s' '%s' '%s'" %
 
297
                            (user.access, project.id, user.secret, project.id))
 
298
 
 
299
        def roles(data, am):
 
300
            for role in am.get_roles():
 
301
                print >> data, ("role add '%s'" % (role))
 
302
 
 
303
        def grant_roles(data, am):
 
304
            roles = am.get_roles()
 
305
            for project in am.get_projects():
 
306
                for u in project.member_ids:
 
307
                    user = am.get_user(u)
 
308
                    for role in db.user_get_roles_for_project(ctxt, u,
 
309
                                                              project.id):
 
310
                        print >> data, ("role grant '%s', '%s', '%s')," %
 
311
                                       (user.name, role, project.name))
 
312
            print >> data
 
313
 
 
314
        def generate_data():
 
315
            data = StringIO.StringIO()
 
316
            am = manager.AuthManager()
 
317
            tenants(data, am)
 
318
            roles(data, am)
 
319
            grant_roles(data, am)
 
320
            data.seek(0)
 
321
            return data
 
322
 
 
323
        ctxt = context.get_admin_context()
 
324
        if filename:
 
325
            create_file(filename)
 
326
        else:
 
327
            data = generate_data()
 
328
            print data.getvalue()
 
329
 
277
330
 
278
331
class RoleCommands(object):
279
332
    """Class for managing roles."""
685
738
            help='Multi host')
686
739
    @args('--dns1', dest="dns1", metavar="<DNS Address>", help='First DNS')
687
740
    @args('--dns2', dest="dns2", metavar="<DNS Address>", help='Second DNS')
688
 
    @args('--uuid', dest="net_uuid", metavar="<network uuid>",
 
741
    @args('--uuid', dest="uuid", metavar="<network uuid>",
689
742
      help='Network UUID')
690
743
    @args('--project_id', dest="project_id", metavar="<project id>",
691
744
      help='Project id')
710
763
            bridge_required = ['nova.network.manager.FlatManager',
711
764
                               'nova.network.manager.FlatDHCPManager']
712
765
            if FLAGS.network_manager in bridge_required:
713
 
                # TODO(tr3buchet) - swap print statement and following line for
714
 
                #                   raise statement in diablo 4
715
 
                print _('--bridge parameter required or FLAG '
716
 
                        'flat_network_bridge must be set to create networks\n'
717
 
                        'WARNING! ACHTUNG! Setting the bridge to br100 '
718
 
                        'automatically is deprecated and will be removed in '
719
 
                        'Diablo milestone 4. Prepare yourself accordingly.')
720
 
                time.sleep(10)
721
 
                bridge = 'br100'
722
 
                #raise exception.NetworkNotCreated(req='--bridge')
 
766
                raise exception.NetworkNotCreated(req='--bridge')
723
767
 
724
768
        bridge_interface = bridge_interface or FLAGS.flat_interface or \
725
769
                           FLAGS.vlan_interface