Skip to content

Commit

Permalink
container first commit (CFM-145)
Browse files Browse the repository at this point in the history
  • Loading branch information
skoranda committed May 19, 2023
1 parent 552291f commit 3c6f3d2
Show file tree
Hide file tree
Showing 20 changed files with 3,264 additions and 43 deletions.
109 changes: 66 additions & 43 deletions app/config/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -351,49 +351,72 @@
/**
* Configures logging options
*/
'Log' => [
'debug' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'debug',
'url' => env('LOG_DEBUG_URL', null),
'scopes' => false,
'levels' => ['notice', 'info', 'debug'],
],
'error' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'error',
'url' => env('LOG_ERROR_URL', null),
'scopes' => false,
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
],
// To enable this dedicated query log, you need set your datasource's log flag to true
'queries' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'queries',
'url' => env('LOG_QUERIES_URL', null),
'scopes' => ['queriesLog'],
],
// We define a trace level for what is really debugging, except debug level
// will write to stdout instead of the log when debug=true
'trace' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'trace',
'url' => env('LOG_TRACE_URL', null),
'scopes' => ['trace'],
],
// We define a rules level to record application rule execution
'rule' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'rule',
'url' => env('LOG_TRACE_URL', null),
'scopes' => ['rule'],
]
],
'Log' => null !== env('COMANAGE_REGISTRY_CONTAINER', null)
// Configuration for container deployments
? [
'debug' => [
'className' => 'Cake\Log\Engine\ConsoleLog',
'stream' => 'php://stdout',
'outputAs' => 0,
'scopes' => false,
'levels' => ['notice', 'info', 'debug'],
],
'error' => [
'className' => 'Cake\Log\Engine\ConsoleLog',
'stream' => 'php://stderr',
'outputAs' => 0,
'scopes' => false,
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
],
'queries' => [
'className' => 'Cake\Log\Engine\ConsoleLog',
'stream' => 'php://stdout',
'outputAs' => 0,
'scopes' => ['queriesLog']
],
'trace' => [
'className' => 'Cake\Log\Engine\ConsoleLog',
'stream' => 'php://stdout',
'outputAs' => 0,
'scopes' => ['trace'],
]
]
// Configuration for tranditional deployments
: [
'debug' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'debug',
'url' => env('LOG_DEBUG_URL', null),
'scopes' => false,
'levels' => ['notice', 'info', 'debug'],
],
'error' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'error',
'url' => env('LOG_ERROR_URL', null),
'scopes' => false,
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
],
// To enable this dedicated query log, you need set your datasource's log flag to true
'queries' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'queries',
'url' => env('LOG_QUERIES_URL', null),
'scopes' => ['queriesLog'],
],
// We define a trace level for what is really debugging, except debug level
// will write to stdout instead of the log when debug=true
'trace' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'trace',
'url' => env('LOG_TRACE_URL', null),
'scopes' => ['trace'],
]
],

/**
* Session configuration.
Expand Down
104 changes: 104 additions & 0 deletions app/src/Command/TestCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?php
/**
* COmanage Registry Test Command
*
* Portions licensed to the University Corporation for Advanced Internet
* Development, Inc. ("UCAID") under one or more contributor license agreements.
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership.
*
* UCAID licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @link https://www.internet2.edu/comanage COmanage Project
* @package registry
* @since COmanage Registry v5.0.0
* @license Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/

declare(strict_types=1);

namespace App\Command;

use Cake\Console\Arguments;
use Cake\Console\Command;
use Cake\Console\ConsoleIo;
use Cake\Console\ConsoleOptionParser;
use Cake\Datasource\ConnectionManager;

class TestCommand extends Command
{
protected $io = null;

/**
* Register command specific options.
*
* @param ConsoleOptionParser $parser Console Option Parser
* @return ConsoleOptionParser Console Option Parser
* @since COmanage Registry v5.0.0
*/

public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionParser
{
$parser->addOption('test', [
'help' => __d('command', 'opt.test.test'),
'short' => 't',
'choices' => ['database']
])->addOption('datasource', [
'help' => __d('command', 'opt.test.database.source'),
'default' => 'default'
]);

return $parser;
}

/**
* Execute the Setup Command.
*
* @since COmanage Registry v5.0.0
* @param Arguments $args Command Arguments
* @param ConsoleIo $io Console IO
*/

public function execute(Arguments $args, ConsoleIo $io)
{
global $argv;

$this->io = $io;

// The test we want to run
$test = $args->getOption('test');

switch($test) {
case 'database':
$this->testDatabase($args->getOption('datasource'));
break;
}
}

/**
* Test database connectivity for the default
*/

protected function testDatabase(string $source): int {
try {
$cxn = ConnectionManager::get($source);
$this->io->out(__d('command', 'opt.test.database.ok'));
}
catch(\Exception $e) {
$this->io->error($e->getMessage());
$this->abort(static::CODE_ERROR);
}

return static::CODE_SUCCESS;
}
}
Loading

0 comments on commit 3c6f3d2

Please sign in to comment.