2017-11-03 11 views
0

openshiftでPODをプログラムで再起動しようとしていますか?このクライアントAPIを使用して接続してクエリできますopenshift-restclient-javaAPI opensshift-restclient-javaがPODを再起動できるかどうかは誰でも知っています

提供可能なサンプルコードまたはリンクがある場合は、

+0

のREST APIエンドポイント ''/API/V1 /名前空間/ {名前空間が}/pods''はポッドを照会することができます。 '' DELETE'' HTTP動詞を使うことで、ポッドを削除することもできます。ポッドを再起動すると効果があります。 –

+0

このメソッドを指摘していただきありがとうございます。私は試してみる機会がなかったが、それはそうかもしれない。 – Fabio

答えて

0

この方法を使用してポッドを再起動しました。誰かが同じ仕事をしている場合に備えてこの回答を投稿しています。

def restartPod(podName: String, nameSpace: String): Boolean = { 

val serviceList: Seq[IResource] = openshiftClient.list[IResource](ResourceKind.DEPLOYMENT_CONFIG, nameSpace).filter(service => service.getName.startsWith(podName)).toList 
serviceList match { 
    case service :: _ => { 
    scaleTo(service, 0) match { 
     case None => println(s"Pod ${podName} successfully stopped.") 
     case Some(ex) => { 
     println(s"Error stopping pod ${podName} reason: ${ex.getMessage}") 
     } 
    } 
    scaleTo(service, 1) match { 
     case None => { 
     val message = s"Pod ${podName} successfully started." 
     println(message) 
     (true) 
     } 
     case Some(ex) => { 
     val message = s"Error starting pod ${podName} reason: ${ex.getMessage}" 
     logger.error(message) 
     (false) 
     } 
    } 
    } 
    case _ => { 
    val message = s"Pod ${podName} could not be restarted because it was not found with that name." 
    logger.error(message) 
    (false) 
    } 
} 
} 

あなたは次のライブラリ必要があるでしょう:

<dependency> 
     <groupId>com.openshift</groupId> 
     <artifactId>openshift-restclient-java</artifactId> 
     <version>1.0.1.6</version> 
    </dependency> 
関連する問題