mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-06 09:31:39 -05:00
ein-jupyterhub: Early success getting version and authentication token
Some initial success querying jupyterhub for the version and getting an authentication token for a user.
This commit is contained in:
parent
6911f6c692
commit
21925e8122
3 changed files with 57 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
;; -*- mode: lisp; fill-column: 80; lexical-binding: t -*-
|
||||||
;;; ein-jupyterhub.el --- Interface to Jupyterhub
|
;;; ein-jupyterhub.el --- Interface to Jupyterhub
|
||||||
|
|
||||||
;; Copyright (C) 2016 - John Miller
|
;; Copyright (C) 2016 - John Miller
|
||||||
|
@ -29,7 +30,53 @@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
(require 'request)
|
||||||
|
(require 'deferred)
|
||||||
|
|
||||||
|
(defun ein:jupyterhub-authorization-url (url-or-port command)
|
||||||
|
(ein:url url-or-port "authorizations" command))
|
||||||
|
|
||||||
|
(defun ein:jupyterhub-api-url (url-or-port command)
|
||||||
|
(ein:url url-or-port "hub/api" command))
|
||||||
|
|
||||||
|
(defvar *ein:jupyterhub-version* nil)
|
||||||
|
|
||||||
|
(defun ein:jupyterhub-version (url-or-port)
|
||||||
|
(deferred:$
|
||||||
|
(ein:query-deferred
|
||||||
|
(ein:jupyterhub-api-url url-or-port "/")
|
||||||
|
:type "GET"
|
||||||
|
:parser #'ein:json-read)
|
||||||
|
(deferred:nextc it
|
||||||
|
(lambda (response)
|
||||||
|
(when (and response (request-response-data response))
|
||||||
|
(setq *ein:jupyterhub-version* (plist-get (request-response-data response) :version)))))))
|
||||||
|
|
||||||
|
(defun ein:jupyterhub-get-user-from-token (url-or-port token)
|
||||||
|
(deferred:$
|
||||||
|
(ein:query-deferred
|
||||||
|
(ein:url url-or-port "hub/api/authorizations/token" token))
|
||||||
|
(deferred:nextc it
|
||||||
|
(lambda (response)
|
||||||
|
(message "Response: %s" (request-response-data response))))))
|
||||||
|
|
||||||
|
(defun ein:jupyterhub-token-request (url-or-port username password)
|
||||||
|
(let ((url (ein:url url-or-port "hub/api/authorizations/token")))
|
||||||
|
(deferred:$
|
||||||
|
(deferred:try
|
||||||
|
(deferred:$
|
||||||
|
(ein:query-deferred
|
||||||
|
url
|
||||||
|
:type "POST"
|
||||||
|
:timeout ein:content-query-timeout
|
||||||
|
:parser #'ein:json-read
|
||||||
|
:data (json-encode`(("username" . ,username)
|
||||||
|
("password" . , password))))
|
||||||
|
(deferred:nextc it
|
||||||
|
(lambda (response)
|
||||||
|
(message "Received response %s" (request-response-data response)))))
|
||||||
|
:catch
|
||||||
|
(lambda (err) (message "error: %s" err))))))
|
||||||
|
|
||||||
(defun ein:hub-url (url-or-port &optional path)
|
(defun ein:hub-url (url-or-port &optional path)
|
||||||
(if path
|
(if path
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
(auto-complete "1.4.0")
|
(auto-complete "1.4.0")
|
||||||
(request "0.3")
|
(request "0.3")
|
||||||
(deferred "0.5")
|
(deferred "0.5")
|
||||||
|
(request-deferred "0.2.0")
|
||||||
(cl-generic "0.3")
|
(cl-generic "0.3")
|
||||||
(dash "2.13.0")
|
(dash "2.13.0")
|
||||||
(skewer-mode "1.6.2")))
|
(skewer-mode "1.6.2")))
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
(eval-when-compile (require 'cl))
|
(eval-when-compile (require 'cl))
|
||||||
(require 'request)
|
(require 'request)
|
||||||
|
(require 'request-deferred)
|
||||||
(require 'url)
|
(require 'url)
|
||||||
|
|
||||||
(require 'ein-core)
|
(require 'ein-core)
|
||||||
|
@ -101,6 +102,14 @@ KEY, then call `request' with URL and SETTINGS. KEY is compared by
|
||||||
(puthash key response ein:query-running-process-table)
|
(puthash key response ein:query-running-process-table)
|
||||||
response)))
|
response)))
|
||||||
|
|
||||||
|
(defun* ein:query-deferred (url &rest settings
|
||||||
|
&key
|
||||||
|
(timeout ein:query-timeout)
|
||||||
|
&allow-other-keys)
|
||||||
|
""
|
||||||
|
(apply #'request-deferred (url-encode-url url)
|
||||||
|
(ein:query-prepare-header url settings)))
|
||||||
|
|
||||||
(defun ein:query-gc-running-process-table ()
|
(defun ein:query-gc-running-process-table ()
|
||||||
"Garbage collect dead processes in `ein:query-running-process-table'."
|
"Garbage collect dead processes in `ein:query-running-process-table'."
|
||||||
(maphash
|
(maphash
|
||||||
|
|
Loading…
Add table
Reference in a new issue