Example #1
0
    def init_netconf(self, **kwargs):
        """ init netconf """

        if not HAS_NCCLIENT:
            raise Exception("the ncclient library is required")

        self.netconf = get_netconf(**kwargs)
        if not self.netconf:
            self.network_module.fail_json(msg='Error: Netconf init failed.')
Example #2
0
    def init_netconf(self):
        """ init_netconf"""

        if HAS_NCCLIENT:
            self.netconf = get_netconf(host=self.host, port=self.port,
                                       username=self.username,
                                       password=self.module.params['password'])
        else:
            self.module.fail_json(
                msg='Error: No ncclient package, please install it.')
Example #3
0
    def __init__(self, **kwargs):
        """ Class init """

        # argument spec
        argument_spec = kwargs["argument_spec"]
        self.spec = argument_spec
        self.module = NetworkModule(argument_spec=self.spec,
                                    connect_on_load=False,
                                    supports_check_mode=True)

        # module args
        self.state = self.module.params['state']
        self.host = self.module.params['host']
        self.port = self.module.params['port']
        self.username = self.module.params['username']
        self.password = self.module.params['password']
        self.acl_name = self.module.params['acl_name'] or None
        self.acl_num = self.module.params['acl_num'] or None
        self.acl_type = None
        self.acl_step = self.module.params['acl_step'] or None
        self.acl_description = self.module.params['acl_description'] or None
        self.rule_name = self.module.params['rule_name'] or None
        self.rule_id = self.module.params['rule_id'] or None
        self.rule_action = self.module.params['rule_action'] or None
        self.source_ip = self.module.params['source_ip'] or None
        self.src_mask = self.module.params['src_mask'] or None
        self.src_wild = None
        self.frag_type = self.module.params['frag_type'] or None
        self.vrf_name = self.module.params['vrf_name'] or None
        self.time_range = self.module.params['time_range'] or None
        self.rule_description = self.module.params['rule_description'] or None
        self.log_flag = self.module.params['log_flag'] or None

        # cur config
        self.cur_acl_cfg = dict()
        self.cur_base_rule_cfg = dict()

        # state
        self.changed = False
        self.updates_cmd = list()
        self.results = dict()
        self.proposed = dict()
        self.existing = dict()
        self.end_state = dict()

        # netconf
        if not HAS_NCCLIENT:
            raise Exception("Error: The ncclient library is required.")

        self.netconf = get_netconf(host=self.host,
                                   port=self.port,
                                   username=self.username,
                                   password=self.password)
        if not self.netconf:
            self.module.fail_json(msg='Error: netconf init failed.')
Example #4
0
    def __init__(self, **kwargs):
        """ Class init """

        # module
        argument_spec = kwargs["argument_spec"]
        self.spec = argument_spec
        self.module = NetworkModule(argument_spec=self.spec,
                                    connect_on_load=False,
                                    supports_check_mode=True)

        # module args
        self.state = self.module.params['state']
        self.host = self.module.params['host']
        self.port = self.module.params['port']
        self.username = self.module.params['username']
        self.password = self.module.params['password']
        self.version = self.module.params['version']
        self.connect_port = self.module.params['connect_port']
        self.host_name = self.module.params['host_name']
        self.domain = "snmpUDPDomain"
        self.address = self.module.params['address']
        self.notify_type = self.module.params['notify_type']
        self.vpn_name = self.module.params['vpn_name']
        self.recv_port = self.module.params['recv_port']
        self.security_model = self.module.params['security_model']
        self.security_name = self.module.params['security_name']
        self.security_name_v3 = self.module.params['security_name_v3']
        self.security_level = self.module.params['security_level']
        self.is_public_net = self.module.params['is_public_net']
        self.interface_name = self.module.params['interface_name']

        # config
        self.cur_cli_cfg = dict()
        self.cur_netconf_cfg = dict()
        self.end_netconf_cfg = dict()

        # state
        self.changed = False
        self.updates_cmd = list()
        self.results = dict()
        self.proposed = dict()
        self.existing = dict()
        self.end_state = dict()

        # netconf
        if not HAS_NCCLIENT:
            raise Exception("the ncclient library is required")

        self.netconf = get_netconf(host=self.host,
                                   port=self.port,
                                   username=self.username,
                                   password=self.module.params['password'])
        if not self.netconf:
            self.module.fail_json(msg='Error: netconf init failed')
Example #5
0
    def init_netconf(self):
        """init_netconf"""

        if not HAS_NCCLIENT:
            raise Exception("the ncclient library is required")

        self.nc = get_netconf(host=self.host,
                              port=self.port,
                              username=self.username,
                              password=self.password)
        if not self.nc:
            self.module.fail_json(msg='Error: netconf init failed')
    def __init__(self, **kwargs):
        """ Init function """

        # argument spec
        argument_spec = kwargs["argument_spec"]
        self.spec = argument_spec
        self.module = NetworkModule(argument_spec=self.spec,
                                    connect_on_load=False,
                                    supports_check_mode=True)

        # module args
        self.state = self.module.params['state']
        self.host = self.module.params['host']
        self.port = self.module.params['port']
        self.username = self.module.params['username']
        self.password = self.module.params['password']
        self.trap_time_stamp = self.module.params['trap_time_stamp'] or None
        self.trap_buff_enable = self.module.params['trap_buff_enable'] or None
        self.trap_buff_size = self.module.params['trap_buff_size'] or None
        self.module_name = self.module.params['module_name'] or None
        self.channel_id = self.module.params['channel_id'] or None
        self.trap_enable = self.module.params['trap_enable'] or None
        self.trap_level = self.module.params['trap_level'] or None

        # cur config
        self.cur_global_cfg = dict()
        self.cur_source_cfg = dict()

        # state
        self.changed = False
        self.updates_cmd = list()
        self.results = dict()
        self.proposed = dict()
        self.existing = dict()
        self.end_state = dict()

        # netconf
        if not HAS_NCCLIENT:
            raise Exception("Error: The ncclient library is required")

        self.netconf = get_netconf(host=self.host,
                                   port=self.port,
                                   username=self.username,
                                   password=self.password)
        if not self.netconf:
            self.module.fail_json(msg='Error: netconf init failed')
Example #7
0
    def __init__(self, **kwargs):
        """ Class init """

        self.local_engine_id = None

        self.netconf = get_netconf(**kwargs)
def main():
    """ main """

    argument_spec = dict(
        rpc=dict(choices=['get', 'edit-config',
                          'execute-action', 'execute-cli'], default=None),
        cfg_xml=dict(required=True)
    )

    if not HAS_NCCLIENT:
        raise Exception("the ncclient library is required")

    module = NetworkModule(argument_spec=argument_spec,
                           supports_check_mode=True)

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

    if not rpc or not cfg_xml:
        module.fail_json(msg='please input rpc and cfg_xml.')

    netconf = get_netconf(host=host, port=port,
                          username=username, password=password)

    changed = False
    end_state = dict()

    if not netconf:
        module.fail_json(msg='ce_netconf start failed.')

    if rpc == "get":

        try:
            response = netconf.get_config(filter=cfg_xml)
        except RPCError:
            err = sys.exc_info()[1]
            module.fail_json(msg='Error: %s' % err.message.replace("\r\n", ""))

        if "<data/>" in response.xml:
            end_state["result"] = "<data/>"
        else:
            tmp1 = response.xml.split(r"<data>")
            tmp2 = tmp1[1].split(r"</data>")
            result = tmp2[0].split("\n")

            end_state["result"] = result

    elif rpc == "edit-config":

        try:
            response = netconf.set_config(config=cfg_xml)
        except RPCError:
            err = sys.exc_info()[1]
            module.fail_json(msg='Error: %s' % err.message.replace("\r\n", ""))

        if "<ok/>" not in response.xml:
            module.fail_json(msg='rpc edit-config failed.')

        changed = True
        end_state["result"] = "ok"

    elif rpc == "execute-action":

        try:
            response = netconf.execute_action(action=cfg_xml)
        except RPCError:
            err = sys.exc_info()[1]
            module.fail_json(msg='Error: %s' % err.message.replace("\r\n", ""))

        if "<ok/>" not in response.xml:
            module.fail_json(msg='rpc execute-action failed.')

        changed = True
        end_state["result"] = "ok"

    elif rpc == "execute-cli":

        try:
            response = netconf.execute_cli(command=cfg_xml)
        except RPCError:
            err = sys.exc_info()[1]
            module.fail_json(msg='Error: %s' % err.message.replace("\r\n", ""))

        if "<data/>" in response.xml:
            end_state["result"] = "<data/>"
        else:
            tmp1 = response.xml.split(r"<data>")
            tmp2 = tmp1[1].split(r"</data>")
            result = tmp2[0].split("\n")

            end_state["result"] = result

    else:
        module.fail_json(msg='please input correct rpc.')

    results = dict()
    results['changed'] = changed
    results['end_state'] = end_state

    module.exit_json(**results)
    def __init__(self, **kwargs):
        """ Class init """

        self.netconf = get_netconf(**kwargs)