Changeset 1853

Show
Ignore:
Timestamp:
01/05/12 16:19:12 (5 months ago)
Author:
Dylan
Message:

unxsVZ migration of stopped containers work continues.

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/jobqueue.c

    r1852 r1853  
    15131513        unsigned uTargetDatacenter=0; 
    15141514        unsigned uIPv4=0; 
    1515         unsigned uStatus=0; 
     1515        unsigned uPrevStatus=0; 
    15161516 
    15171517        sscanf(cJobData,"uTargetNode=%u;",&uTargetNode); 
     
    15231523        } 
    15241524 
    1525         if(GetContainerStatus(uContainer,&uStatus)) 
    1526         { 
    1527                 logfileLine("MigrateContainer","GetContainerStatus() failed"); 
    1528                 tJobErrorUpdate(uJob,"GetContainerStatus()"); 
    1529                 return; 
    1530         } 
    15311525 
    15321526        sscanf(cJobData,"uTargetNode=%*u;\nuIPv4=%u;",&uIPv4); 
     
    15511545                logfileLine("MigrateContainer","Could not determine cTargetNodeIPv4"); 
    15521546                tJobErrorUpdate(uJob,"cTargetNodeIPv4"); 
     1547                return; 
     1548        } 
     1549 
     1550        sscanf(cJobData,"uTargetNode=%*u;\nuIPv4=%*u;\nuPrevStatus=%u;",&uPrevStatus); 
     1551        if(uPrevStatus!=uACTIVE || uPrevStatus!=uSTOPPED) 
     1552        { 
     1553                logfileLine("MigrateContainer","Could not determine uPrevStatus"); 
     1554                tJobErrorUpdate(uJob,"uPrevStatus==0"); 
    15531555                return; 
    15541556        } 
     
    15841586 
    15851587 
    1586         if(uStatus==uACTIVE) 
     1588        if(uPrevStatus==uACTIVE) 
    15871589        { 
    15881590                if(cSSHOptions[0]) 
     
    16411643 
    16421644        //Everything ok 
    1643         SetContainerStatus(uContainer,1);//Active 
     1645        SetContainerStatus(uContainer,uPrevStatus);//Previous to awaiting migration 
    16441646        SetContainerNode(uContainer,uTargetNode);//Migrated! 
    16451647        if(uIPv4 && uTargetDatacenter) 
  • trunk/tcontainerfunc.h

    r1852 r1853  
    102102void htmlContainerMount(unsigned uContainer); 
    103103unsigned MigrateContainerJob(unsigned uDatacenter, unsigned uNode, unsigned uContainer, unsigned uTargetNode, 
    104                         unsigned uOwner, unsigned uLoginClient, unsigned uIPv4); 
     104                        unsigned uOwner, unsigned uLoginClient, unsigned uIPv4,unsigned uPrevStatus); 
    105105unsigned CloneContainerJob(unsigned uDatacenter, unsigned uNode, unsigned uContainer, 
    106106                                unsigned uTargetNode, unsigned uNewVeid, unsigned uPrevStatus, 
     
    27742774                                        ChangeGroup(uContainer,uGroup); 
    27752775 
    2776                                 if(MigrateContainerJob(uDatacenter,uNode,uContainer,uTargetNode,uOwner,guLoginClient,0)) 
     2776                                if(MigrateContainerJob(uDatacenter,uNode,uContainer,uTargetNode,uOwner,guLoginClient,0,uStatus)) 
    27772777                                { 
    27782778                                        uStatus=uAWAITMIG; 
    2779                                         SetContainerStatus(uContainer,21);//Awaiting Migration 
     2779                                        SetContainerStatus(uContainer,uAWAITMIG);//Awaiting Migration 
    27802780                                        sscanf(ForeignKey("tContainer","uModDate",uContainer),"%lu",&uModDate); 
    27812781                                        tContainer("MigrateContainerJob() Done"); 
     
    28672867                                        ChangeGroup(uContainer,uGroup); 
    28682868 
    2869                                 if(MigrateContainerJob(uDatacenter,uNode,uContainer,uTargetNode,uOwner,guLoginClient,uWizIPv4)) 
     2869                                if(MigrateContainerJob(uDatacenter,uNode,uContainer,uTargetNode,uOwner,guLoginClient,uWizIPv4,uStatus)) 
    28702870                                { 
    28712871                                        char cIPOld[32]={""}; 
    28722872 
    28732873                                        uStatus=uAWAITMIG; 
    2874                                         SetContainerStatus(uContainer,21);//Awaiting Migration 
     2874                                        SetContainerStatus(uContainer,uAWAITMIG);//Awaiting Migration 
    28752875 
    28762876                                        //Mark IP used 
     
    50205020 
    50215021unsigned MigrateContainerJob(unsigned uDatacenter, unsigned uNode, unsigned uContainer, unsigned uTargetNode, 
    5022                         unsigned uOwner, unsigned uLoginClient, unsigned uIPv4) 
     5022                        unsigned uOwner, unsigned uLoginClient, unsigned uIPv4,unsigned uPrevStatus) 
    50235023{ 
    50245024        unsigned uCount=0; 
     
    50285028                        ",uJobDate=UNIX_TIMESTAMP(NOW())+60" 
    50295029                        ",uJobStatus=1" 
    5030                         ",cJobData='uTargetNode=%u;\nuIPv4=%u;'" 
     5030                        ",cJobData='uTargetNode=%u;\nuIPv4=%u;\nuPrevStatus=%u;\n'" 
    50315031                        ",uOwner=%u,uCreatedBy=%u,uCreatedDate=UNIX_TIMESTAMP(NOW())", 
    50325032                                uContainer,uTargetNode, 
     
    50345034                                uTargetNode, 
    50355035                                uIPv4, 
     5036                                uPrevStatus, 
    50365037                                uOwner,uLoginClient); 
    50375038        mysql_query(&gMysql,gcQuery);