2

나는 AWS가 안개를 사용하여 인스턴스를 계산하고 성공시 문자열 값으로 설정 종결을 의미하는 '시작'블록에서 레일 응용 프로그램에 대한 코드의 3 라인을 가지고 :안개가있는 AWS 서버 종료를 확인하는 방법은 무엇입니까?

@server = @connection.servers.get(params[:id]) 
    @server.destroy 
    @server_deletion_result = "success" 

이 코드는 작동을하지만, 단순히 인스턴스를 AWS로 종료하라는 명령을 보냅니다. 안개를 사용하여 인스턴스가 이 종료되었음을 확인하려면 어떻게해야합니까??

나는 아무 소용이 시도 :

while @server.state != "terminated" do 
    sleep 3 
    end 
    @server_deletion_result = "success" 

그냥 인스턴스가 AWS 콘솔에서 "종료"쇼도 잘 이후 중단 된 것으로 보입니다.

그래서 생각은?

답변

2

내 친구가 트위터를 통해이 질문에 답변 할 수 있도록 도와주었습니다. 대답은 서버 객체에서 reload() 함수를 호출 한 다음 확인하는 것입니다. 안개는 서버 객체를 캐시하고 상태를 확인하기 위해 업데이트해야합니다.

가 여기 내 최종 솔루션이었다

@server.reload 
    while @server.state != "terminated" do 
    sleep 3 
    @server.reload 
    end 

편집 : 코멘트에 더 나은 해답이 프레드릭 청에 감사 :

@server.wait_for {state == 'terminated'} 
+2

server.wait_for @ {상태를 == ' 종료 됨 '} 조금 더 간결합니다. –

+0

훨씬 좋습니다. 나는 대답을 업데이트 할 것이다. – blundin

관련 문제