PythonAEM is a Python client for Adobe Experience Manager (AEM) API. It is written on top of swaggeraem and provides resource-oriented API and convenient response handling.
Learn more about PythonAEM:
pythonaem is part of AEM OpenCloud platform but it can be used as a stand-alone.
pip3 install pythonaem
Initialise client:
from pythonaem import PythonAem
conf = {
'username': 'admin',
'password': 'admin',
'protocol': 'http',
'host': 'localhost',
'port': 4502,
'debug': True,
'verify_ssl': True,
'ssl_ca_cert': None,
'cert_file': None,
'key_file': None
}
client = PythonAem(conf)
Aem:
aem = client.aem()
result = aem.get_aem_health_check({
'tags': 'shallow',
'combine_tags_or': 'false',
})
Flush agent:
flush_agent = client.flush_agent('author', 'some-flush-agent')
# create or update flush agent
result = flush_agent.create_update('Some Flush Agent Title', 'Some flush agent description', 'http://somehost:8080')
# check flush agent's existence
result = flush_agent.exists()
# Disable flush agent
result = flush_agent.disable()
# Enable flush agent
result = flush_agent.enable()
# delete flush agent
result = flush_agent.delete()
Replication agent:
replication_agent = client.replication_agent('author', 'some-replication-agent')
# create or update replication agent
result = replication_agent.create_update('Some Replication Agent Title', 'Some Replication agent description', 'http://somehost:8080')
# check replication agent's existence
result = replication_agent.exists()
# Disable replication agent
result = replication_agent.disable()
# Enable replication agent
result = replication_agent.enable()
# delete replication agent
result = replication_agent.delete()
Each of the above method calls returns a Result, which contains message, Response, and data payload. For example:
flush_agent = client.flush_agent('author', 'some-inexisting-flush-agent')
result = flush_agent.delete()
print(result.message)
print(result.response.status_code)
print(result.response.body)
print(result.response.headers)
print(result.data)
flush_agent = client.flush_agent('author', 'some-inexisting-flush-agent')
try:
result = flush_agent.delete()
except Exception as error:
self.assertEqual(error.message, 'Flush agent some-inexisting-flush-agent not found on author')
Integration tests require an AEM instance with Shine Solutions AEM Health Check package installed.
By default it uses AEM running on http://localhost:4502 with admin
username and admin
password. AEM instance parameters can be configured using environment variables aem_protocol
, aem_host
, aem_port
, aem_username
, and aem_password
.