Отказ в соединении - Python 2.7 - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь запустить код python на компьютере linux, на котором расположен сервер weblogic , состояние здоровья которого необходимо знать.Я передаю имя пользователя и пароль согласно приведенному ниже коду.Ниже приведена часть кода Python:

import urllib2
import httplib
import getpass
import json
import os
import sys
import time
import math

def getServerJson(url, username, password):
    req = urllib2.Request(url)
    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
    passman.add_password(None, url, username, password)
    authhandler = urllib2.HTTPBasicAuthHandler(passman)
    opener = urllib2.build_opener(authhandler)
    try:        
        response = opener.open(url)
        json_string = response.read()
        if response.getcode() != 200:
            print("")
            print("Error connecting to WLS Server!")
            print("HTTP Error code = " + str(response.getcode()))
            print("URL  = "+url)
            sys.exit(1)
    except urllib2.URLError as e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    except urllib2.HTTPError, e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    except httplib.HTTPException, e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    return json.loads(json_string)

Но я получаю ниже ошибку при вводе:

Пожалуйста, введите данные сервера WLS

Пожалуйста, введитесервер и порт: IP: PORT

Пожалуйста, введите имя пользователя weblogic: weblogic

Пожалуйста, введите пароль пользователя weblogic:

[Errno 111] Соединение отклонено

Пожалуйста, найдите ниже URL-адрес вызывающей части кода:

def getServerJson(url, username, password):
    req = urllib2.Request(url)
    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
    passman.add_password(None, url, username, password)
    authhandler = urllib2.HTTPBasicAuthHandler(passman)
    opener = urllib2.build_opener(authhandler)
    try:        
        response = opener.open(url)
        json_string = response.read()
        if response.getcode() != 200:
            print("")
            print("Error connecting to WLS Server!")
            print("HTTP Error code = " + str(response.getcode()))
            print("URL  = "+url)
            sys.exit(1)
    except urllib2.URLError as e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    except urllib2.HTTPError, e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    except httplib.HTTPException, e:
        print(e.reason) 
        writeHTMLOutputExcep(str(e.reason))
        sys.exit(1)
    return json.loads(json_string)

#Get a list of all of the Admin and Managed Servers in the domain
def getServers(wlsDomain,wlsServerUrl,username,password ):
    url = 'http://'+wlsServerUrl+'/management/wls/latest/servers'
    serverJson = getServerJson(url, username, password)
    for server in serverJson["links"]:
        if (server['rel'] != "parent"):
            wlsDomain.addServer(WLSServer(server["title"], server["uri"]))


# Get the url of the list of logs, along with some other basic
# server information
def getLogListUrl(server, username, password):
    serverJson = getServerJson(server.serverUrl, username, password)
    server.setState(serverJson["item"]["state"])
    if server.state == "running":
        server.setHealth(serverJson["item"]["health"]["state"])

    for link in serverJson["links"]:
        if link["rel"] == "logs":
            logListULR = link["uri"]
    return logListULR


#For the given server, get the url for each server log
def getServerLogUrl(server,username,password, logListUrl):
    logListJson = getServerJson(logListUrl, username, password)
    for link in logListJson["links"]:
        if link["rel"] == "items.name":
            if not link["title"].startswith("JMSMessageLog") and \
               not link["title"].startswith("HTTPAccessLog"):
               server.addLog(WLLog(link["title"],link["uri"]))


#Go and find all server logs and read them, and take note of
#the error messages
def searchServerLogs(wlsDomain, username, password):
    for server in wlsDomain.serverList:
        #get the url to the list of logs for the given server
        logListUrl = getLogListUrl(server, username, password)

        #we can't get the log of a server that is not running
        if server.state != "running":
            continue

        #get the url for each server log of the given server
        getServerLogUrl(server,username,password, logListUrl)

        for log in server.logList:
            #we are not interested in the HTTPAccessLog
            if log.name != "HTTPAccessLog":
               if server.state != "running":
                   continue

               startTime = time.time()
               print("Reading " + server.name + " : " + log.name)

               serverLogJson = getServerJson(log.logUrl, username, password)
               for logEntry in serverLogJson["items"]:
                  if logEntry["severity"] == "Error":
                      log.addLogEntry(LogEnty(logEntry["severity"],logEntry["timeStamp"],logEntry["message"]))
                      server.incrementError()
               endTime = time.time()
               log.setDuration(formatTimeOutput(math.floor(endTime-startTime)))



def run():
    print("")
    print("")
    print("Please enter the WLS Server Details")
    print("-------------------------------------------")
    print("")
    wlsServerUrl = raw_input('Please enter the server and port e.g localhost:7001  ')
    username     = raw_input("Please enter the weblogic user name: ")
    password     = getpass.getpass("Please enter the weblogic user password: ")
    print("")

    wlsDomain = WLSDomain()

    getServers(wlsDomain,wlsServerUrl,username,password)
    searchServerLogs(wlsDomain,username,password)
    outputStatisticsConsole(wlsDomain)
    writeHTMLOutput(wlsDomain)
...