import requests
import yaml

class Attr:

@classmethod
def setting(cls):

try:

f = open(Attr.ymlFilePath(), "r", encoding="utf-8")
doc = dict(yaml.load(f))
except FileNotFoundError as e:
print (e)
exit(1)
else:
Attr.urlRequests(dict(doc.get("srv")))
return dict(doc.get("srv"))


@classmethod
def urlRequests(cls, srv):

try:

requests.get("http://{address}:{port}".format(address= srv.get("url"), port= srv.get("port")))
except requests.exceptions.ConnectionError as e:
print(e)
exit(1)
except requests.exceptions.RequestException as e:
print(e)
exit(1)


@classmethod
def ymlFilePath(cls):
filePath = "C:\\Users\\junhyeon.kim\\Desktop\\proj19\\configration\\srv.yml"
return filePath




from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search
from elasticserver.Attribute import Attr
from requests import get
import os
import json
import pprint

class Elasvr:
attr = Attr.setting()
def __init__(self):
self.elasticSrvr = Elasticsearch(
hosts=[{"host":Elasvr.attr.get("url"),
"port":Elasvr.attr.get("port")}]
)


def srvHealthCheck(self):
srvInfo = dict(self.elasticSrvr.info())
health_check = dict(self.elasticSrvr.cluster.health())

result = json.dumps(
{
"name": srvInfo.get("name"),
"cluster_name": health_check.get("cluster_name"),
"status": health_check.get("status")
},
ensure_ascii=False,
indent=4
)

print (result)


def search(self, param_index, param_search):


srv = Search(using= self.elasticSrvr,
index= param_index).query("match", name=param_search)


#response = srv.execute().to_dict()["hits"]["hits"][0]
response = srv.execute().to_dict()["hits"]["hits"]
if response == []:
return response

else:
'''
_index, _type, _id, _score, _source

'''
print (response[0]["_source"])
return response[0]["_source"]

def __del__(self):
self.elasticSrvr.exists


def main():
enode = Elasvr()
enode.srvHealthCheck()
enode.search(param_index="hex_color_list", param_search="b")

if __name__ == "__main__":
main()







'언어 > python' 카테고리의 다른 글

python + outlook  (0) 2019.03.31
selenium_  (0) 2019.03.11
data crawling  (0) 2019.03.03
python + 지하철 + 이미지  (0) 2019.02.24
pysimplegui  (0) 2019.02.10