예제 #1
0
파일: image.py 프로젝트: tanzr/himlarcli
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)
예제 #2
0
파일: image.py 프로젝트: norcams/himlarcli
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)
예제 #3
0
    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)