and并使用该状态后在RUNDECK中使用python编写条件来

and并使用该状态后在RUNDECK中使用python编写条件来

本文介绍了运行Curl Command并使用该状态后在RUNDECK中使用python编写条件来获取200 Ok状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是CURL命令,该命令提供了在RUNDECK中运行的状态

Below is the CURL command which gives the status running in RUNDECK

url ="curl -kv https://vn2-lpgdmt-capp99.rno.vzon.com:8990/health/check"

我的代码如下:

payload={}
Headers={ i have defined here }

response = requests.request("GET", url, headers=headers, data = payload,verify=False)
status = response.status_code
print(status)
response_val = response.json()
response_val = json.dumps(response_val)

if status != 200  :
    print('********Error in Response***********')
    print('Status   :'+ str(status))
    print('********Please check for Rundeck Options,URL*********')
    print(response.content)
else:
    for pattern in part:
        if re.search(pattern,  response_val):
            print('Data Found for ServerNo :'+ pattern)
        else:
            print('No Data Found for ServerNo :'+ pattern)
print('**************************************************************************')

我想给出多个curl命令并检查所有这些服务器的状态,如果状态为200正常,则发送消息说心跳良好,如果不是,则心跳已死"错误

i want to give multiple curl commands and check status of all those servers , if status is 200 ok then send msg saying Heartbeat Good, if not Hearbeat is Dead" Error

请帮助

推荐答案

您可以在第一步(在bash上)生成数据值,然后在第二步(在python上)生成数据值,我留下一个工作定义示例:

You can generate a data value in the first step (on bash) and pick it up on the second step (on python), I leave a job definition example:

<joblist>
  <job>
    <context>
      <options preserveOrder='true'>
        <option name='node' value='myhost' />
      </options>
    </context>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>145d3f4e-44fc-4e25-9759-bf9d8867ef20</id>
    <loglevel>INFO</loglevel>
    <name>DataPassingDemo</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <description>get the code and save it on data variable</description>
        <fileExtension>.sh</fileExtension>
        <plugins>
          <LogFilter type='key-value-data'>
            <config>
              <invalidKeyPattern>\s|\$|\{|\}|\\</invalidKeyPattern>
              <logData>true</logData>
              <regex>^(CODE)\s*=\s*(.+)$</regex>
            </config>
          </LogFilter>
        </plugins>
        <script><![CDATA[response=$(curl --write-out %{http_code} --silent --output /dev/null http://@option.node@:4440)
echo "CODE=$response"]]></script>
        <scriptargs />
        <scriptinterpreter>/bin/bash</scriptinterpreter>
      </command>
      <command>
        <description>your python 3 logic</description>
        <fileExtension>.py</fileExtension>
        <script><![CDATA[# get the data value
print("The code is: " + str(@data.CODE@))

# and you can do anything with @job.threadcount@
if (@data.CODE@ == 302):
    print ("Server OK")
else:
    print ("Check the instance")]]></script>
        <scriptargs />
        <scriptinterpreter>python3</scriptinterpreter>
      </command>
    </sequence>
    <uuid>145d3f4e-44fc-4e25-9759-bf9d8867ef20</uuid>
  </job>
</joblist>

另一种方法是通过urllib将所有进程留给python脚本,请查看.

Another way is to leave all processes to your python script through urllib, take a look at this.

您可以在此处查看良好的数据传递说明.

You can check a good data passing explanation here.

这篇关于运行Curl Command并使用该状态后在RUNDECK中使用python编写条件来获取200 Ok状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 18:51