def action_grant(): ksclient = Keystone(options.config, debug=options.debug, log=logger) project = ksclient.get_project(project=options.project, domain=options.domain) if not project: himutils.sys_error('Unknown project %s in domain %s' % (options.project, options.domain)) if options.name: tags.append(options.name) filters = {'status': 'active', 'tag': tags, 'visibility': 'private'} logger.debug('=> filter: %s' % filters) images = glclient.get_images(filters=filters) for image in images: log_msg = 'grant access to %s from %s' % (image.name, project.name) if not options.dry_run: glclient.set_access(image.id, project.id) else: log_msg = 'DRY-RUN: %s' % log_msg logger.debug('=> %s' % log_msg)
def action_grant(): print "WARNING: this will break with the upgrade to ocata" print "https://trello.com/c/vjRI4EKC/" ksclient = Keystone(options.config, debug=options.debug, log=logger) project = ksclient.get_project(project=options.project, domain=options.domain) if not project: himutils.sys_error('Unknown project %s in domain %s' % (options.project, options.domain)) if options.name: tags.append(options.name) filters = {'status': 'active', 'tag': tags, 'visibility': 'private'} logger.debug('=> filter: %s' % filters) images = glclient.get_images(filters=filters) for image in images: log_msg = 'grant access to %s from %s' % (image.name, project.name) if not options.dry_run: glclient.set_access(image.id, project.id) else: log_msg = 'DRY-RUN: %s' % log_msg logger.debug('=> %s' % log_msg)
public = flavors['public'] if 'public' in flavors else False for name, spec in sorted(flavors[options.name].iteritems()): novaclient.update_flavor(name, spec, public, options.dry_run) elif options.action[0] == 'purge': flavors = himutils.load_config('config/flavors/%s.yaml' % options.name, logger) if not flavors: print 'ERROR! No flavors found in config/flavors/%s.yaml' % options.name sys.exit(1) print 'Purge %s flavors' % options.name novaclient.purge_flavors(options.name, flavors, options.dry_run) elif options.action[0] == 'grant' or options.action[0] == 'revoke': flavors = himutils.load_config('config/flavors/%s.yaml' % options.name, logger) if 'public' in flavors and flavors['public']: print 'Grant or revoke will not work on public flavors!' sys.exit(0) if not options.project: print 'Missing project to grant access' sys.exit(0) project = ksclient.get_project(options.project, domain=domain) if not project: print 'Could not find project %s' % options.project sys.exit(0) print "%s access to %s for %s" % (options.action[0], options.name, options.project) novaclient.update_flavor_access(filters=options.name, project_id=project.id, action=options.action[0], dry_run=options.dry_run)