示例#1
0
    def __init__(self, prio, path, debug):
        self.sock = socket.socket()
        self.sock = socket.socket()
        self.path = path
        self.debug = debug
        self.prio = prio
        global _schemas_loaded

        self.ms = socket.socket()
        maapi.connect(sock=self.ms, ip='127.0.0.1', port=_ncs.NCS_PORT)
        if _schemas_loaded is False:
            maapi.load_schemas(self.ms)
            _schemas_loaded = True

        maapi.start_user_session(self.ms, 'admin', 'test', [], '127.0.0.1',
                                 _ncs.PROTO_TCP)
        self.th = maapi.start_trans(self.ms, _ncs.RUNNING, _ncs.READ)
        cdb.connect(self.sock,
                    type=cdb.DATA_SOCKET,
                    ip='127.0.0.1',
                    port=_ncs.NCS_PORT,
                    path=self.path)
        self.subid = cdb.subscribe(self.sock, self.prio, 0, self.path)
        cdb.subscribe_done(self.sock)
        self.debug("Subscription {0}, subscribed to {1}".format(
            self.subid, self.path))
示例#2
0
    def init_daemon(self):
        self.csocket = socket.socket()
        self.wsocket = socket.socket()
        self.msocket = socket.socket()

        self.ctx = dp.init_daemon("pioneer")

        dp.connect(
            dx=self.ctx,
            sock=self.csocket,
            type=dp.CONTROL_SOCKET,
            ip='127.0.0.1',
            port=_ncs.NCS_PORT
        )
        dp.connect(
            dx=self.ctx,
            sock=self.wsocket,
            type=dp.WORKER_SOCKET,
            ip='127.0.0.1',
            port=_ncs.NCS_PORT
        )
        maapi.connect(
            sock=self.msocket,
            ip='127.0.0.1',
            port=_ncs.NCS_PORT
        )

        dp.install_crypto_keys(self.ctx)
        dp.register_action_cbs(self.ctx, 'pioneer', self)
        dp.register_done(self.ctx)
示例#3
0
    def _yang_sftp_read_settings(self):
        def safe_get(sock, th, path, default=None):
            try:
                return maapi.get_elem(sock, th, path)
            except _ncs.error.Error as e:
                if e.confd_errno == _ncs.ERR_NOEXISTS:
                    if isinstance(default, Exception):
                        raise default
                    return default
                else:
                    raise e

        sock = socket.socket()
        maapi.connect(sock, '127.0.0.1', _ncs.PORT)
        try:
            maapi.start_user_session2(sock, 'admin', 'system', [], '127.0.0.1',
                                      0, _ncs.PROTO_TCP)
            try:
                th = maapi.start_trans(sock, _ncs.RUNNING, _ncs.READ)

                sftp_prefix = '/{0}:{1}/{2}/'.format(ns.ns.prefix,
                                                     ns.ns.pioneer_pioneer_,
                                                     ns.ns.pioneer_sftp_)
                host_path = sftp_prefix + ns.ns.pioneer_host_
                host = safe_get(
                    sock, th, host_path,
                    ActionError({'error': host_path + ' is required'}))
                port = safe_get(sock, th, sftp_prefix + ns.ns.pioneer_port_,
                                22)
                username_path = sftp_prefix + ns.ns.pioneer_username_
                username = safe_get(
                    sock, th, username_path,
                    ActionError({'error': username_path + ' is required'}))
                password = safe_get(sock, th,
                                    sftp_prefix + ns.ns.pioneer_password_,
                                    None)

                rsa_key_path = safe_get(
                    sock, th, sftp_prefix + ns.ns.pioneer_rsa_key_path_,
                    '~/id_rsa')

                return (str(host), int(port), str(username),
                        password and str(password)
                        or None, os.path.expanduser(str(rsa_key_path)))
            finally:
                maapi.end_user_session(sock)
        finally:
            sock.close()
                 'GigabitEthernet0/18', '10.8.8.0/24', 6000000, 65002)

    add_endpoint(t, serviceName, 'main-office', 'ce0', 'GigabitEthernet0/11',
                 '10.10.1.0/24', 6000000, 65003)


def sync_from_devices(maapiSock):
    print('Syncing from devices ...')
    result = _ncs.maapi.request_action(maapiSock, [],
                                       0,
                                       path='/ncs:devices/sync-from')
    print('Synced from devices!')


if __name__ == '__main__':
    sock_maapi = socket.socket()
    maapi.connect(sock_maapi, ip='127.0.0.1', port=_ncs.NCS_PORT)

    _ncs.maapi.start_user_session(sock_maapi, 'admin', 'python', [],
                                  '127.0.0.1', _ncs.PROTO_TCP)

    sync_from_devices(sock_maapi)

    sock_maapi.close()

    m = ncs.maapi.Maapi()
    m.start_user_session('admin', 'system', [])
    t = m.start_trans(ncs.RUNNING, ncs.READ_WRITE)

    create_volvo(t)
    t.apply()