Changeset 16099

Show
Ignore:
Timestamp:
04/15/08 17:29:48 (5 months ago)
Author:
rambo
Message:

forward port r16098

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midcom/midcom.helper.replicator/exporter/staging2live.php

    r16097 r16099  
    5959        if (isset($this->exportability[$object->guid])) 
    6060        { 
     61            /* 
    6162            $GLOBALS['midcom_helper_replicator_logger']->push_prefix('exporter'); 
    6263            $GLOBALS['midcom_helper_replicator_logger']->log_object($object, "\$this->exportability already set, returning " . (int)$this->exportability[$object->guid]); 
    6364            $GLOBALS['midcom_helper_replicator_logger']->pop_prefix(); 
     65            */ 
    6466            return $this->exportability[$object->guid]; 
    6567        } 
     
    317319    function serialize_children(&$object) 
    318320    { 
    319         $GLOBALS['midcom_helper_replicator_logger']->log_object($object, "serialize_children called"); 
     321        //$GLOBALS['midcom_helper_replicator_logger']->log_object($object, "serialize_children called"); 
    320322        $serializations = array(); 
    321323        if (   $object->metadata->deleted 
  • trunk/midcom/midcom.helper.replicator/queuemanager.php

    r16097 r16099  
    8585     * @todo refactor to smaller methods 
    8686     * @todo query for subscriptions only once 
     87     * @todo raise UIMessage in style of 'N object queued to subscription X' 
    8788     */ 
    8889    function add_to_queue(&$object, $rewrite_to_delete = false) 
     
    219220                { 
    220221                    $msg = "Marked GUID '{$export_guid}' as exported to queue \"{$subscription->title}\""; 
    221                     $GLOBALS['midcom_helper_replicator_logger']->log($msg); 
     222                    //$GLOBALS['midcom_helper_replicator_logger']->log($msg); 
    222223                    debug_add($msg); 
    223224                } 
     
    237238    } 
    238239 
    239     /** 
    240      * Gets/creates the path for subscriptions spool dir 
    241      * @todo make a smarter recursive directory creator 
    242      */ 
    243     function _get_subscription_basedir(&$subscription) 
     240    function list_path_items($path) 
     241    { 
     242        $path = preg_replace('%/{2,}|/$%', '', $path); 
     243        $ret = array(); 
     244        $dp = opendir($path); 
     245        if (!$dp) 
     246        { 
     247            return false; 
     248        } 
     249         
     250        while (($file_name = readdir($dp)) !== false) 
     251        { 
     252            if (   $file_name == '.' 
     253                || $file_name == '..') 
     254            { 
     255                continue; 
     256            } 
     257            $file_path = "{$path}/{$file_name}"; 
     258            if (is_dir($file_path)) 
     259            { 
     260                $ret = array_merge($ret, midcom_helper_replicator_queuemanager::list_path_items($file_path)); 
     261                continue; 
     262            } 
     263            $ret[] = $file_path; 
     264        } 
     265        closedir($dp); 
     266 
     267        sort($ret); 
     268        return $ret; 
     269    } 
     270 
     271    function get_sg_basedir(&$subscription) 
    244272    { 
    245273        // Normalize basedir, no trailing slash and no consecutive slashes 
     
    259287            debug_pop(); 
    260288        } 
    261  
    262289        // Append sitegroup name 
    263290        $sitegroup_base = "{$global_base}/" . $this->safe_sg_name($subscription->sitegroup); 
     
    276303            debug_pop(); 
    277304        } 
     305        return $sitegroup_base; 
     306    } 
     307 
     308    /** 
     309     * Gets/creates the path for subscriptions spool dir 
     310     * @todo make a smarter recursive directory creator 
     311     */ 
     312    function get_subscription_basedir(&$subscription) 
     313    { 
     314        $sitegroup_base = $this->get_sg_basedir($subscription); 
     315        if ($sitegroup_base === false) 
     316        { 
     317            return false; 
     318        } 
    278319 
    279320        $subscription_path = "{$sitegroup_base}/{$subscription->guid}"; 
     
    294335    } 
    295336 
    296     function _get_subscription_quarantine_basedir(&$subscription) 
    297     { 
    298         $global_base = $this->_config->get('queue_root_dir'); 
    299         if (!is_dir($global_base)) 
    300         { 
    301             // The configuration key might have dynamic part to it 
    302             debug_push_class(__CLASS__, __FUNCTION__);     
    303             debug_add("directory {$global_base} does not exist, creating", MIDCOM_LOG_DEBUG); 
    304             if (!mkdir($global_base)) 
    305             { 
    306                 // TODO: Error reporting 
    307                 debug_add("could not create directory {$global_base}", MIDCOM_LOG_ERROR); 
    308                 debug_pop(); 
    309                 return false; 
    310             } 
    311             debug_pop(); 
    312         } 
    313          
    314         // Append sitegroup name 
    315         $sitegroup_base = "{$global_base}/" . $this->safe_sg_name($subscription->sitegroup); 
    316         if (!is_dir($sitegroup_base)) 
    317         { 
    318             // The configuration key might have dynamic part to it 
    319             debug_push_class(__CLASS__, __FUNCTION__);     
    320             debug_add("directory {$sitegroup_base} does not exist, creating", MIDCOM_LOG_DEBUG); 
    321             if (!mkdir($sitegroup_base)) 
    322             { 
    323                 // TODO: Error reporting 
    324                 debug_add("could not create directory {$sitegroup_base}", MIDCOM_LOG_ERROR); 
    325                 debug_pop(); 
    326                 return false; 
    327             } 
    328             debug_pop(); 
    329         }         
     337    function get_subscription_quarantine_basedir(&$subscription) 
     338    { 
     339        $sitegroup_base = $this->get_sg_basedir($subscription); 
     340        if ($sitegroup_base === false) 
     341        { 
     342            return false; 
     343        } 
     344 
    330345        $subscription_path = "{$sitegroup_base}/{$subscription->guid}-quarantine"; 
    331346        if (!is_dir($subscription_path)) 
     
    347362    function _get_subscription_quarantine_queuedir(&$subscription) 
    348363    { 
    349         $quarantine_path = $this->_get_subscription_quarantine_basedir($subscription); 
     364        $quarantine_path = $this->get_subscription_quarantine_basedir($subscription); 
    350365        if ($quarantine_path === false) 
    351366        { 
     
    373388    function _get_subscription_queue_basedir(&$subscription) 
    374389    { 
    375         $subscription_path = $this->_get_subscription_basedir($subscription); 
     390        $subscription_path = $this->get_subscription_basedir($subscription); 
    376391        if ($subscription_path === false) 
    377392        { 
     
    462477    } 
    463478 
    464  
    465479    /** 
    466480     * Helper for process_queue, removes processed items, quarantines failed ones 
     
    484498                continue; 
    485499            } 
    486             $GLOBALS['midcom_helper_replicator_logger']->log("File {$item_path} removed from queue \"{$subscription->title}\""); 
     500            //$GLOBALS['midcom_helper_replicator_logger']->log("File {$item_path} removed from queue \"{$subscription->title}\""); 
    487501            unset($items_paths[$item_key]); 
    488502        } 
     
    493507        debug_pop(); 
    494508    } 
     509 
     510 
    495511 
    496512    /** 
     
    539555                return false; 
    540556            } 
    541             $GLOBALS['midcom_helper_replicator_logger']->log("Read {$item_key} from queue \"{$subscription->title}\" file {$item_path}"); 
     557            //$GLOBALS['midcom_helper_replicator_logger']->log("Read {$item_key} from queue \"{$subscription->title}\" file {$item_path}"); 
    542558            $items_paths[$item_key] = $item_path; 
    543559            unset($item_key, $item_path); 
     
    648664    /** 
    649665     * Helper for process_queue, processes given subscriptions queues 
     666     * @todo use list_path_items ?? 
    650667     */ 
    651668    function _process_queue_subscription(&$subscription) 
    652669    { 
    653670        debug_push_class(__CLASS__, __FUNCTION__); 
    654         $subscription_path = $this->_get_subscription_basedir($subscription); 
     671        $subscription_path = $this->get_subscription_basedir($subscription); 
    655672        if ($subscription_path === false) 
    656673        { 
  • trunk/midcom/midcom.helper.replicator/style/midcom-helper-replicator-list.php

    r11338 r16099  
    22 
    33<?php 
    4 // Check queue directory status 
     4// FIXME: the configs may have all kinds of dynamic parts, also should be per subscription 
    55if (!is_dir($data['local_config']->get('queue_root_dir'))) 
    66{ 
     
    4141        <thead> 
    4242            <tr> 
     43                <th><abbr title="<?php echo $_MIDCOM->i18n->get_string('queued / quarantined items', 'midcom.helper.replicator'); ?>"><?php echo $_MIDCOM->i18n->get_string('status', 'midcom.helper.replicator'); ?></abbr></th> 
    4344                <th><?php echo $_MIDCOM->i18n->get_string('subscription', 'midcom.helper.replicator'); ?></th> 
    4445                <th><?php echo $_MIDCOM->i18n->get_string('exporter', 'midcom.helper.replicator'); ?></th> 
     
    4849        <tbody> 
    4950            <?php 
     51            $qm =& midcom_helper_replicator_queuemanager::get(); 
    5052            foreach ($data['subscriptions'] as $subscription) 
    5153            { 
    5254                $transporter = midcom_helper_replicator_transporter::create($subscription); 
     55                $queued_items = $qm->list_path_items($qm->get_subscription_basedir($subscription)); 
     56                $quarantined_items = $qm->list_path_items($qm->get_subscription_quarantine_basedir($subscription)); 
    5357                ?> 
    5458                <tr> 
     59                    <td><?php echo count($queued_items) . '&nbsp;/&nbsp;' . count($quarantined_items); ?></td> 
    5560                    <td><a href="&(prefix);edit/&(subscription.guid);/">&(subscription.title);</a></th> 
    5661                    <td><?php echo $_MIDCOM->i18n->get_string($data['schemadb'][$subscription->exporter]->description, 'midcom.helper.replicator'); ?></td> 
    57                     <td><?php echo $transporter->get_information(); ?></td> 
     62                    <td class="subscription_info"><?php echo $transporter->get_information(); ?></td> 
    5863                </tr> 
    5964                <?php