JHako
5
どのような問題がありますか?

この記事は最終更新日から5年以上が経過しています。

投稿日

更新日

jHako APIを動かしてみる

jHako APIを動かしてみる(備忘録)

初めに

jHako開発者の小松さんにjHakoはブラウザの表示やブラウザからの動作を全てAPIで行っていると聞いたので、jHakoのjobnet編集画面にあるjobnetのテストで使う「実行」もAPIで実行できる筈。
これができれば、Zabbixで障害検知してアクションでjHakoの障害復旧jobnetが実行できる!
と言う訳で、実際に試してみました。

Advanced REST Clientで動かす

実はこの備忘録を作る前に試しているので鼻歌交じりで試したのですが…
jobnetの実行が404 NOT FOUND、Advanced REST Clientが新しくなったら動かない!
で、調査してみました。

URLは合っているのに404 NOT FOUND…
『URLあってるよなー』とか『ブラウザから動くよなー』とか独り言呟き1時間…

『HEAD足りてないかな?』とcookieを渡したら動きました。(笑)

下記、実行が上手く行った画面のキャプチャ
2016-04-17_182948.png

ログイン時に帰ってくるcookieの値を渡す必要があると様です。(笑)

まとめ

下記でZabbixからjHakoの連携ができる筈

1)Python等でjHako APIでログイン、jobnet実行を行うスクリプト組む
2)Zabbixが障害検知したらアクションでスクリプト実行する

尚、jHakoのアカウントで障害対応用のアカウント作った方が良いかと。
ブラウザでログインしているアカウントで、Advanced REST Clientからログインしたら怒られました。(笑)
2016-04-17_184131.png

以下、jHako APIのログインとjobnet実行に関する情報


ログイン

  • URL:http://{jHakoサーバのIPアドレス}/jhako/sessions.json

  • HEAD:Content-Type:application/json

  • Body

{
  "session": {
    "name": "admin",
    "fullname": "",
    "kind": 0,
    "password": "jhako",
    "password_confirmation": "",
    "language": "en",
    "email": "",
    "created_at": null,
    "updated_at": null
  }
}

jobnetの実行

  • URL
    http://{jHakoサーバのIPアドレス}/jhako/proc_topjobnets.json

  • HEAD:
    Content-Type:application/json
    Cookie: remember_token=xxxxxxxxxxxxxxxxxxxxxx;

  • Body

{
  "proc_topjobnet": {
    "name": "test",
    "description": "",
    "kind": 10,
    "hold": false,
    "skip": false,
    "timeout": 0,
    "created_at": null,
    "updated_at": null,
    "jobunit_id": 13,
    "status": 0,
    "start_time": null,
    "end_time": null,
    "timeout_occur": false,
    "force_start": false,
    "force_stop": false,
    "proc_jobunit_id": 0,
    "proc_alarm_id": 0,
    "mode": 1,
    "schedule_time": null,
    "run_type": 0,
    "delay_limit": 1,
    "path": ""
  }
}

上記はtestと言うjobnetが実行します。
cookieはログイン時のレスポンスヘッダのSet-Cookie:にあるremember_tokenの値を設定します。

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザー登録ログイン
この記事は以下の記事からリンクされています

コメント

:thumbsup:
https://github.com/komatsuyuji/jhako/tree/master/frontends/app/controllers
を読んだら、webapi仕様はすべてばれます。
現状だと、webapi実行が面倒です。→すべての操作は、内部IDが必要となります。
NAME指定のほうがいいですね。

0
どのような問題がありますか?
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Claris Connect を使った SaaS 連携ユースケースを紹介しよう!
~
Remote TestKitを使ってレビューを書こう!
~
5
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー