2014-12-04 6 views
1

config라는 환경 변수를 내 cloudControl 배포에 추가하고 싶습니다. 그러나 제공된 명령 행 도구 cctrlapp을 사용할 수는 없지만 REST API를 사용해야합니다. API는 https://api.cloudcontrol.com에서 액세스 할 수 있으며 https://api.cloudcontrol.com/doc/에 문서화되어 있습니다.API를 사용하여 cloudControl 배포에 구성 값/환경 변수를 추가하는 방법

이제는 환경 변수를 참조하는 문서 섹션이 비어 있습니다. 여기

내가 지금까지 무엇을했는지 있습니다 : 유형 nodejs의

  1. 응용 프로그램
  2. 은 기본 배포는 ENV를 추가하려고
  3. 을 만들어 만들었습니다. 변수

나는 https://api.cloudcontrol.com/app/{APP_NAME}/deployment/{DEPLOYMENT_NAME}/addon에게 POST 요청을 보내야한다는 것을 알았습니다.

{"addon":"config.free","options":{"key":"value"}} 

가 지금은 붙어 : cctrlapp의 구현에 따라 나는 다음과 같은 JSON 데이터가 필요 추론 것 ( app.pycclib.py 참조). 이 경우 는 요청이 반환

Bad Request {"parameters": "Invalid parameters given."} 

내가 약간 수정 된 객체를 사용하는 경우

{"addon":"config.free","settings":{"key":"value"}} 

나는이 메시지가 나타납니다

[ERROR] Missing config variables 

사람이 그런를 적용하는 방법을 알고 있나요을 키 - 값 쌍은 API 만 사용합니까?

+0

옵션을 URL 인코딩하려고 했습니까? 'https://api.cloudcontrol.com/app/{APP_NAME}/deployment/{DEPLOYMENT_NAME}/addon?options='{{key ":"value "} ''와 같은 것입니까? 추가 기능이 이미 추가 된 경우 PUT 요청을 보내고 vars를 '설정'으로 인코딩해야합니다. –

답변

1

https://github.com/cloudControl/pycclib/blob/master/pycclib/cclib.py#L422에서 보니 "options"을 사용해야하고 options의 값은 json 인코딩 사전 (https://github.com/cloudControl/cctrl/blob/master/cctrl/addonoptionhelpers.py#L82)이어야합니다.

그러나 나머지 부분은 json으로 인코딩되지 않지만 일반적인 POST 매개 변수 (https://github.com/cloudControl/pycclib/blob/master/pycclib/cclib.py#L931)입니다. 참조 작업 요청 (config.add x = 1과 동일) :

POST /app/myappname/deployment/default/addon/ HTTP/1.1 
content-length: 50 
accept-encoding: compress, gzip 
user-agent: pycclib/1.5.5 
host: api.cloudcontrolled.com 
content-type: application/x-www-form-urlencoded 
authorization: cc_auth_token="thetoken" 

options=%7B%22x%22%3A+%221%22%7D&addon=config.free