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