Fix some things with the update checker.

This commit is contained in:
James Cole
2018-08-17 21:51:15 +02:00
parent a8080f55f0
commit 81d17409d4
5 changed files with 26 additions and 7 deletions

View File

@@ -31,7 +31,7 @@ LOG_CHANNEL=stdout
# debug, info, notice, warning, error, critical, alert, emergency # debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably # If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever. # nothing will get logged, ever.
APP_LOG_LEVEL=notice APP_LOG_LEVEL=${APP_LOG_LEVEL}
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III # Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# For other database types, please see the FAQ: http://firefly-iii.readthedocs.io/en/latest/support/faq.html # For other database types, please see the FAQ: http://firefly-iii.readthedocs.io/en/latest/support/faq.html

View File

@@ -28,6 +28,7 @@ namespace FireflyIII\Handlers\Events;
use FireflyConfig; use FireflyConfig;
use FireflyIII\Events\RequestedVersionCheckStatus; use FireflyIII\Events\RequestedVersionCheckStatus;
use FireflyIII\Helpers\Update\UpdateTrait; use FireflyIII\Helpers\Update\UpdateTrait;
use FireflyIII\Models\Configuration;
use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Log; use Log;
@@ -50,9 +51,11 @@ class VersionCheckEventHandler
*/ */
public function checkForUpdates(RequestedVersionCheckStatus $event): void public function checkForUpdates(RequestedVersionCheckStatus $event): void
{ {
Log::debug('Now in checkForUpdates()');
// in Sandstorm, cannot check for updates: // in Sandstorm, cannot check for updates:
$sandstorm = 1 === (int)getenv('SANDSTORM'); $sandstorm = 1 === (int)getenv('SANDSTORM');
if (true === $sandstorm) { if (true === $sandstorm) {
Log::debug('This is Sandstorm instance, done.');
return; // @codeCoverageIgnore return; // @codeCoverageIgnore
} }
@@ -61,18 +64,19 @@ class VersionCheckEventHandler
/** @var User $user */ /** @var User $user */
$user = $event->user; $user = $event->user;
if (!$repository->hasRole($user, 'owner')) { if (!$repository->hasRole($user, 'owner')) {
Log::debug('User is not admin, done.');
return; return;
} }
/** @var Configuration $lastCheckTime */
$lastCheckTime = FireflyConfig::get('last_update_check', time()); $lastCheckTime = FireflyConfig::get('last_update_check', time());
$now = time(); $now = time();
$diff = $now - $lastCheckTime->data; $diff = $now - $lastCheckTime->data;
Log::debug(sprintf('Difference is %d seconds.', $diff)); Log::debug(sprintf('Last check time is %d, current time is %d, difference is %d', $lastCheckTime->data, $now, $diff));
if ($diff < 604800) { if ($diff < 604800) {
Log::debug(sprintf('Checked for updates less than a week ago (on %s).', date('Y-m-d H:i:s', $lastCheckTime->data))); Log::debug(sprintf('Checked for updates less than a week ago (on %s).', date('Y-m-d H:i:s', $lastCheckTime->data)));
//return; return;
} }
// last check time was more than a week ago. // last check time was more than a week ago.
Log::debug('Have not checked for a new version in a week!'); Log::debug('Have not checked for a new version in a week!');

View File

@@ -42,6 +42,7 @@ trait UpdateTrait
*/ */
public function getLatestRelease(): ?Release public function getLatestRelease(): ?Release
{ {
Log::debug('Now in getLatestRelease()');
$return = null; $return = null;
/** @var UpdateRequest $request */ /** @var UpdateRequest $request */
$request = app(UpdateRequest::class); $request = app(UpdateRequest::class);
@@ -53,11 +54,15 @@ trait UpdateTrait
// get releases from array. // get releases from array.
$releases = $request->getReleases(); $releases = $request->getReleases();
Log::debug(sprintf('Found %d releases', \count($releases)));
if (\count($releases) > 0) { if (\count($releases) > 0) {
// first entry should be the latest entry: // first entry should be the latest entry:
/** @var Release $first */ /** @var Release $first */
$first = reset($releases); $first = reset($releases);
$return = $first; $return = $first;
Log::debug(sprintf('Number of releases found is larger than zero. Return %s ', $first->getTitle()));
} }
return $return; return $return;
@@ -73,17 +78,21 @@ trait UpdateTrait
*/ */
public function parseResult(int $versionCheck, Release $release = null): string public function parseResult(int $versionCheck, Release $release = null): string
{ {
Log::debug(sprintf('Now in parseResult(%d)', $versionCheck));
$current = (string)config('firefly.version'); $current = (string)config('firefly.version');
$return = ''; $return = '';
if ($versionCheck === -2) { if ($versionCheck === -2) {
Log::debug('-2, so give error.');
$return = (string)trans('firefly.update_check_error'); $return = (string)trans('firefly.update_check_error');
} }
if ($versionCheck === -1 && null !== $release) { if ($versionCheck === -1 && null !== $release) {
Log::debug('New version!');
// there is a new FF version! // there is a new FF version!
// has it been released for at least three days? // has it been released for at least three days?
$today = new Carbon; $today = new Carbon;
$releaseDate = $release->getUpdated(); $releaseDate = $release->getUpdated();
if ($today->diffInDays($releaseDate, true) > 3) { if ($today->diffInDays($releaseDate, true) > 3) {
Log::debug('New version is older than 3 days!');
$monthAndDayFormat = (string)trans('config.month_and_day'); $monthAndDayFormat = (string)trans('config.month_and_day');
$return = (string)trans( $return = (string)trans(
'firefly.update_new_version_alert', 'firefly.update_new_version_alert',
@@ -97,10 +106,12 @@ trait UpdateTrait
} }
if (0 === $versionCheck) { if (0 === $versionCheck) {
Log::debug('User is running current version.');
// you are running the current version! // you are running the current version!
$return = (string)trans('firefly.update_current_version_alert', ['version' => $current]); $return = (string)trans('firefly.update_current_version_alert', ['version' => $current]);
} }
if (1 === $versionCheck && null !== $release) { if (1 === $versionCheck && null !== $release) {
Log::debug('User is running NEWER version.');
// you are running a newer version! // you are running a newer version!
$return = (string)trans('firefly.update_newer_version_alert', ['your_version' => $current, 'new_version' => $release->getTitle()]); $return = (string)trans('firefly.update_newer_version_alert', ['your_version' => $current, 'new_version' => $release->getTitle()]);
} }
@@ -117,7 +128,9 @@ trait UpdateTrait
*/ */
public function versionCheck(Release $release = null): int public function versionCheck(Release $release = null): int
{ {
Log::debug('Now in versionCheck()');
if (null === $release) { if (null === $release) {
Log::debug('Release is null, return -2.');
return -2; return -2;
} }
$current = (string)config('firefly.version'); $current = (string)config('firefly.version');

View File

@@ -136,8 +136,8 @@ class DebugController extends Controller
$errorReporting = $this->errorReporting((int)ini_get('error_reporting')); $errorReporting = $this->errorReporting((int)ini_get('error_reporting'));
$appEnv = env('APP_ENV', ''); $appEnv = env('APP_ENV', '');
$appDebug = var_export(env('APP_DEBUG', false), true); $appDebug = var_export(env('APP_DEBUG', false), true);
$logChannel = env('LOG_CHANNEL', ''); $logChannel = env('LOG_CHANNEL', '');
$appLogLevel = env('APP_LOG_LEVEL', ''); $appLogLevel = env('APP_LOG_LEVEL', 'info');
$packages = $this->collectPackages(); $packages = $this->collectPackages();
$cacheDriver = env('CACHE_DRIVER', 'unknown'); $cacheDriver = env('CACHE_DRIVER', 'unknown');

View File

@@ -118,9 +118,11 @@ class FireflyConfig
public function set(string $name, $value): Configuration public function set(string $name, $value): Configuration
{ {
Log::debug('Set new value for ', ['name' => $name]); Log::debug('Set new value for ', ['name' => $name]);
/** @var Configuration $config */
$config = Configuration::whereName($name)->first(); $config = Configuration::whereName($name)->first();
if (null === $config) { if (null === $config) {
Log::debug('Does not exist yet ', ['name' => $name]); Log::debug('Does not exist yet ', ['name' => $name]);
/** @var Configuration $item */
$item = new Configuration; $item = new Configuration;
$item->name = $name; $item->name = $name;
$item->data = $value; $item->data = $value;
@@ -130,7 +132,7 @@ class FireflyConfig
return $item; return $item;
} }
Log::debug('Exists already ', ['name' => $name]); Log::debug('Exists already, overwrite value.', ['name' => $name]);
$config->data = $value; $config->data = $value;
$config->save(); $config->save();
Cache::forget('ff-config-' . $name); Cache::forget('ff-config-' . $name);