from himlarcli.keystone import Keystone from himlarcli.cinder import Cinder from himlarcli.nova import Nova from himlarcli.neutron import Neutron from himlarcli.parser import Parser from himlarcli.printer import Printer from himlarcli import utils as himutils himutils.is_virtual_env() parser = Parser() options = parser.parse_args() printer = Printer(options.format) ksclient = Keystone(options.config, debug=options.debug) logger = ksclient.get_logger() regions = ksclient.find_regions(region_name=options.region) if not regions: himutils.sys_error('no regions found!') def action_show(): for region in regions: novaclient = Nova(options.config, debug=options.debug, log=logger, region=region) cinderclient = Cinder(options.config, debug=options.debug, log=logger,
from datetime import datetime from himlarcli.keystone import Keystone from himlarcli.nova import Nova from himlarcli.neutron import Neutron from himlarcli.parser import Parser from himlarcli import utils as himutils parser = Parser() parser.toggle_show('dry-run') parser.toggle_show('format') options = parser.parse_args() kc= Keystone(options.config, debug=options.debug) kc.set_domain(options.domain) logger = kc.get_logger() # Region if hasattr(options, 'region'): regions = kc.find_regions(region_name=options.region) else: regions = kc.find_regions() logger.debug('=> regions used: %s', ','.join(regions)) Base = declarative_base() class Owner(Base): __tablename__ = 'owners' ip = Column(String(16), primary_key=True) organization = Column(String(16), nullable=False)
from himlarcli.gnocchi import Gnocchi from himlarcli.cinder import Cinder from himlarcli.parser import Parser from himlarcli.printer import Printer from himlarcli import utils as himutils from datetime import date, timedelta from collections import OrderedDict parser = Parser() options = parser.parse_args() printer = Printer(options.format) kc= Keystone(options.config, debug=options.debug) kc.set_domain(options.domain) kc.set_dry_run(options.dry_run) logger = kc.get_logger() # Billing will always use all regions regions = kc.find_regions() def action_whales(): start = himutils.get_date(options.start, date.today() - timedelta(days=1)) stop = himutils.get_date(options.end, date.today() + timedelta(days=1)) if start > stop: himutils.sys_error('start %s must be fore stop %s' % (start, stop)) logger.debug('=> start date = %s', start) logger.debug('=> stop date = %s', stop) for region in regions: nc = Nova(options.config, debug=options.debug, log=logger, region=region) cc = Cinder(options.config, debug=options.debug, log=logger, region=region)
# OPS! It might need some updates. We use class Mail instead of Notify now. himutils.is_virtual_env() # Default value for date: today + 5 days at 14:00 today = datetime.today() date = datetime(today.year, today.month, today.day, 15, 0) + timedelta(days=5) # Load parser config from config/parser/* parser = Parser() parser.update_default('-m', date.strftime('%Y-%m-%d around %H:00')) options = parser.parse_args() printer = Printer(options.format) ksclient = Keystone(options.config, debug=options.debug) logger = ksclient.get_logger() novaclient = Nova(options.config, debug=options.debug, log=logger) domain = 'Dataporten' zone = '%s-default-1' % ksclient.region msg_file = 'notify/notify_reboot.txt' # aggregate in <loc>-legacy-1 AZ legacy_aggregate = ['group1', 'group2', 'group3'] if 'host' in options and options.host: if '.' in options.host: host = options.host else: domain = ksclient.get_config('openstack', 'domain') host = options.host + '.' + domain else:
#!/usr/bin/env python import utils from himlarcli.keystone import Keystone from himlarcli.foremanclient import ForemanClient from himlarcli import utils as himutils # Fix foreman functions and logger not-callable # pylint: disable=E1101,E1102 desc = 'Setup Foreman for himlar' options = utils.get_options(desc, hosts=False) keystone = Keystone(options.config, debug=options.debug) logger = keystone.get_logger() domain = keystone.get_config('openstack', 'domain') foreman = ForemanClient(options.config, options.debug, log=logger) client = foreman.get_client() # create foreman domain based on config # get domain id # get smart proxy id for tftp # create subnet # mgmt network + netmask from config # domain_ids = domain_id # tftp_ids = proxy_id # dns-primary, dns-secondary, gateway is blank # get subnet id # Glabal parameters
#!/usr/bin/env python import utils import sys #from himlarcli.nova import Nova from himlarcli.keystone import Keystone #import himlarcli.foremanclient as foreman from himlarcli.foremanclient import Client from himlarcli import utils as himutils desc = 'Setup compute resources and profiles' options = utils.get_options(desc, hosts=False, dry_run=True) keystone = Keystone(options.config, debug=options.debug) logger = keystone.get_logger() domain = keystone.get_config('openstack', 'domain') client = Client(options.config, options.debug, log=logger) foreman = client.get_client() # Add compute resources resource_config = himutils.load_config('config/compute_resources.yaml') if keystone.region not in resource_config: num_resources = resource_config['default']['num_resources'] else: num_resources = resource_config[keystone.region]['num_resources'] logger.debug("=> number of compute resources for %s: %s" % (keystone.region, num_resources)) resources = foreman.index_computeresources() found_resources = dict({}) for r in resources['results']: found_resources[r['name']] = r['id']
}, '-f': { 'dest': 'file', 'help': 'file with students', 'metavar': 'file' } } options = utils.get_action_options(desc, actions, dry_run=True, opt_args=opt_args) ksclient = Keystone(options.config, debug=options.debug) novaclient = Nova(options.config, debug=options.debug, log=ksclient.get_logger()) quota = himutils.load_config('config/quota.yaml', log=ksclient.get_logger()) project_types = himutils.load_config('config/type.yaml', log=ksclient.get_logger()) domain = 'Dataporten' if options.action[0] == 'create': if options.user and options.file: if not ksclient.is_valid_user(user=options.user, domain=domain): print "ERROR! %s is not a valid user." % options.user sys.exit(1) students = himutils.load_file(options.file, log=ksclient.get_logger()) pp = pprint.PrettyPrinter(indent=1) # Create owner project project_name = '%s-%s' % (options.name, options.user.lower()) if not options.dry_run:
import sys import pprint import utils import statsd from himlarcli import utils as himutils from himlarcli.nova import Nova from himlarcli.keystone import Keystone options = utils.get_options('Print openstack location stats', hosts=False) # Project keystoneclient = Keystone(options.config, options.debug) projects_count = keystoneclient.get_project_count('dataporten') users_count = keystoneclient.get_user_count('dataporten') logger = keystoneclient.get_logger() stats = dict() stats['projects'] = {} stats['instances'] = {} stats['instances']['total'] = {'count': 0, 'error': 0} stats['users'] = {} stats['projects'][keystoneclient.region] = {} stats['projects'][keystoneclient.region]['count'] = projects_count stats['users'][keystoneclient.region] = {} stats['users'][keystoneclient.region]['count'] = users_count server = keystoneclient.get_config('statsd', 'server') port = keystoneclient.get_config('statsd', 'port') # Regions