Adding better support for undeployed instances.
This commit is contained in:
74
src/db.scm
74
src/db.scm
@@ -515,37 +515,51 @@ where usa.user_id=$1 and usa.instance_id=$2;"
|
||||
"select apps.app_name, usa.installed_version, usa.instance_id from user_selected_apps usa
|
||||
join apps on apps.id=usa.app_id
|
||||
where user_id=$1;"
|
||||
user-id))))
|
||||
(map
|
||||
(lambda (instance)
|
||||
(cons `(apps . ,(alist-ref (alist-ref 'instance-id instance) instance-apps))
|
||||
instance))
|
||||
user-id)))
|
||||
(undeployed-res
|
||||
(query conn
|
||||
(string-append
|
||||
"select i.instance_id from instances as i "
|
||||
"left join deployments d on d.instance_id = i.instance_id "
|
||||
"where i.user_id=$1 and d.status is null "
|
||||
"group by d.id, i.instance_id;")
|
||||
user-id)))
|
||||
(append
|
||||
(map
|
||||
(lambda (row-num)
|
||||
(map (lambda (item)
|
||||
(let* ((key (car item))
|
||||
(value (cdr item))
|
||||
(config (alist-ref key `((root_domain . root-domain)
|
||||
(config_enc . config)
|
||||
(instance_id . instance-id)
|
||||
;; (wg_easy_version . wg-easy)
|
||||
;; (nextcloud_version . nextcloud)
|
||||
;; (ghost_version . ghost)
|
||||
;; (nassella_version . nassella)
|
||||
;; (log_viewer_version . log-viewer)
|
||||
;; (instance_control_version . instance-control)
|
||||
,@*deployments-reverse-column-map*))))
|
||||
`(,config . ,(if (sql-null? value)
|
||||
#f
|
||||
(if (and (string? value) (member config *deployments-column-map*))
|
||||
(string->symbol value)
|
||||
(if (eq? key 'config_enc)
|
||||
(with-input-from-string
|
||||
(user-decrypt-from-db value user-key user-iv user-id)
|
||||
read)
|
||||
value))))))
|
||||
(row-alist res row-num)))
|
||||
(iota (row-count res)))))))
|
||||
(lambda (instance)
|
||||
(cons `(apps . ,(alist-ref (alist-ref 'instance-id instance) instance-apps))
|
||||
instance))
|
||||
(map
|
||||
(lambda (row-num)
|
||||
(cons '(deployed . #t)
|
||||
(map (lambda (item)
|
||||
(let* ((key (car item))
|
||||
(value (cdr item))
|
||||
(config (alist-ref key `((root_domain . root-domain)
|
||||
(config_enc . config)
|
||||
(instance_id . instance-id)
|
||||
;; (wg_easy_version . wg-easy)
|
||||
;; (nextcloud_version . nextcloud)
|
||||
;; (ghost_version . ghost)
|
||||
;; (nassella_version . nassella)
|
||||
;; (log_viewer_version . log-viewer)
|
||||
;; (instance_control_version . instance-control)
|
||||
,@*deployments-reverse-column-map*))))
|
||||
`(,config . ,(if (sql-null? value)
|
||||
#f
|
||||
(if (and (string? value) (member config *deployments-column-map*))
|
||||
(string->symbol value)
|
||||
(if (eq? key 'config_enc)
|
||||
(with-input-from-string
|
||||
(user-decrypt-from-db value user-key user-iv user-id)
|
||||
read)
|
||||
value))))))
|
||||
(row-alist res row-num))))
|
||||
(iota (row-count res))))
|
||||
(map (lambda (id) `((instance-id . ,id) (deployed . #f)))
|
||||
(if (> (row-count undeployed-res) 0)
|
||||
(row-values undeployed-res)
|
||||
'()))))))
|
||||
|
||||
(define (update-user-terraform-state conn user-id instance-id state backup)
|
||||
(receive (user-key user-iv auth-user-id)
|
||||
|
||||
Reference in New Issue
Block a user