Browse code
Support updated stacks + nil parameter values
Ed Langley authored on 28/04/2018 07:29:32
Showing 2 changed files
Showing 2 changed files
... | ... |
@@ -73,8 +73,9 @@ |
73 | 73 |
|
74 | 74 |
|
75 | 75 |
(defclass stack () |
76 |
- ((%outputs :initarg :outputs :reader outputs) |
|
76 |
+ ((%outputs :initarg :outputs :reader outputs :initform (list)) |
|
77 | 77 |
(%capabilities :initarg :capabilities :reader capabilities) |
78 |
+ (%last-updated-time :initarg :last-updated-time :reader last-updated-time) |
|
78 | 79 |
(%creation-time :initarg :creation-time :reader creation-time) |
79 | 80 |
(%notification-arns :initarg :notification-arns :reader notification-arns) |
80 | 81 |
(%stack-id :initarg :stack-id :reader stack-id) |
... | ... |
@@ -23,9 +23,9 @@ |
23 | 23 |
the-stack)) |
24 | 24 |
|
25 | 25 |
(defun print-kvs (formatter stream data) |
26 |
- (mapcar (destructuring-lambda (((_ k) (__ v))) |
|
26 |
+ (mapcar (destructuring-lambda (((_ k) (__ . v))) |
|
27 | 27 |
(declare (ignore _ __)) |
28 |
- (funcall formatter stream k v)) |
|
28 |
+ (funcall formatter stream k (car v))) |
|
29 | 29 |
data)) |
30 | 30 |
|
31 | 31 |
(defun stack-outputs (the-stack) |
... | ... |
@@ -113,13 +113,13 @@ |
113 | 113 |
(defmethod (setf stack) :before (new-value (object stack-formatter)) |
114 | 114 |
(setf (old-status object) (stack-status object))) |
115 | 115 |
|
116 |
-(defgeneric refresh-stack (stack-formatter) |
|
116 |
+(defgeneric refresh (stack-formatter) |
|
117 | 117 |
(:method ((stack cloud-watcher.aws-result:stack)) |
118 | 118 |
(stack-for-name (stack-name stack))) |
119 | 119 |
(:method ((stack-formatter string)) |
120 | 120 |
(make-instance 'stack-formatter :stack (stack-for-name stack-formatter))) |
121 | 121 |
(:method ((stack-formatter stack-formatter)) |
122 |
- (setf (stack stack-formatter) (refresh-stack (stack stack-formatter))) |
|
122 |
+ (setf (stack stack-formatter) (refresh (stack stack-formatter))) |
|
123 | 123 |
stack-formatter)) |
124 | 124 |
|
125 | 125 |
(defmethod old-status ((stack cloud-watcher.aws-result:stack)) |
... | ... |
@@ -138,15 +138,15 @@ |
138 | 138 |
(output-block the-stack) |
139 | 139 |
t)))) |
140 | 140 |
|
141 |
-(defun refreshing (refresh-function cb) |
|
142 |
- (lambda (thing) |
|
143 |
- (let ((refreshed-thing (funcall refresh-function thing))) |
|
144 |
- (values (funcall cb refreshed-thing) |
|
145 |
- refreshed-thing)))) |
|
141 |
+(defmacro refreshing (cb) |
|
142 |
+ `(lambda (thing) |
|
143 |
+ (let ((refreshed-thing (refresh thing))) |
|
144 |
+ (values (,cb refreshed-thing) |
|
145 |
+ refreshed-thing)))) |
|
146 | 146 |
|
147 | 147 |
(defun watch-stack (name) |
148 | 148 |
(format t "~&Watching ~s~2%" name) |
149 |
- (every-five-seconds (refreshing 'refresh-stack 'stack-info) |
|
149 |
+ (every-five-seconds (refreshing stack-info) |
|
150 | 150 |
(list name)) |
151 | 151 |
(fresh-line)) |
152 | 152 |
|