Skip to content
Snippets Groups Projects
Select Git revision
  • f776ae3216a746d770645f8ec4d6ebe921a7c3b6
  • master default protected
2 results

20_Usage.md

Blame
  • convert_projects_2_rollout-plugins.php 3.91 KiB
    <?php
    /**
     * 
     * CRONJOB
     * deploy all queued packages
     * 
     */
    
    // http://iml:deployment@ci.iml.unibe.ch/deployment/?prj=ci&action=deploy&par3=preview&confirm=1
    
    $sDocroot = (dirname(__dir__)) . "/public_html";
    $processUser = posix_getpwuid(posix_geteuid());
    if ($processUser['name']=="root"){
        die("Do not start the script as user root\n");
    };
    
    require_once("$sDocroot/deployment/classes/logger.class.php");
    global $oCLog;
    $oCLog = new logger();
    
    require_once("$sDocroot/../config/inc_projects_config.php");
    require_once("$sDocroot/deployment/inc_functions.php");
    require_once("$sDocroot/deployment/classes/project.class.php");
    
    $aSkipped=array();
    $aUntouched=array();
    
    // ----------------------------------------------------------------------
    // FUNCTIONS
    // ----------------------------------------------------------------------
    
    function getUrl($s){
        return 'https://ci.iml.unibe.ch/deployment/'.$s.'/setup/';
    }
    
    
    // ----------------------------------------------------------------------
    // MAIN
    // ----------------------------------------------------------------------
    
    echo "\n";
    echo "===== IMLDEPLOYMENT - converter for rollout plugins\n";
    echo "\n";
    $oPrj1 = new project();
    
    foreach ($oPrj1->getProjects() as $sPrj) {
        $oPrj = new project($sPrj);
    
        echo "----- $sPrj:\n";
        $aCfg=$oPrj->getConfig();
    
        // NEXT STEPS:
        // test if a pluin was set already...
        if(isset($aCfg['deploy']['enabled_rollout_plugin'])){
            echo "SKIP: Project uses rollout plugin [".$aCfg['deploy']['enabled_rollout_plugin']."]\n";
        } else {
            
            echo "INFO: No rollout plugin is set - Project needs to be converted...\n";
            $bSave=false;
            
            if (preg_match('/_se$/', $aCfg['label'])){
                echo "UNTOUCHED: project ending with _se\n";
                $aUntouched[]=$sPrj.' - SE project - '.getUrl($sPrj);
                /*
                if ($aCfg['deploy']['enabled_rollout_plugin']){
                    $bSave=false;
                    echo "  CONFLICT: rollout plugin was set to [".$aCfg['deploy']['enabled_rollout_plugin']."]\n";
                    echo "  \n";
                }
                 * 
                 */
            } else {
                foreach (array_keys($aCfg['phases']) as $sPhase){
                    echo "--- phase $sPhase \n";
                    if ($aCfg['phases'][$sPhase]['hosts']){
                        $bSave=true;
                        echo "  TASK: target hosts detected: phases -> $sPhase -> hosts = " . $aCfg['phases'][$sPhase]['hosts'] . "\n";
                        echo "  - set plugin [ssh] for rollout\n";
                        $aCfg['deploy']['enabled_rollout_plugin']='ssh';
                        echo "  - set hosts for ssh plugin phases -> $sPhase -> plugins -> rollout -> ssh -> hosts = ".$aCfg['phases'][$sPhase]['hosts']."\n";
                        $aCfg['phases'][$sPhase]['plugins']['rollout']['ssh']['hosts']=$aCfg['phases'][$sPhase]['hosts'];
                    }
                }
                if(!$bSave){
                    echo "UNTOUCHED: No Deploy host was found.\n";
                    $aUntouched[]=$sPrj.' - no deploy host in any phase - '.getUrl($sPrj);    
                }
            }
            
            if($bSave){
                echo "INFO: save new config\n";
                $aCfg['id']=$sPrj;
                if ($oPrj->saveConfig($aCfg)) {
                    echo "  OK, config was saved \n";
                } else {
                    echo "  ERROR: config was NOT saved :-/ \n";
                    die("  Aborting\n\n");
                }
            } else {
                echo "SKIP: do NOT saving config.\n";
                $aSkipped[]=$sPrj;
            }
    
    
    
        }
            
    
        echo "\n";
    }
    
    echo "----------------------------------------------------------------------\n";
    echo "processed: ".count($oPrj1->getProjects())."\n";
    echo "skipped  : ".count($aSkipped)."\n";
    echo "untouched: ".count($aUntouched)." (watch them manually):\n";
    print_r($aUntouched);
    echo "done\n";