Parameters

  • app_name : 애플리케이션 이름
  • cartridges : 생성할 애플리케이션에 추가할 카트리지 목록
  • scalable : 확장 여부(기본값 false)
  • available : HA 여부
  • init_git_url : 애플리케이션 템플릿 GIT URL
  • gear_profile, gear_size, default_gear_size : 기어 사이즈
  • config : 설정값
  • environment_variables : 환경 변수
  • initial_git_branch : init_git_url에서 사용할 브랜치

Preconditions
  • 애플리케이션 이름이 Blacklist에 등록되어 있는지 확인(OpenShift::ApplicationContainerProxy)
  • Git URL 스키마 확인(OpenShift::Git)
  • 카트리지 스펙 확인(CartridgeInstance)
  • 설정에서 HA가 비활성화 되어있는지 확인(Rails.configuration.openshift - allow_ha_applications)
  • 유저가 HA 애플리케이션을 생성할 수 있는 권한이 있는지 확인


프로세스 상세

  1. Gear 스펙 Hash Array 생성
  2. 지정된 이름의 도메인을 찾거나, 없을 시 생성
  3. 인증
  4. 권한 체크
  5. Application 모델 객체 생성
  6. config 타입 변환
  7. app에 user agent 정보 추가 - 로깅용..?
  8. 인스턴스 변수에 생성된 app 객체 설정
  9. 기어 최대 생성 수보다 많은 지 확인
  10. envorionment_variables 가져옴
  11. user environment variable 유효성 확인(Application.validate_user_env_variables)
  12. cartridge 탐색 및 다운로드(CartridgeCache.find_and_download_cartridges)
  13. 최대 스토리지 사용량 초과 확인
  14. 웹 프레임워크 유효성 확인
  15. 구 버전 카트리지 확인
  16. 요청 결과 생성
  17. 분석 데이터 트래킹(@analytics_tracker 인스턴스 변수)
  18. 카트리지 include
  19. 요청 결과 렌더


+ Recent posts