Skip to content

shinesolutions/pythonaem

Repository files navigation

Build Status Published Version Vulnerability Scanning Status

PythonAEM

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.

Installation

pip3 install pythonaem

Usage

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()

Result

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)

Error Handling

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')

Testing

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.