예제 #1
0
 /**
  * The getExpired call should return an asset which file expired
  * yesterday.
  */
 function testGetExpiredYesterday()
 {
     $assetId = '096dfa489bc3f21df56eded2143843f135ae967e';
     $asset = $this->storage->save('IMAGE', array('_' => array('file' => $this->testfile)));
     $date = date('Y/m/d', strtotime('-1 days'));
     $viewToday = self::$BUCKET . 'expiry/' . $date . '/' . $assetId;
     mkdir(dirname($viewToday), 0755, true);
     symlink(dirname(binarypool_config::getRoot() . $asset), $viewToday);
     $this->assertEqual(array('test/09/096dfa489bc3f21df56eded2143843f135ae967e/index.xml'), binarypool_browser::getExpired('test'));
 }
예제 #2
0
파일: expire.php 프로젝트: pneff/binarypool
function cleanSymlinks()
{
    // Do symlink cleanup
    printf("[%10s] Cleaning up symlinks.\n", 'FINAL');
    $cmd = binarypool_config::getUtilityPath('symlinks');
    system("{$cmd} -cdrs " . binarypool_config::getRoot() . "*/created");
    system("{$cmd} -cdrs " . binarypool_config::getRoot() . "*/expiry");
    system("{$cmd} -cdrsv " . binarypool_config::getRoot() . "*/downloaded |grep '/dev/null' |xargs -0 rm");
}
cleanSymlinks();
// Walk through each bucket
$buckets = binarypool_config::getBuckets();
foreach (array_keys($buckets) as $bucket) {
    $storage = new binarypool_storage($bucket);
    printf("[%10s] Fetching list of expired binaries.\n", $bucket);
    $expired = binarypool_browser::getExpired($bucket);
    printf("[%10s] %d expired.\n", $bucket, $expired);
    foreach ($expired as $asset) {
        try {
            if (binarypool_expiry::isExpired($bucket, $asset)) {
                printf("[%10s] Deleting %s\n", $bucket, $asset);
                $storage->delete($asset);
            }
        } catch (binarypool_exception $e) {
            if ($e->getCode() == 112) {
                printf("[%10s] Asset does not exist %s\n", $bucket, $asset);
            } else {
                throw $e;
            }
        }
    }