Как удалить приложение, которое уже остановлено

Проблема в том, что если приложение "остановлено", это ничего не вернет. Но я все равно хочу его удалить. Я не знаю имя приложения, я устанавливаю все приложения на сервер, а затем удаляю их все.

apps = AdminControl.queryNames('type=Application,node=' + nodeName + ',process=' + serverName + ',*').split()

Вот мой код.

serverObj = AdminControl.completeObjectName('type=Server,node=%s,name=%s,*' % (nodeName, serverName))
serverID = AdminConfig.getid('/Node:%s/Server:%s/' % (nodeName, serverName))

if serverID == "": 
    print "Can't find the server, exiting..."
    sys.exit(1)
else:
    cellName = AdminControl.getAttribute(serverObj, 'cellName')

#Uninstall Apps
apps = AdminControl.queryNames('type=Application,node=' + nodeName + ',process=' + serverName + ',*').split()
appManager=AdminControl.queryNames('type=ApplicationManager,node=' + nodeName + ',process=,*')
if len(apps) > 0:
    for app in apps:
        appName = AdminControl.getAttribute(app, 'name')
        AdminControl.invoke(appManager,'stopApplication', appName)
        print "Uninstalling application: " + appName
        AdminApp.uninstall(appName)
else:
    print "No applications to uninstall"

person leSourCil    schedule 07.03.2019    source источник
comment
Когда вы сказали, что это ничего не вернет. Что это. Фрагмент кода, где вы получаете список приложений? Вызов mbean для его удаления?   -  person F Rowe    schedule 08.03.2019
comment
я имею в виду, если я запускаю AdminControl.queryNames('type=Application,node=' + nodeName + ',process=' + serverName + ',*').split(), приложения будут =   -  person leSourCil    schedule 11.03.2019


Ответы (2)


Вы можете использовать приведенный ниже фрагмент кода для удаления всех приложений, развернутых на целевом сервере:

#Get the list of all Apps deployed in target server
installedApps=AdminApp.list("WebSphere:cell=%s,node=%s,server=%s" % (cellName, nodeName, serverName))

#Check if there are any installed Apps on the server
if len (installedApps) > 0:
    #if there are installed Apps, iterate through the list and uninstall Apps one by one
    for app in installedApps.splitlines():
        print "uninstalling "+ app +" ...."
        AdminApp.uninstall(app)
    #Save the changes
    AdminConfig.save()
else:
    #if there are no installed Apps, do nothing
    print "No applications to uninstall"

person M I P    schedule 08.03.2019

Вы можете использовать AdminApp.list() для получения списка приложений для целевой области. Итак, для области сервера:

AdminApp.list("WebSphere:cell=yourCellName,node=yourNodeName,servers=yourServerName”)

С помощью этой информации вы можете использовать AdminApp.uninstall() для удаления приложения, например:

AdminApp.uninstall('NameOfApp')
person Dan Belina    schedule 08.03.2019