def _discover_local_databases(self, context, instance_name, application_port, db2_home_path,
                                  discoverer, executor, interpreter):
        db2_instance_osh = context.application.applicationOsh
        get_local_databases = safeFn(discoverer.get_local_databases)
        local_dbs = get_local_databases(executor,
                                              interpreter,
                                              instance_name,
                                              db2_home_path=db2_home_path)

        if local_dbs:
            reporter = db2_topology.Reporter()

            address = context.application.getApplicationIp()
            if not application_port:
                resolve_servicename = safeFn(discoverer.resolve_servicename)
                get_svcename = safeFn(discoverer.get_svcename_by_instancename)
                svce_name = get_svcename(executor, interpreter, instance_name, db2_home_path=db2_home_path)
                if svce_name:
                    net_service = resolve_servicename(executor, svce_name)
                    if net_service:
                        application_port = net_service.port

            inst = DatabaseServer(address, application_port)
            local_dbs = [db2_topology.build_database_pdo(inst, db)
                               for db in local_dbs]
            oshs = reporter.updateInstanceDatabases(db2_instance_osh, local_dbs, context.hostOsh)
            context.resultsVector.addAll(oshs)
        else:
            logger.debug('No local databases found for %s' % instance_name)
def _report(node_osh, ip, svcename, instance_name=None,
            version=None, dbname=None):
    oshs = []

    db2_builder = db2_topology.Builder()
    db2_reporter = db2_topology.Reporter(db2_builder)

    port = resolve_svcename_to_port_nr(svcename)
    db2 = db.DatabaseServer(address=ip, port=port, instance=instance_name,
                               version=version)
    if dbname:
        database = db2_model.Database(dbname)
        database_pdo = db2_topology.build_database_pdo(db2, database)
        db2.addDatabases(database_pdo)

    _, _, db_oshs, oshs_ = db2_reporter.reportServerAndDatabases(db2, node_osh)
    oshs.extend(oshs_)
    return oshs, db_oshs
Beispiel #3
0
def _report(node_osh,
            ip,
            svcename,
            instance_name=None,
            version=None,
            dbname=None):
    oshs = []

    db2_builder = db2_topology.Builder()
    db2_reporter = db2_topology.Reporter(db2_builder)

    port = resolve_svcename_to_port_nr(svcename)
    db2 = db.DatabaseServer(address=ip,
                            port=port,
                            instance=instance_name,
                            version=version)
    if dbname:
        database = db2_model.Database(dbname)
        database_pdo = db2_topology.build_database_pdo(db2, database)
        db2.addDatabases(database_pdo)

    _, _, db_oshs, oshs_ = db2_reporter.reportServerAndDatabases(db2, node_osh)
    oshs.extend(oshs_)
    return oshs, db_oshs