import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.buildforge.services.client.api.APIClientConnection;
import com.buildforge.services.client.dbo.Build;
import com.buildforge.services.client.dbo.Environment;
import com.buildforge.services.client.dbo.EnvironmentEntry;
import com.buildforge.services.client.dbo.Project;
import com.buildforge.services.common.ServiceException;


public class BFJavaServices {
 
 private static Log log = LogFactory.getLog(BFJavaServices.class);
 
 private static int ENVIRONMENT_BY_NAME = 1; // 1 Available , 0 : N/A

    /**
     * @param args
     */
    public static void main(String[] args) {
       
     System.out.println("BFJavaClient!!!");
     String hostname = "166.125.8.97";
     int bfPort = 3966;
     String projectName = "[DEV]HYIN_Label_Deploy";
     String envGroupName = "DEPLOY_REQ_Env";
     int envGroupID = 4;
     
     APIClientConnection conn;
       
        try {
         
   
   conn = new APIClientConnection(hostname, bfPort);
            conn.authUser("root", "root");
          
           
   Project project = Project.findByName(conn, projectName);
           
            log.debug( project.getProjectId() + "|" + project.getName() );
           
            //List<EnvironmentEntry> paramList = new ArrayList();
            List paramList = new ArrayList();
           
            Environment environ = null;
            
            if( ENVIRONMENT_BY_NAME == 0) {
             environ = Environment.findById(conn, envGroupID);
             log.debug(environ.getName());
            } else {
             // 좀 기분나쁘지만, 돌면서 찾아 내자.
             // 이름으로 먼저 찾아낸 후, 그 ID를 이용해서 실제로 다시 findById를 이용해야 한다.
             List envList = Environment.findAll(conn);  // 이건 껍데기만 찾아내는 것으로 보인다.
             for(int i=0; i < envList.size() ; i++) {
              Environment tempEnv = (Environment)envList.get(i);
              log.debug(tempEnv.getName());
              
              if( envGroupName.equals( tempEnv.getName()) ) {
               environ = tempEnv;
               log.debug("Matched Environment Group = " + environ.getName() + "|" + environ.getEnvGroupId() );
               environ = Environment.findById(conn, environ.getEnvGroupId());  // 이걸 왜 해야 하는지 이해는 안가지만.
               
               break;
              }
             }
            
            }
            List envEntryList  = environ.getEntries();
            log.debug( envEntryList );
           
//            for(int j=0; j < envEntryList.size() ; j++) {
//             EnvironmentEntry envEntry = (EnvironmentEntry)envEntryList.get(j);
//             log.debug(envEntry.getParameterName() + "|" + envEntry.getParameterValue() );
//            }
           
            EnvironmentEntry en = environ.getEntry("CSR_NO");
            log.debug("Environment : " + en);
            log.debug("pre PARAM VALUE " + en.getParameterName() + "|"  + en.getParameterValue());
            en.setParameterValue("AMS00000042");
            paramList.add( en );
           
            EnvironmentEntry en2 = environ.getEntry("SUB_CSR_NO");
            log.debug("pre PARAM VALUE " + en2.getParameterName() + "|"  + en2.getParameterValue());
            en2.setParameterValue("AMS00000042");
            paramList.add( en2 );
           
            log.debug("PARAM NAME : " + en.getParameterName() + "|" + en.getParameterValue());
            log.debug("PARAM NAME : " + en2.getParameterName() + "|" + en2.getParameterValue());
            //en.update();  // 실제 환경변수를 바꾸어 버리는 결과를 가져옴.
           
            //project.fire();
           
            Build currentBuild = project.fire(null, null, false, paramList);
            log.debug("Project " + project.getName() + " is fired " + currentBuild.getBuildId() );
            // 요로케 호출해야 정상적으로 동적으로 환경변수 값을 주면서, 프로젝트를 시작할 수 있음.
           
            conn.logout();
            conn.close();
           
        } catch (IOException e) {
            log.error("", e);
        } catch (ServiceException e) {
         log.error("", e);
        }
    }

}


 

이 글은 스프링노트에서 작성되었습니다.

Posted by 아프락사스
<< PREV : [1] : ... [72] : [73] : [74] : [75] : [76] : [77] : [78] : [79] : [80] : ... [160] : NEXT >>

BLOG main image

공지사항

카테고리

분류 전체보기 (160)
MAMP LAMP (1)
Open Project (4)
Knowhow (57)
JEE Technologies (3)
Rational Products (94)
Etc (0)