Merge pull request #992 from urbit/acme-retouch

adds exponential backoff and :hall notifications to :acme
This commit is contained in:
Joe Bryan 2019-01-14 20:36:22 -05:00 committed by GitHub
commit 563a1610f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 472 additions and 415 deletions

File diff suppressed because it is too large Load Diff

View File

@ -661,7 +661,7 @@
:: kill active outgoing requests :: kill active outgoing requests
:: ::
=. +>.$ =. +>.$
=/ fok=(list duct) ~(tap in ~(key by kes)) =/ fok=(list duct) (turn ~(val by q.ask) head)
|- ^+ +>.^$ |- ^+ +>.^$
?~ fok +>.^$ ?~ fok +>.^$
%= $ %= $
@ -756,11 +756,24 @@
:: ::
$them :: outbound request $them :: outbound request
?~ p.kyz ?~ p.kyz
=+ sud=(need (~(get by kes) hen)) ?~ sud=(~(get by kes) hen)
:: delete an element from q.ask by traversing to prevent leakage
::
=. q.ask
=/ qas ~(tap by q.ask)
|- ^+ q.ask
?~ qas
q.ask
?: =(hen p.q.i.qas)
(~(del by q.ask) p.i.qas)
$(qas t.qas)
::
+>.$
::
=. +>.$ =. +>.$
%_ +>.$ %_ +>.$
mow :_(mow [ged [%give %thus sud ~]]) mow :_(mow [ged [%give %thus u.sud ~]])
q.ask (~(del by q.ask) sud) q.ask (~(del by q.ask) u.sud)
kes (~(del by kes) hen) kes (~(del by kes) hen)
== ==
:: ::

View File

@ -16,17 +16,19 @@
++ test-first-order ++ test-first-order
=/ dom=(set turf) (sy /org/urbit/zod ~) =/ dom=(set turf) (sy /org/urbit/zod ~)
=^ moves app (~(poke-acme-order app *bowl:gall *acme:app) dom) =^ moves app (~(poke-acme-order app *bowl:gall *acme:app) dom)
=/ msg "requesting an https certificate for zod.urbit.org" =/ msg 'requesting an https certificate for zod.urbit.org'
;: weld ;: weld
%+ expect-eq %+ expect-eq
!> :~ [ost.bow.app %wait /acme/directory +(now.bow.app)] !> :~ =- [ost.bow.app [%poke / -]]
[ost.bow.app %flog / %text msg] =- [[~zod %hall] %hall-action %phrase (sy [~zod %inbox] ~) -]
~[[%app %$ [%lin & msg]]]
[ost.bow.app %wait /acme/try/1/directory +(now.bow.app)]
== ==
!> moves !> moves
:: ::
%+ expect-eq %+ expect-eq
!> [~ dom] !> [~ dom]
!> pen.app !> (some ~(key by (fall next-order.app ~)))
:: ::
%+ expect-eq %+ expect-eq
!> & !> &
@ -39,11 +41,11 @@
:: tests that acme requests service directory on %wake :: tests that acme requests service directory on %wake
:: ::
++ test-first-order-wake ++ test-first-order-wake
=^ moves app (~(wake app *bowl:gall *acme:app) /acme/directory ~) =^ moves app (~(wake app *bowl:gall *acme:app) /acme/try/1/directory ~)
=/ url =/ url
=- (need (de-purl:html -)) =- (need (de-purl:html -))
'https://acme-staging-v02.api.letsencrypt.org/directory' 'https://acme-staging-v02.api.letsencrypt.org/directory'
%+ expect-eq %+ expect-eq
!> ~[[ost.bow.app [%hiss /acme/directory/~zod ~ %httr %hiss url %get ~ ~]]] !> ~[[ost.bow.app [%hiss /acme/try/2/directory ~ %httr %hiss url %get ~ ~]]]
!> moves !> moves
-- --