노드 페어 생성
새로운 노드 페어을 등록합니다.
필요 권한
마스터 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
POST /api/sonar/node-pairs
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d type="control" \
-d name="primary-control" \
-d nid="control-a" \
-d host="192.0.2.10" \
-d port=8443 \
-d user="admin" \
-d password="changeme" \
-d secure=true \
-d check_cert=true \
-X POST \
https://HOSTNAME/api/sonar/node-pairs
요청 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| guid | X | 문자열 | 노드 페어 GUID | 미지정 시 자동 생성, 36자 |
| type | O | 문자열 | 노드 유형 | control 또는 data |
| name | O | 문자열 | 노드 페어 이름 | |
| description | X | 문자열 | 노드 페어 설명 | |
| vip_host | X | 문자열 | 대표 주소 (VIP) | |
| vip_port | X | 32비트 정수 | 대표 웹 포트 (VIP) | |
| nid | O | 문자열 | 노드 A 식별자 | |
| host | O | 문자열 | 노드 A 호스트 주소 | |
| port | O | 32비트 정수 | 노드 A 웹 포트 | |
| user | O | 문자열 | 노드 A 접속 계정 | |
| password | O | 문자열 | 노드 A 접속 암호 | |
| secure | X | 불리언 | 노드 A HTTPS 사용 여부 | 기본값: false |
| check_cert | X | 불리언 | 노드 A 서버 인증서 검증 여부 | 기본값: true |
| connect_timeout | X | 32비트 정수 | 노드 A 접속 타임아웃 | 단위 밀리초, 기본값: 10000 |
| read_timeout | X | 32비트 정수 | 노드 A 읽기 타임아웃 | 단위 밀리초, 기본값: 10000 |
| nid2 | X | 문자열 | 노드 B 식별자 | 대기 노드를 등록할 때 지정 |
| host2 | X | 문자열 | 노드 B 호스트 주소 | nid2 지정 시 필수 |
| port2 | O | 32비트 정수 | 노드 B 웹 포트 | nid2 지정 시 필수 |
| user2 | X | 문자열 | 노드 B 접속 계정 | nid2 지정 시 필수 |
| password2 | X | 문자열 | 노드 B 접속 암호 | nid2 지정 시 필수 |
| secure2 | X | 불리언 | 노드 B HTTPS 사용 여부 | 노드 A와 동일하게 적용 |
| check_cert2 | X | 불리언 | 노드 B 서버 인증서 검증 여부 | 노드 A와 동일하게 적용 |
| connect_timeout2 | X | 32비트 정수 | 노드 B 접속 타임아웃 | 노드 A와 동일하게 적용 |
| read_timeout2 | X | 32비트 정수 | 노드 B 읽기 타임아웃 | 노드 A와 동일하게 적용 |
정상 응답
{
"guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
- guid (문자열): 생성된 노드 페어의 GUID (36자)
오류 응답
필수 매개변수가 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "name should be not null"
}
노드 유형이 잘못된 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "No enum constant com.logpresso.sonar.api.node.NodeType.invalid"
}
동일한 이름의 노드 페어이 이미 존재하는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicated node pair name: primary-control"
}
동일한 식별자의 노드가 이미 존재하는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicated node name: control-a"
}
권한이 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}