Exemplo n.º 1
0
def rollback_config(module, result):
    rollback = module.params['rollback']
    diff = None

    with locked_config:
        load_configuration(module, rollback=rollback)
        diff = get_diff(module)

    return diff
Exemplo n.º 2
0
def main():
    """ main entry point for module execution
    """
    argument_spec = dict(
        lines=dict(type='list'),

        src=dict(type='path'),
        src_format=dict(choices=['xml', 'text', 'set', 'json']),

        # update operations
        update=dict(default='merge', choices=['merge', 'overwrite', 'replace', 'update']),

        # deprecated replace in Ansible 2.3
        replace=dict(type='bool'),

        confirm=dict(default=0, type='int'),
        comment=dict(default=DEFAULT_COMMENT),

        # config operations
        backup=dict(type='bool', default=False),
        rollback=dict(type='int'),

        # deprecated zeroize in Ansible 2.3
        zeroize=dict(default=False, type='bool'),
    )

    argument_spec.update(junos_argument_spec)

    mutually_exclusive = [('lines', 'src', 'rollback')]

    module = AnsibleModule(argument_spec=argument_spec,
                           mutually_exclusive=mutually_exclusive,
                           supports_check_mode=True)

    warnings = list()
    check_args(module, warnings)

    result = {'changed': False, 'warnings': warnings}

    if module.params['backup']:
        result['__backup__'] = get_configuration()

    if module.params['rollback']:
        diff = get_diff(module)
        update_result(module, result, diff)

    elif not any((module.params['src'], module.params['lines'])):
        confirm_config(module)

    else:
        diff = load_config(module)
        update_result(module, result, diff)

    module.exit_json(**result)
Exemplo n.º 3
0
from ansible.module_utils.six import string_types

USE_PERSISTENT_CONNECTION = True
DEFAULT_COMMENT = 'configured by junos_config'


def check_args(module, warnings):
    junos_check_args(module, warnings)

    if module.params['replace'] is not None:
        module.fail_json(msg='argument replace is deprecated, use update')


zeroize = lambda x: send_request(x,
                                 ElementTree.Element('request-system-zeroize'))
rollback = lambda x: get_diff(x)


def guess_format(config):
    try:
        json.loads(config)
        return 'json'
    except ValueError:
        pass

    try:
        ElementTree.fromstring(config)
        return 'xml'
    except ElementTree.ParseError:
        pass
Exemplo n.º 4
0
def rollback(ele):
    return get_diff(ele)
Exemplo n.º 5
0
def rollback(ele, id='0'):
    return get_diff(ele, id)
Exemplo n.º 6
0
def rollback(ele):
    return get_diff(ele)