Измените MailSession в WebSphere для подключений HCL с обнаружением изменений, если что-то нужно изменить или было изменено
Я хочу изменить значение по умолчанию
lcnotification
почтовый сеанс HCL Connections 6.5 / 7 в WAS. Поскольку это автоматизировано с помощью Ansible, я хотел бы определить, остались ли желаемые настройки или их нужно установить, включая полную синхронизацию узлов в случае, если что-то было изменено. Я изо всех сил пытаюсь определить это правильно, поскольку ни
AdminConfig.modify
ни
AdminConfig.save
подскажите, было ли что-то изменено или нет.
Итак, я попытался получить
MailSession
объект и проверьте, соответствует ли каждое из моих свойств, которое я хотел бы установить:
properties = [
["mailTransportHost", "{{ mail_host }}"],
["mailTransportUser", "{{ mail_user }}"],
["mailTransportPassword", "{{ mail_pw }}"],
["mailFrom", "{{ mail_sender }}"],
["debug", "{{ mail_debug | lower }}"]
]
session = AdminConfig.list('MailSession', 'lcnotification*')
existing = AdminConfig.showall(session)
isModified = 0
for line in existing.splitlines():
noBrackets = line[1:-1]
firstSpace = noBrackets.index(" ")
key = noBrackets[0:firstSpace]
val = noBrackets[firstSpace:].strip()
# print key + " -> " + val
for prop in properties:
propKey = prop[0]
propVal = prop[1]
if propKey == key and val != propVal:
print(propKey + " not maching:\n\tPresent: " + val + "\n\tWanted: " +
propVal)
isModified = 1
if isModified:
AdminConfig.modify(session, properties)
AdminConfig.save()
import shared
shared.synchAllNodes()
В вызове Ansible я использую
changed_when
чтобы проверить, если
not maching
присутствует в stdout. Это не работает должным образом, потому что WAS возвращает звезды вместо
mailTransportPassword
- поэтому я не могу проверить, совпадает ли он:
stdout: |-
WASX7209I: Connected to process "dmgr" on node CnxCell-dmgr using SOAP connector; The type of process is: DeploymentManager
mailTransportPassword not maching:
Present: *****
Wanted: dummypw
Syncronizing nodeCnxNode01
-----------------------------------------------------------------------------------------
Full Resyncronization completed
Я не вижу чистого способа исправить это. Есть ли другой (возможно, даже более чистый) способ проверить, не было ли что-то изменено, и нужно ли выполнить полную повторную синхронизацию?
1 ответ
Я посмотрел на состояние синхронизации узла, и кажется, что WAS правильно определяет, есть ли изменения, которые необходимо синхронизировать. Итак, я пишу свои свойства и проверяю узел синхронизации. Если он не синхронизирован, что-то было изменено -> Нам нужно выполнить полную синхронизацию. Если
AdminConfig.modify(session, properties)
AdminConfig.save()
node = AdminControl.completeObjectName('type=NodeSync,*')
isSynced = AdminControl.invoke(node, 'isNodeSynchronized')
print node + "\n\tIs synced: " + isSynced
# Nasty, but the old included Python of WAS still can't handle boolean values
if isSynced == "false":
# For the change detection
print "Modified, starting full sync"
import shared
shared.synchAllNodes()