/** * @param $target_vol * @return bool */ public function ingest($target_vol) { static::$logger->addInfo("Ingest processing beginning"); $this->report[] = 'Ingest begins: volume set: ' . $target_vol; // TODO make a config parameter if (!static::$manager->has('staging://default/' . $target_vol)) { $msg = 'No such volume found in staging directory: nothing to do.'; static::$logger->alert(__CLASS__ . '::' . __FUNCTION__ . ': ' . $msg); $this->report[] = $msg; return false; } $this->target_vol = $target_vol; $ss = new SchemaService(); $this->schemas = $ss->schemas(); static::$logger->addInfo("Loaded " . count($this->schemas) . " schemas."); if (count($this->schemas) < 1) { static::$logger->addCritical("No schemas: run failed."); $this->report[] = 'No schemas found: run failed'; $this->errors[] = 'No schema documents found. The system requires at least a default schema.'; return false; } if (!($cnt = $this->loadSpools())) { static::$logger->addWarning("Nothing on spools: run failed."); $this->report[] = 'Nothing on the spools: run failed'; return false; } $this->report[] = 'Spooled: ' . $cnt . ' assets'; if (!static::$manager->has('default://' . $target_vol)) { if (!static::$manager->createDir('default://' . $target_vol)) { $msg = "Failed to make target directory: {$target_vol}"; $this->report[] = $msg . ': run failed'; $this->errors[] = $msg . ' Check file permissions for data directory.'; static::$logger->addCritical($msg . ': run failed.'); return false; } $msg = "Created target directory."; static::$logger->addInfo($msg); } $msg = "Begin despooling..."; $this->report[] = $msg; static::$logger->addInfo($msg); $mimeTypes = array_keys($this->spool); foreach ($mimeTypes as $mimeType) { foreach ($this->spool[$mimeType] as $file) { if (strpos($file, '.') !== 0) { $this->ingestAsset($mimeType, $file); } } } $msg = "Finished despooling. Processing complete."; $this->report[] = $msg; static::$logger->addInfo($msg); return true; }
public function schemaListPOST(Request $request, Response $response, $args) { $this->logger->info(__CLASS__ . '::' . __FUNCTION__); $parsed = $request->getParsedBody(); $fetch_me = $parsed['fetch_me']; $this->logger->info(__CLASS__ . '::' . __FUNCTION__ . ': fetch_me: ' . $fetch_me); $service = new SchemaService(); $this->logger->info(__CLASS__ . '::' . __FUNCTION__ . ': have SchemaService instance.'); $schemas = []; if ($fetch_me == 'all') { $this->logger->info(__CLASS__ . '::' . __FUNCTION__ . ': fetch all'); $schemas = $service->schemas(); } else { $this->logger->debug(__CLASS__ . '::' . __FUNCTION__ . ': $fetch_me: (mimeType): ' . $fetch_me); $schemas[$fetch_me] = $service->schema($fetch_me); } $this->logger->debug(__CLASS__ . '::' . __FUNCTION__ . ': count($schemas): ' . count($schemas)); $text = serialize($schemas); return $response->getBody()->write($text); }