Changeset 15779

Show
Ignore:
Timestamp:
03/19/08 14:10:33 (5 months ago)
Author:
bergie
Message:

Try to deal with replicating SGn objects when in SG0 context

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midcom/midcom.helper.replicator/config/config.inc

    r5013 r15779  
    1 'queue_root_dir' => '/var/spool/midgard/replicator_queue/' . midcom_helper_replicator_queuemanager::safe_sg_name()
     1'queue_root_dir' => '/var/spool/midgard/replicator_queue/'
    22'log_filename'   => "{$GLOBALS['midcom_config']['log_filename']}.replicator", 
  • trunk/midcom/midcom.helper.replicator/exporter.php

    r15234 r15779  
    453453            case (is_a($object, 'midcom_core_login_session_db')): 
    454454            // Never replicate across SG borders 
    455             case ($object->sitegroup != $_MIDGARD['sitegroup']): 
     455            case ($object->sitegroup != $this->subscription->sitegroup): 
    456456                $this->exportability[$object->guid] = false; 
    457457                break; 
  • trunk/midcom/midcom.helper.replicator/exporter/fulldump.php

    r13625 r15779  
    119119        } 
    120120        // Only dump objects in current SG, otherwise SG0 objects will cause issues... 
    121         $qb->add_constraint('sitegroup', '=', $_MIDGARD['sitegroup']); 
     121        $qb->add_constraint('sitegroup', '=', $this->subscription->sitegroup); 
    122122        // REMINDER: we can't use include_deleted with MidCOM QB. 
    123123        $objects = $qb->execute(); 
  • trunk/midcom/midcom.helper.replicator/queuemanager.php

    r15194 r15779  
    9191        debug_push_class(__CLASS__, __FUNCTION__); 
    9292        $qb = midcom_helper_replicator_subscription_dba::new_query_builder(); 
     93        $qb->add_constraint('sitegroup', '=', $object->sitegroup); 
    9394        // NOTE: if this constraint is changed see can_add_to_queue() 
    9495        $qb->add_constraint('status', '=', MIDCOM_REPLICATOR_AUTOMATIC); 
     
    252253            debug_pop(); 
    253254        } 
    254         $subscription_path = "{$global_base}/{$subscription->guid}"; 
     255         
     256        // Append sitegroup name 
     257        $sitegroup_base = "{$global_base}/" . $this->safe_sg_name($subscription->sitegroup); 
     258        if (!is_dir($sitegroup_base)) 
     259        { 
     260            // The configuration key might have dynamic part to it 
     261            debug_push_class(__CLASS__, __FUNCTION__);     
     262            debug_add("directory {$sitegroup_base} does not exist, creating", MIDCOM_LOG_DEBUG); 
     263            if (!mkdir($sitegroup_base)) 
     264            { 
     265                // TODO: Error reporting 
     266                debug_add("could not create directory {$sitegroup_base}", MIDCOM_LOG_ERROR); 
     267                debug_pop(); 
     268                return false; 
     269            } 
     270            debug_pop(); 
     271        } 
     272         
     273        $subscription_path = "{$sitegroup_base}/{$subscription->guid}"; 
    255274        if (!is_dir($subscription_path)) 
    256275        { 
     
    286305            debug_pop(); 
    287306        } 
    288         $subscription_path = "{$global_base}/{$subscription->guid}-quarantine"; 
     307         
     308        // Append sitegroup name 
     309        $sitegroup_base = "{$global_base}/" . $this->safe_sg_name($subscription->sitegroup); 
     310        if (!is_dir($sitegroup_base)) 
     311        { 
     312            // The configuration key might have dynamic part to it 
     313            debug_push_class(__CLASS__, __FUNCTION__);     
     314            debug_add("directory {$sitegroup_base} does not exist, creating", MIDCOM_LOG_DEBUG); 
     315            if (!mkdir($sitegroup_base)) 
     316            { 
     317                // TODO: Error reporting 
     318                debug_add("could not create directory {$sitegroup_base}", MIDCOM_LOG_ERROR); 
     319                debug_pop(); 
     320                return false; 
     321            } 
     322            debug_pop(); 
     323        }         
     324        $subscription_path = "{$sitegroup_base}/{$subscription->guid}-quarantine"; 
    289325        if (!is_dir($subscription_path)) 
    290326        { 
     
    680716     * statically callable method to get url/filesystem safe name for current SG name 
    681717     */ 
    682     function safe_sg_name() 
    683     { 
    684         if ($_MIDGARD['sitegroup'] == 0) 
     718    function safe_sg_name($sitegroup = null) 
     719    { 
     720        if (is_null($sitegroup)) 
     721        { 
     722            $sitegroup = $_MIDGARD['sitegroup']; 
     723        } 
     724         
     725        if ($sitegroup == 0) 
    685726        { 
    686727            return 'sg0'; 
    687728        } 
    688         $sg = mgd_get_sitegroup($_MIDGARD['sitegroup']); 
     729         
     730        $sg = mgd_get_sitegroup($sitegroup); 
    689731        if (   !is_object($sg) 
    690732            || empty($sg->name))