@@ -85,8 +85,6 @@ get 'api/pwd/' => sub {
85
85
my $user = var ' api_user'
86
86
or error __" Authentication required" ;
87
87
88
- my $schema = schema;
89
-
90
88
my $passphrase = var(' payload' )-> {passphrase }
91
89
or error __" Need passphrase for retrieving and setting passwords" ;
92
90
@@ -109,8 +107,6 @@ get 'api/cert/' => sub {
109
107
my $user = var ' api_user'
110
108
or error __" Authentication required" ;
111
109
112
- my $schema = schema;
113
-
114
110
my $return = $cdb -> run_cert(
115
111
server => query_parameters-> get(' server' ),
116
112
action => query_parameters-> get(' action' ),
@@ -128,158 +124,16 @@ get 'api/server/' => sub {
128
124
my $user = var ' api_user'
129
125
or error __" Authentication required" ;
130
126
131
- my $schema = schema;
132
-
133
- my $action = query_parameters-> get(' action' )
134
- or error __" Need required action" ;
135
- my $server = query_parameters-> get(' server' );
136
- my $param = query_parameters-> get(' param' );
137
-
138
- my $output = ' ' ;
139
- if ($action eq ' summary' )
140
- {
141
- my $rs = $schema -> resultset(' Servertype' )-> search({},{
142
- prefetch => { server_servertypes => ' server' },
143
- });
144
-
145
- $rs = $rs -> search({ ' me.name' => $param })
146
- if $param ;
147
-
148
- my @types = $rs -> all;
149
-
150
- my %return ;
151
- foreach my $type (@types )
152
- {
153
- next unless $type -> server_servertypes-> count;
154
- $output .= $type -> name." :" ;
155
- $return {$type -> name} ||= [];
156
- foreach my $server ($type -> server_servertypes)
157
- {
158
- push @{$return {$type -> name}}, $server -> server-> name;
159
- }
160
- }
161
- $output = encode_json(\%return );
162
- }
163
- elsif ($action eq ' domain' )
164
- {
165
- $server or error __" Please specify server" ;
166
- my ($serv ) = $schema -> resultset(' Server' )-> search({
167
- ' me.name' => $server ,
168
- },{
169
- prefetch => ' domain' ,
170
- });
171
- $output .= $serv -> domain-> name;
172
- }
173
- elsif ($action eq ' is_production' )
174
- {
175
- $server or error __" Please specify server" ;
176
- my ($serv ) = $schema -> resultset(' Server' )-> search({
177
- ' me.name' => $server ,
178
- },{
179
- prefetch => ' domain' ,
180
- });
181
- $output .= $serv -> is_production;
182
- }
183
- elsif ($action eq ' metadata' )
184
- {
185
- $server or error __" Please specify server" ;
186
- my ($serv ) = $schema -> resultset(' Server' )-> search({
187
- ' me.name' => $server ,
188
- },{
189
- prefetch => ' domain' ,
190
- });
191
- $output .= ($serv -> metadata || ' {}' );
192
- }
193
- elsif ($action eq ' sshkeys' )
194
- {
195
- $server or error __" Please specify server" ;
196
- my $server_rs = $schema -> resultset(' Server' )-> by_name($server )
197
- or error __" Server not found" ;
198
- my ($serv ) = $schema -> resultset(' Server' )-> search({
199
- ' me.name' => $server ,
200
- ' user.deleted' => undef ,
201
- # Restrict keys to either ones without a servertype restriction, or
202
- # ones that match the servertype of this server
203
- ' pw_servertypes.servertype_id' => [undef , map { $_ -> servertype_id } $server_rs -> server_servertypes],
204
- },{
205
- prefetch => {
206
- server_servertypes => {
207
- servertype => {
208
- user_servertypes => {
209
- user => {
210
- pws => ' pw_servertypes' ,
211
- },
212
- },
213
- },
214
- },
215
- },
216
- });
217
- my %keys ;
218
- foreach my $st ($serv -> server_servertypes)
219
- {
220
- foreach my $ust ($st -> servertype-> user_servertypes)
221
- {
222
- foreach my $pw ($ust -> user-> pws)
223
- {
224
- my $key = $pw -> publickey or next ;
225
- $key =~ s /\s +$// ; # May or may not have trailing space
226
- $keys {$key } = 1 if $key ;
227
- }
228
- }
229
- }
230
- $output .= " $_ \n " foreach keys %keys ;
231
- }
232
- elsif ($action eq ' sudo' )
233
- {
234
- $server or error __" Please specify server" ;
235
- my $serv = $schema -> resultset(' Server' )-> search({
236
- ' me.name' => $server ,
237
- })-> next
238
- or error __x" Server {server} not found" , server => $server ;
239
- $output .= $serv -> sudo if $serv -> sudo;
240
- }
241
- elsif ($action eq ' update' )
242
- {
243
- $server or error " Please specify server" ;
244
- my $update =
245
- my $data = request-> body;
246
- # Valid?
247
- my $decoded ;
248
- try { $decoded = decode_json $data };
249
- error " Unable to decode request body data as JSON: $@ "
250
- if $@ ;
251
-
252
- my %update ;
253
- $update {update_result } = $decoded -> {update_result }
254
- or error __" Please specify update result" ;
255
- $update {update_datetime } = $decoded -> {update_datetime }
256
- or error __" Update datetime required" ;
257
- $update {restart_required } = $decoded -> {restart_required }
258
- or error __" Please specify update restart_required" ;
259
- $update {os_version } = $decoded -> {os_version }
260
- or error __" Please specify update os_version" ;
261
- $update {backup_verify } = $decoded -> {backup_verify };
262
- defined $update {backup_verify }
263
- or error __" Please specify update backup_verify" ;
264
- my ($serv ) = $schema -> resultset(' Server' )-> search({
265
- ' me.name' => $server ,
266
- });
267
- $serv -> update({
268
- update_datetime => DateTime-> from_epoch(epoch => $update {update_datetime }),
269
- update_result => $update {update_result },
270
- restart_required => $update {restart_required },
271
- os_version => $update {os_version },
272
- backup_verify => $update {backup_verify },
273
- });
274
- }
275
- else {
276
- die " Unknown action $action " ;
277
- }
127
+ my $return = $cdb -> run_cert(
128
+ server => query_parameters-> get(' server' ),
129
+ action => query_parameters-> get(' action' ),
130
+ param => query_parameters-> get(' param' ),
131
+ );
278
132
279
133
content_type ' application/json' ;
280
134
encode_json({
281
135
" is_error" => 0,
282
- " result" => $output ,
136
+ " result" => $return ,
283
137
});
284
138
};
285
139
0 commit comments