Пример #1
0
def pack_war(
    service,
    result_war_filename,
    targer_conf_dir,
    result_dir=dadEdit3_config.result_wars_directory,
):
    source_web_template_dir = '%sords_templates/%s/%s/%s' % (
        dadEdit3_config.templates_directory, service['type'].lower(),
        service['ords_version'], 'WEB-INF')
    source_war_filename = 'ords-%s.war' % service['ords_version']
    result_war_file_fullpath = result_dir + result_war_filename
    source_war_file_fullpath = dadEdit3_config.source_war_files_directory + source_war_filename
    result_web_template_dir = result_dir + 'WEB-INF'

    if not os.path.exists(source_web_template_dir) or not os.path.isdir(
            source_web_template_dir):
        if not os.path.exists(result_dir +
                              'WEB-INF') or not os.path.isdir(result_dir +
                                                              'WEB-INF'):
            logger.error('Template directory ' + source_web_template_dir +
                         ' does not exist and it hasn\'t been moved already.')
            exit(1)
    if not os.path.exists(source_war_file_fullpath) or not os.path.isfile(
            source_war_file_fullpath):
        logger.error('ORDS war file ' + source_war_file_fullpath +
                     ' does not exist. ')
        exit(1)
    shutil.copy2(source_war_file_fullpath, result_war_file_fullpath)
    if not os.path.exists(result_web_template_dir) or not os.path.isdir(
            result_web_template_dir):
        shutil.move(
            source_web_template_dir,
            result_dir)  ## Due to copytree's poor absolute path management
    replace_configdir(targer_conf_dir, result_web_template_dir)
    update_war(result_dir, result_war_file_fullpath)
Пример #2
0
def update_war(
    result_folder, war_name
):  #FIXME: replace with python's  zipfile, excluding war files from the archive
    os.chdir(result_folder)
    zipResult = subprocess.call(['zip', '-r', war_name, '.'])
    if zipResult == 0:
        logger.info('War updated. Status: %s.' % zipResult)
    else:
        logger.error('zip not updated. Status: %s.' % zipResult)
        exit(1)
Пример #3
0
def check_parameters(service, args, con):
    for error in [
            check_service(service, args),
            check_artifacts_directory(service),
            check_templates(service)
    ]:
        if error is not None:
            logger.error('There was an error checking the setup: %s' % error)
            disconnect_from_database(con)
            exit(1)
Пример #4
0
def get_dads(connection, service_name, active=True):
    logger.info('Retrieving all DADs of the service %s with state active==%s' %
                (service_name, active))
    service = get_service(connection, service_name)
    if not service:
        logger.error("A service called %s could not be retrieved." %
                     service_name)
        return []
    cur = connection.cursor()
    cur.prepare(
        'select * from Dad where service_id = :s_id and active = :active order by id'
    )
    cur.execute(None, {
        's_id': service['id'],
        'active': 'Y' if active else 'N'
    })
    res = cur.fetchall()
    dads = []
    for r in res:
        dads.append(
            dict(zip(tuple(cd[0].lower() for cd in cur.description), r)))
    cur.close()
    logger.info('DADs retrieved')
    return dads
Пример #5
0
                        action='store_true',
                        default=False)
    # When arguments syntax is incorrect OR when user write -h, an exception is thrown.
    try:
        return parser.parse_args()
    except argparse.ArgumentError:
        parser.exit(status=2)


def main():
    args = get_parsed_arguments()
    if args.debug:
        logger.setLevel(logging.DEBUG)
    con = dadEdit3_utils.connect_to_database()
    services = get_services(con, args)
    if args.table:
        print_table(services, args.detailed)
    else:
        print_JSON(services)
    dadEdit3_utils.disconnect_from_database(con)


if __name__ == "__main__":
    try:
        main()
    except SystemExit as e:
        exit(e.code)
    except:
        logger.error(traceback.format_exc())
        exit(1)
Пример #6
0
    os.makedirs(container_conf_dir, exist_ok=True)

    create_conf_dir(container_conf_dir)
    check_parameters(service, args, con)

    write_schemas_templates(active_schemas, service, relations, env)
    os.chdir('..')
    write_url_mapping_template(service, active_dads, env)
    write_defaults_template(service, relations, env)
    result_war_filename = 'ords-%s' % service['name']

    os.makedirs(target_conf_dir, exist_ok=True)
    os.symlink(container_conf_dir,
               target_conf_dir + '/' + result_war_filename,
               target_is_directory=True)
    pack_war(service, result_war_filename + '.war', target_conf_dir,
             container_conf_dir)

    disconnect_from_database(con)


if __name__ == "__main__":
    try:
        main()
    except SystemExit as e:
        exit(e.code)
    except:
        logger.error("Other error: ")
        logger.error(traceback.format_exc())
        exit(1)