示例#1
0
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,
示例#2
0
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)
示例#3
0
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)
示例#4
0
# 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:
示例#5
0
#!/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
示例#6
0
#!/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']
示例#7
0
文件: course.py 项目: tanzr/himlarcli
    },
    '-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:
示例#8
0
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