Пример #1
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    databags = []
    databags_dir = flags.OPTIONS.databags_dir
    for item in os.listdir(databags_dir):
        databags.append(item)

    for databag in databags:
        logging.info('add databag %s', databag)
        cmd = "knife data bag create %s" % databag
        os.system(cmd)
        databag_items = []
        databagitem_dir = os.path.join(databags_dir, databag)
        for item in os.listdir(databagitem_dir):
            if item.endswith('.json'):
                databag_items.append(os.path.join(databagitem_dir, item))
            else:
                logging.info('ignore %s in %s', item, databagitem_dir)

        for databag_item in databag_items:
            logging.info('add databag item %s to databag %s',
                         databag_item, databag)
            cmd = 'knife data bag from file %s %s' % (databag, databag_item)
            status = os.system(cmd)
            logging.info('run cmd %s returns %s', cmd, status)
            if status:
                sys.exit(1)
Пример #2
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    databags = []
    databags_dir = flags.OPTIONS.databags_dir
    for item in os.listdir(databags_dir):
        databags.append(item)

    for databag in databags:
        logging.info('add databag %s', databag)
        cmd = "knife data bag create %s" % databag
        os.system(cmd)
        databag_items = []
        databagitem_dir = os.path.join(databags_dir, databag)
        for item in os.listdir(databagitem_dir):
            if item.endswith('.json'):
                databag_items.append(os.path.join(databagitem_dir, item))
            else:
                logging.info('ignore %s in %s', item, databagitem_dir)

        for databag_item in databag_items:
            logging.info('add databag item %s to databag %s', databag_item,
                         databag)
            cmd = 'knife data bag from file %s %s' % (databag, databag_item)
            status = os.system(cmd)
            logging.info('run cmd %s returns %s', cmd, status)
            if status:
                sys.exit(1)
Пример #3
0
def main():
    flags.init()
    logsetting.init()
    client = _get_client()
    _login(client)
    if flags.OPTIONS.poll_switches:
        machines = _poll_switches(client)
    else:
        machines = _get_machines(client)
    logging.info('machines are %s', machines)
    subnet_mapping = _add_subnets(client)
    adapter_id, os_id, distributed_system_id, flavor_id = _get_adapter(client)
    cluster_id, host_mapping, role_mapping = _add_cluster(
        client, adapter_id, os_id, flavor_id, machines)
    host_ips = _set_host_networking(
        client, host_mapping, subnet_mapping
    )
    _set_cluster_os_config(client, cluster_id, host_ips)
    if distributed_system_id:
        _set_cluster_package_config(client, cluster_id)
    if role_mapping:
        _set_hosts_roles(client, cluster_id, host_mapping, role_mapping)
    _deploy_clusters(client, cluster_id, host_mapping)
    _get_installing_progress(client, cluster_id, host_mapping)
    _check_dashboard_links(client, cluster_id)
Пример #4
0
def main(argv):
    flags.init()
    logsetting.init()
    clusterids = [
        int(clusterid) for clusterid in flags.OPTIONS.clusterids.split(',')
        if clusterid
    ]
    with database.session() as session:
        if not clusterids:
            clusters = session.query(Cluster).all()
            trigger_clusterids  = [cluster.id for cluster in clusters]
        else:
            trigger_clusterids = clusterids

        logging.info('trigger installer for clusters: %s',
                     trigger_clusterids)
        for clusterid in trigger_clusterids:
            hosts = session.query(
                ClusterHost).filter_by(
                cluster_id=clsuterid).all()
            hostids = [host.id for host in hosts]
            if flags.OPTIONS.async:
                celery.send_task('compass.tasks.trigger_install',
                                 (clusterid, hostids))
            else:
                trigger_install.trigger_install(clusterid, hostids)
Пример #5
0
def global_celery_init(**_):
    """Initialization code."""
    flags.init()
    flags.OPTIONS.logfile = setting.CELERY_LOGFILE
    logsetting.init()
    database.init()
    adapter_api.load_adapters()
    metadata_api.load_metadatas()
Пример #6
0
def main():
    """Compass cli entry point."""
    flags.init()
    logsetting.init()
    database.init()
    cli = BootCLI()
    output = cli.run(sys.argv)
    return sys.exit(output)
Пример #7
0
def main():
    """Compass cli entry point."""
    flags.init()
    logsetting.init()
    database.init()
    cli = BootCLI()
    output = cli.run(sys.argv)
    return sys.exit(output)
Пример #8
0
def global_celery_init(**_):
    """Initialization code."""
    flags.init()
    flags.OPTIONS.logfile = setting.CELERY_LOGFILE
    logsetting.init()
    database.init()
    adapter_api.load_adapters()
    metadata_api.load_metadatas()
    adapter_api.load_flavors()
    progress_calculator.load_calculator_configurations()
Пример #9
0
def global_celery_init(**_):
    """Initialization code."""
    flags.init()
    flags.OPTIONS.logfile = setting.CELERY_LOGFILE
    logsetting.init()
    database.init()
    adapter_api.load_adapters()
    metadata_api.load_metadatas()
    adapter_api.load_flavors()
    progress_calculator.load_calculator_configurations()
Пример #10
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    cookbooks_dir = flags.OPTIONS.cookbooks_dir
    logging.info('add cookbooks %s', cookbooks_dir)
    cmd = "knife cookbook upload --all --cookbook-path %s" % cookbooks_dir
    status = os.system(cmd)
    logging.info('run cmd %s returns %s', cmd, status)
    if status:
        sys.exit(1)
Пример #11
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    cookbooks_dir = flags.OPTIONS.cookbooks_dir
    logging.info('add cookbooks %s', cookbooks_dir)
    cmd = "knife cookbook upload --all --cookbook-path %s" % cookbooks_dir
    status = os.system(cmd)
    logging.info('run cmd %s returns %s', cmd, status)
    if status:
        sys.exit(1)
Пример #12
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    rolelist = []
    roles_dir = flags.OPTIONS.roles_dir

    for item in os.listdir(roles_dir):
        role_file = os.path.join(roles_dir, item)
        rolelist.append(role_file)

    for role in rolelist:
        logging.info('add role %s', role)
        cmd = "knife role from file %s" % role
        status = os.system(cmd)
        logging.info('run cmd %s returns %s', cmd, status)
        if status:
            sys.exit(1)
Пример #13
0
def main():
    flags.init()
    logsetting.init()
    client = _get_client()
    if flags.OPTIONS.poll_switches:
        machines = _poll_switches(client)
    else:
        machines = _get_machines(client)

    adapter_id = _get_adapter(client)
    cluster_hosts = _add_cluster(client, adapter_id, machines)
    _set_cluster_security(client, cluster_hosts)
    _set_cluster_networking(client, cluster_hosts)
    _set_cluster_partition(client, cluster_hosts)
    _set_host_config(client, cluster_hosts)
    _deploy_clusters(client, cluster_hosts)
    _get_installing_progress(client, cluster_hosts)
    _check_dashboard_links(client, cluster_hosts)
Пример #14
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    rolelist = []
    roles_dir = flags.OPTIONS.roles_dir

    for item in os.listdir(roles_dir):
        if item.endswith('.rb') or item.endswith('.json'):
            rolelist.append(os.path.join(roles_dir, item))
        else:
            logging.info('ignore %s in %s', item, roles_dir)

    for role in rolelist:
        logging.info('add role %s', role)
        cmd = "knife role from file %s" % role
        status = os.system(cmd)
        logging.info('run cmd %s returns %s', cmd, status)
        if status:
            sys.exit(1)
Пример #15
0
def main(argv):
    flags.init()
    logsetting.init()
    clusterids = [
        int(clusterid) for clusterid in flags.OPTIONS.clusterids.split(',')
        if clusterid
    ]
    with database.session() as session:
        if not clusterids:
            clusters = session.query(Cluster).all()
            trigger_clusterids = [cluster.id for cluster in clusters]
        else:
            trigger_clusterids = clusterids
        logging.info('trigger installer for clusters: %s', trigger_clusterids)
        for clusterid in trigger_clusterids:
            if flags.OPTIONS. async:
                celery.send_task('compass.tasks.trigger_install',
                                 (clusterid, ))
            else:
                trigger_install.trigger_install(clusterid)
Пример #16
0
def main():
    """main entry."""
    flags.init()
    logsetting.init()
    rolelist = []
    roles_dir = flags.OPTIONS.roles_dir

    for item in os.listdir(roles_dir):
        if item.endswith('.rb') or item.endswith('.json'):
            rolelist.append(os.path.join(roles_dir, item))
        else:
            logging.info('ignore %s in %s', item, roles_dir)

    for role in rolelist:
        logging.info('add role %s', role)
        cmd = "knife role from file %s" % role
        status = os.system(cmd)
        logging.info('run cmd %s returns %s', cmd, status)
        if status:
            sys.exit(1)
Пример #17
0
def main():
    flags.init()
    logsetting.init()
    client = _get_client()
    _login(client)
    if flags.OPTIONS.poll_switches:
        machines = _poll_switches(client)
    else:
        machines = _get_machines(client)
    logging.info('machines are %s', machines)
    subnet_mapping = _add_subnets(client)
    adapter_id, os_id, flavor_id = _get_adapter(client)
    cluster_id, host_mapping, role_mapping = _add_cluster(
        client, adapter_id, os_id, flavor_id, machines)
    host_ips = _set_host_networking(client, host_mapping, subnet_mapping)
    _set_cluster_os_config(client, cluster_id, host_ips)
    if flavor_id:
        _set_cluster_package_config(client, cluster_id)
    if role_mapping:
        _set_hosts_roles(client, cluster_id, host_mapping, role_mapping)
    _deploy_clusters(client, cluster_id, host_mapping)
    _get_installing_progress(client, cluster_id, host_mapping)
    _check_dashboard_links(client, cluster_id)
Пример #18
0
def tasks_setup_logging(**_):
    """Setup logging options from compass setting."""
    flags.init()
    flags.OPTIONS.logfile = setting.CELERY_LOGFILE
    logsetting.init()
Пример #19
0
       or switch,<switch_ip>,<switch_vendor>,<switch_version>,
       <switch_community>,<switch_state>
    """
    if not flags.OPTIONS.switch_machines_file:
        print 'flag --switch_machines_file is missing'
        return
    database.init()
    switches, switch_machines = util.get_switch_machines_from_file(
        flags.OPTIONS.switch_machines_file)
    user = user_api.get_user_object(setting.COMPASS_ADMIN_EMAIL)
    switch_mapping = {}
    for switch in switches:
        added_switch = switch_api.add_switch(False, user=user, **switch)
        switch_mapping[switch['ip']] = added_switch['id']
    for switch_ip, machines in switch_machines.items():
        if switch_ip not in switch_mapping:
            print 'switch ip %s not found' % switch_ip
            sys.exit(1)
        switch_id = switch_mapping[switch_ip]
        for machine in machines:
            switch_api.add_switch_machine(switch_id,
                                          False,
                                          user=user,
                                          **machine)


if __name__ == "__main__":
    flags.init()
    logsetting.init()
    app_manager.run()
Пример #20
0

class TestInstallerFunctions(unittest2.TestCase):
    def setUp(self):
        self.installers_backup = package_installer.INSTALLERS
        package_installer.INSTALLERS = {}

    def tearDown(self):
        package_installer.INSTALLERS = self.installers_backup

    def test_found_installer(self):
        package_installer.register(DummyInstaller)
        intaller = package_installer.get_installer_by_name(
            DummyInstaller.NAME)
        self.assertIsInstance(intaller, DummyInstaller)

    def test_notfound_unregistered_installer(self):
        self.assertRaises(KeyError, package_installer.get_installer_by_name,
                          DummyInstaller.NAME)

    def test_multi_registered_installer(self):
        package_installer.register(DummyInstaller)
        self.assertRaises(KeyError, package_installer.register,
                          Dummy2Installer)


if __name__ == '__main__':
    flags.init()
    logsetting.init()
    unittest2.main()
Пример #21
0
def tasks_setup_logging(**_kw):
    '''setup logging options'''
    flags.init()
    flags.OPTIONS.logfile = setting.CELERY_LOGFILE
    logsetting.init()