You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
下载
开发软件
账户
下载
开发软件
登录
我忘记用户名和密码了
创建帐户
语言
帮助
语言
帮助
×
登录
登录名
密码
×
我忘记用户名和密码了
简体中文翻译状态
类别:
软件
用户
PersonalForge
Magazine
Wiki
搜索
OSDN
>
浏览软件
>
System
>
Networking
>
Monitoring
>
Hinemos
>
论坛
>
FAQ
>
ジョブ[スケジュール予定]のcsv出力方法について
Hinemos
描述
项目概述
开发人员仪表板
项目的网页
开发人员
Image Gallery
List of RSS Feeds
Activity
统计
历史
下载
List of Releases
统计
沟通
论坛
List of Forums
ヘルプ (221)
トラブルシューティング (124)
FAQ (209)
公開討議 (16)
動作確認情報 (26)
Mailing Lists
list of ML
hinemos-mailing-list
新闻
论坛:
FAQ
(Thread #40346)
Return to Thread list
RSS
ジョブ[スケジュール予定]のcsv出力方法について (2019-01-22 13:31 by
sgsunyou
#82464)
初めまして。
Hinemos6.0をCentOSにインストールし検証を行なっています。
ジョブ[スケジュール予定]をcsvに出力することは可能でしょうか?
参考書を確認するとWebAPIで対応出来そうなのですが、
オプションに何を入れていいの、使い方が分からず上手くいきません。
<メソッド>
getPlanList(JobPlanFilter property,int plans)
ご教示頂きますようお願い致します。
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-23 13:12 by
nonono
#82467)
> getPlanList(JobPlanFilter property,int plans)
JobPlanFilterのオブジェクトを作成してそれを引数に渡せばいいんじゃないですかね。
Pythonで書くとこんな感じ?適当です。
------------------------------
#!/usr/bin/python
from suds.client import Client
from suds.transport.http import HttpAuthenticated
url = "
http://<
マネージャのホスト名>:8080/HinemosWS/JobEndpoint?wsdl"
t = HttpAuthenticated(username="〇〇〇", password="△△△")
client = Client(url, transport=t)
prop = client.factory.create('jobPlanFilter')
plans = 200
result = client.service.getPlanList(prop,plans)
print result
------------------------------
回复到
#82464
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-24 09:31 by
sgsunyou
#82475)
早速のご返事有難うございます。
URL、ID、パスワードをテスト環境に合わせスクリプトを作成ました。
このスクリプトをどのように利用するのでしょうか?
jobPlanFilterとは抽出する条件でしょうか?
素人で申し訳ございません。
ご教示頂きますようお願い致します。
回复到
#82467
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-24 10:06 by
nonono
#82476)
あ。作成したスクリプトは手元の5.0系の環境では動いたけど、
6.0系の環境で動くかは確かめてないです。あくまでも参考にしてください。
> このスクリプトをどのように利用するのでしょうか?
pythonスクリプトなので、Linuxであれば実行権限与えて実行するだけです。
実行するとgetPlanListで取得したジョブ[スケジュール予定]のデータが
標準出力に表示されます。この際、特にデータの整形はしていないので、
----------------
[(jobPlan){
date = 1548291120000
jobId = "job01"
jobKickId = "sche01"
jobKickName = "sche01"
jobName = "job01"
jobunitId = "jobunit01"
}, (jobPlan){
…
----------------
のようにdict型の要素を持つリストが生で出てきます。
このデータをCSVに変換する方法を考えればいいんじゃないでしょうかね。
> jobPlanFilterとは抽出する条件でしょうか?
そうですね。ジョブ[スケジュール予定]ビュー右上にあるフィルタで設定する内容を
保持するものだと思います。どんな条件が指定できるかは、 jobPlanFilterのソースコードを
見てみればいいと思います。
HinemosManager\src_jobmanagement\com\clustercontrol\jobmanagement\bean\JobPlanFilter.java
サンプルのスクリプトは、jobPlanFilterの各変数に値を設定しないでgetPlanListに渡しているので、
フィルタ設定を行わなずにジョブ[スケジュール予定]ビューを表示させた際のデータが取れてるはずです。
回复到
#82475
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-25 10:26 by
sgsunyou
#82489)
ご回答有難うございます。
スクリプトを以下以外コメントアウトして実行するとこの時点でエラーが出てしまいます。
urlを"JobEndpoint?wsdl"ではなく、"RepositoryEndpoint?wsdl"だとエラーなくログイン出来ているのですが。
もう少し調査してみます。
スクリプト抜粋
=======
from suds.client import Client
from suds.transport.http import HttpAuthenticated
url = "
http://<
マネージャのホスト名>:8080/HinemosWS/JobEndpoint?wsdl"
t = HttpAuthenticated(username="〇〇〇", password="△△△")
client = Client(url, transport=t)
=======
エラー内容抜粋
=======
Traceback (most recent call last):
File "./plan.py", line 6, in <module>
・・・・
・・・・
File "/usr/lib/python2.7/site-packages/suds/sax/element.py", line 404, in getAttribute
prefix, name = splitPrefix(name)
RuntimeError: maximum recursion depth exceeded
=======
回复到
#82476
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-25 14:24 by
nonono
#82490)
「 RuntimeError: maximum recursion depth exceeded」とpythonのsudsで検索すると
いくつか情報が出てくるので、suds依存の問題なのかもしれないですね。
なので、suds以外のライブラリ使ってみるとか(調べるとZeepというのがあるみたいです)、
いっそ他の言語で作ってみるとかを考えてみてください。
回复到
#82489
Re: ジョブ[スケジュール予定]のcsv出力方法について (2019-01-30 11:41 by
nonono
#82515)
pythonのZeepライブラリの使い方調べながら作ってみた。
お蔵入りするのも勿体ないので載せておきます。
6系でスケジュール予定とれることは簡単に確認したけど、
全体的にまともに動くかはしらんです。参考程度にしてください。
--------------------
#!/usr/bin/python
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep import Client
from zeep.transports import Transport
session = Session()
session.auth = HTTPBasicAuth("ユーザ", "パスワード")
client = Client('http://【ホスト名】:8080/HinemosWS/JobEndpoint?wsdl',
transport=Transport(session=session))
jobplanfilter_type = client.get_type('ns3:jobPlanFilter')
prop = jobplanfilter_type(fromDate='',jobKickId='',toDate='')
plans = 200
result = client.service.getPlanList(arg0=prop,arg1=plans)
print result
--------------------
回复到
#82490