def main():
    module = AnsibleModule(
        argument_spec=dict(host=dict(required=True),
                           port=dict(required=True),
                           path_name=dict(required=True),
                           path_primary_type=dict(required=True),
                           path_mixin_types_csv=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    path_name = module.params['path_name']
    path_primary_type = module.params['path_primary_type']
    path_mixin_types_csv = module.params['path_mixin_types_csv']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    params = {
        'jcr:primaryType': path_primary_type,
        'jcr:mixinTypes': path_mixin_types_csv.split(',')
    }
    result = aem.create_path(path_name, **params)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#2
0
def main():
    module = AnsibleModule(
        argument_spec=dict(
            host=dict(required=True),
            port=dict(required=True),
            agent_name=dict(required=True),
            run_mode=dict(required=True)
        )
    )

    host = module.params['host']
    port = module.params['port']
    agent_name = module.params['agent_name']
    run_mode = module.params['run_mode']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.delete_agent(agent_name, run_mode)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#3
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              user_path=dict(required=True),
                                              user_name=dict(required=True),
                                              old_password=dict(required=True),
                                              new_password=dict(
                                                  required=True)))

    host = module.params['host']
    port = module.params['port']
    user_name = module.params['user_name']
    user_path = module.params['user_path']
    old_password = module.params['old_password']
    new_password = module.params['new_password']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.change_password(user_path, user_name, old_password,
                                 new_password)

    if result.is_failure():
        print(json.dumps({'failed': True, 'msg': result.message}))
    else:
        print(json.dumps({'msg': result.message}))
示例#4
0
def main():
    module = AnsibleModule(
        argument_spec=dict(host=dict(required=True),
                           port=dict(required=True),
                           group_path=dict(required=True),
                           group_name=dict(required=True),
                           group_desc=dict(required=True),
                           group_parent=dict(required=True, type='str')))

    host = module.params['host']
    port = module.params['port']
    group_path = module.params['group_path']
    group_name = module.params['group_name']
    group_desc = module.params['group_desc']
    group_parent = module.params['group_parent']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)

    params = {'profile/givenName': group_desc}

    if group_parent != '':
        params['membership'] = group_parent

    result = aem.create_group(group_path, group_name, **params)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#5
0
def main():
    module = AnsibleModule(
        argument_spec=dict(
            host=dict(required=True),
            port=dict(required=True),
            user_or_group_name=dict(required=True),
            path=dict(required=True),
            permissions=dict(required=True)
        )
    )

    host = module.params['host']
    port = module.params['port']
    user_or_group_name = module.params['user_or_group_name']
    path = module.params['path']
    permissions = module.params['permissions']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)

    result = aem.set_permission(user_or_group_name, path, permissions)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#6
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              user_path=dict(required=True),
                                              user_name=dict(required=True),
                                              password=dict(required=True),
                                              group_name=dict(required=False)))

    host = module.params['host']
    port = module.params['port']
    user_path = module.params['user_path']
    user_name = module.params['user_name']
    password = module.params['password']
    group_name = module.params['group_name']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)

    if group_name != None:
        result = aem.create_user(user_path,
                                 user_name,
                                 password,
                                 membership=group_name)
    else:
        result = aem.create_user(user_path, user_name, password)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#7
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              group_name=dict(required=True),
                                              package_name=dict(required=True),
                                              package_version=dict(
                                                  required=True)))

    host = module.params['host']
    port = module.params['port']
    group_name = module.params['group_name']
    package_name = module.params['package_name']
    package_version = module.params['package_version']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.replicate_package_sync(group_name, package_name,
                                        package_version)

    if result.is_failure():
        print(json.dumps({'failed': True, 'msg': result.message}))
    else:
        print(json.dumps({'msg': result.message}))
示例#8
0
    def test_init_ssl_debug(self):

        aem = pyaem.PyAem('someusername', 'somepassword', 'localhost', 4502, use_ssl=True, debug=True)
        self.assertTrue(hasattr(aem, 'content_repo'))
        self.assertTrue(hasattr(aem, 'package_manager'))
        self.assertTrue(hasattr(aem, 'package_manager_service_html'))
        self.assertTrue(hasattr(aem, 'package_manager_service_json'))
        self.assertTrue(hasattr(aem, 'package_manager_service_jsp'))
        self.assertTrue(hasattr(aem, 'web_console'))
def main ():
    module = AnsibleModule(
        argument_spec = dict(
            host = dict(required=True),
            port = dict(required=True),
            aem_username = dict(required=True),
            aem_password = dict(required=True),
            stack = dict(required=True),
            agent_id = dict(required=True),
            agent_name = dict(required=True),
            agent_type = dict(required=True),
            agent_loglevel = dict(required=True),
            agent_retrydelay = dict(required=True),
            dest_group = dict(required=True),
            dest_username = dict(required=True),
            dest_password = dict(required=True),
            dest_url = dict(required=True),
            run_mode = dict(required=True)
        )
    )

    host = module.params['host']
    port = module.params['port']
    stack = module.params['stack']
    agent_id = module.params['agent_id']
    agent_name = module.params['agent_name']
    agent_type = module.params['agent_type']
    agent_loglevel = module.params['agent_loglevel']
    agent_retrydelay = module.params['agent_retrydelay']
    dest_username = module.params['dest_username']
    dest_password = module.params['dest_password']
    dest_group = module.params['dest_group']
    dest_url = module.params['dest_url']
    run_mode = module.params['run_mode']

    agent_title = '{0} agent to {1} {2}'.format(agent_type, dest_group, agent_id)

    aem_username = module.params['aem_username']
    aem_password = module.params['aem_password']

    aem = pyaem.PyAem(aem_username, aem_password, host, port)

    params = {
        'jcr:content/jcr:title': agent_title,
        'jcr:content/jcr:description': agent_title,
        'jcr:content/logLevel': agent_loglevel,
        'jcr:content/retryDelay': agent_retrydelay
    }
    result = aem.create_agent(agent_name, agent_type, dest_username, dest_password, dest_url, run_mode, **params)

    if result.is_failure():
        print(json.dumps({ 'failed': True, 'msg': result.message }))
    else:
        print(json.dumps({ 'msg': result.message }))
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              username=dict(required=True),
                                              password=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    username = module.params['username']
    password = module.params['password']

    aem = pyaem.PyAem(username, password, host, port)
    result = aem.is_valid_login()

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#11
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              bundle_name=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    bundle_name = module.params['bundle_name']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.stop_bundle(bundle_name)

    if result.is_failure():
        print(json.dumps({'failed': True, 'msg': result.message}))
    else:
        print(json.dumps({'msg': result.message}))
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              path=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    path = module.params['path']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.activate_path(path,
                               ignoredeactivated='true',
                               onlymodified='false')

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#13
0
def main():
    module = AnsibleModule(argument_spec=dict(host=dict(required=True),
                                              port=dict(required=True),
                                              path_name=dict(required=True),
                                              path_base=dict(required=True),
                                              path_type=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    path_name = module.params['path_name']
    path_base = module.params['path_base']
    path_type = module.params['path_type']

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    params = {
        ':nameHint': path_name,
        'jcr:primaryType': path_type,
        'jcr:mixinTypes': 'rep:AccessControllable'
    }

    try:
        if not path_base.endswith("/*"):
            path_base = '{0}/*'.format(path_base)

        result = aem.create_path(path_base, **params)

        if result.is_failure():
            print(json.dumps({'failed': True, 'msg': result.message}))
        else:
            print(json.dumps({'msg': result.message}))
    except pyaem.PyAemException as e:
        print(
            json.dumps({
                'msg':
                'Allow error due to inability to differentiate existing path from real error when response code is 500'
                + e.response['body']
            }))
def main():
    module = AnsibleModule(
        argument_spec=dict(host=dict(required=True),
                           port=dict(required=True),
                           group_name=dict(required=True),
                           package_name=dict(required=True),
                           package_version=dict(required=False),
                           file_path=dict(required=True),
                           aem_username=dict(required=True),
                           aem_password=dict(required=True),
                           force=dict(required=False,
                                      type='str',
                                      choices=['true', 'false'],
                                      default='false')))

    host = module.params['host']
    port = module.params['port']
    group_name = module.params['group_name']
    package_name = module.params['package_name']
    package_version = module.params['package_version']
    file_path = module.params['file_path']

    aem_username = module.params['aem_username']
    aem_password = module.params['aem_password']

    force_upload = module.params['force']

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.upload_package_sync(group_name,
                                     package_name,
                                     package_version,
                                     file_path,
                                     force=force_upload)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})
示例#15
0
    def setUp(self):

        self.aem = pyaem.PyAem('someusername', 'somepassword', 'localhost',
                               4502)
def main():
    module = AnsibleModule(
        argument_spec=dict(
            host=dict(required=False, type='str', default='localhost'),
            port=dict(required=False, type='int', default=4502),
            group_name=dict(required=True),
            package_name=dict(required=True),
            package_version=dict(required=True),
            aem_username=dict(required=True),
            aem_password=dict(required=True),
            interval=dict(required=False, type='int', default=10),
            requires_restart=dict(required=False, type='bool', default=False)
        )
    )

    host = module.params['host']
    port = module.params['port']
    group_name = module.params['group_name']
    package_name = module.params['package_name']
    package_version = module.params['package_version']

    aem_username = module.params['aem_username']
    aem_password = module.params['aem_password']

    aem = pyaem.PyAem(aem_username, aem_password, host, port)
    result = aem.install_package_sync(group_name, package_name, package_version)

    requires_restart = module.params['requires_restart']
    interval = module.params['interval']

    if requires_restart and not result.is_failure():
        attempts = 0
        max_attempts = 10

        while attempts < max_attempts:
            attempts += 1

            # All AEM Ansible modules are currently using http://
            try:
                request = urllib2.Request("http://"+host+":"+str(port)+"/system/console/bundles.json")
                encodedBasicAuth = base64.b64encode('%s:%s' % (aem_username, aem_password))
                request.add_header("Authorization", "Basic %s" % encodedBasicAuth)

                response = urllib2.urlopen(request)

                if response.code == 401:
                    print(json.dumps({'failed': True, 'msg': response.message}))

                    return

                elif response.code == 200:
                    bundles = json.load(response)

                    bundle_status = bundles['s']

                    existing = bundle_status[0]
                    active = bundle_status[1]
                    fragment = bundle_status[2]

                    if existing == active + fragment:

                        print(json.dumps({'msg': 'Package installed and all bundles active. '}))

                        return
            except (urllib2.URLError, urllib2.HTTPError):
                pass

            time.sleep(interval)

    if result.is_failure():
        print(json.dumps({'failed': True, 'msg': result.message}))
    else:
        print(json.dumps({'msg': result.message}))
示例#17
0
__author__ = 'maxbarrass'

import os
import time
import json
import sys
import argparse

import pyaem

aem = pyaem.PyAem('admin', 'admin', 'localhost', 4502)

try:

    path_name = "test"
    path_base = "/content/pytest/*"
    path_type = "nt:OrderedFolder"

    params = {
        ':nameHint': path_name,
        'jcr:primaryType': path_type,
        'jcr:mixinTypes': 'rep:AccessControllable'
    }

    try:
        result = aem.create_path(path_base, **params)

        if result.is_failure():
            print(json.dumps({'failed': True, 'msg': result.message}))
        else:
            print(json.dumps({'msg': result.message}))
def main():
    module = AnsibleModule(
        argument_spec=dict(host=dict(required=True),
                           port=dict(required=True),
                           stack=dict(required=True),
                           agent_id=dict(required=True),
                           agent_name=dict(required=True),
                           agent_type=dict(required=True),
                           dest_group=dict(required=True),
                           dest_username=dict(required=True),
                           dest_password=dict(required=True),
                           run_mode=dict(required=True)))

    host = module.params['host']
    port = module.params['port']
    stack = module.params['stack']
    agent_id = module.params['agent_id']
    agent_name = module.params['agent_name']
    agent_type = module.params['agent_type']
    dest_username = module.params['dest_username']
    dest_password = module.params['dest_password']
    dest_group = module.params['dest_group']
    run_mode = module.params['run_mode']

    # determine ports based on group
    if dest_group == 'author':
        dest_port = 4502
    elif dest_group == 'publisher':
        dest_port = 4503
    else:
        dest_port = 8080

    agent_title = '{0} agent to {1} {2}'.format(agent_type, dest_group,
                                                agent_id)
    if stack == 'local':
        dest_url = 'http://localhost:{0}'.format(dest_port)
    elif stack == 'docker':
        if dest_port == 4502:
            dest_url = 'http://192.168.78.1:{0}'.format(dest_port)
        elif dest_port == 4503:
            dest_url = 'http://192.168.78.2:{0}'.format(dest_port)
        elif dest_port == 8080:
            dest_url = 'http://192.168.78.3:{0}'.format(dest_port)
    else:
        dest_domain = re.search(r'.aws-sensis.com.au', host).group()
        dest_url = 'http://sitesmart-{0}-{1}-{2}.in.{3}:{4}'.format(
            stack, dest_group, agent_id, dest_domain, dest_port)

    aem_username = os.getenv('crx_username')
    aem_password = os.getenv('crx_password')

    aem = pyaem.PyAem(aem_username, aem_password, host, port)

    params = {
        'jcr:content/jcr:title': agent_title,
        'jcr:content/jcr:description': agent_title,
        'jcr:content/logLevel': 'info',
        'jcr:content/retryDelay': '60000'
    }
    result = aem.create_agent(agent_name, agent_type, dest_username,
                              dest_password, dest_url, run_mode, **params)

    if result.is_failure():
        print json.dumps({'failed': True, 'msg': result.message})
    else:
        print json.dumps({'msg': result.message})