コード例 #1
0
ファイル: blueflood.py プロジェクト: mandaltapesh/blueflood
 def gen_responses(self, groups, payload):
     # converts groups of requests into a single list of responses
     headers = auth.headers()
     responses = reduce(
         lambda x, y: x + y, [self.get_metric_data(self.host, self.tenant, g, payload, headers) for g in groups]
     )
     responses = responses or []
     return responses
コード例 #2
0
def logger(data):
    #print(json.dumps(data))
    res = requests.post(url,
                        data=json.dumps({'event': data}),
                        headers=headers(),
                        verify=False)
    if res.status_code != requests.codes.ok:
        print(res.json())
コード例 #3
0
ファイル: blueflood.py プロジェクト: bmumdluri/blueflood
 def gen_responses(self, groups, payload):
     #converts groups of requests into a single list of responses
     headers = auth.headers()
     responses = reduce(lambda x, y: x + y, [
         self.get_metric_data(self.host, self.tenant, g, payload, headers)
         for g in groups
     ])
     responses = responses or []
     return responses
コード例 #4
0
ファイル: blueflood.py プロジェクト: bmumdluri/blueflood
  def find_metrics(self, query):
    print "BluefloodClient.find_metrics: " + str(query)
    payload = {'query': query}
    headers = auth.headers()
    endpoint = self.find_metrics_endpoint(self.bf_query_endpoint, self.tenant)
    r = self.make_request(endpoint, payload, headers)

    if r.status_code == 200:
        return [m['metric'] for m in r.json()]
    else:
      return []
コード例 #5
0
 def do_auth(self):
     payload = '{"auth":{"RAX-KSKEY:apiKeyCredentials"{"username":"******","apiKey":"%s"}}}' % (
         self.username, self.apiKey)
     r = requests.post(IDENTITY_ENDPOINT + 'tokens',
                       data=payload,
                       headers=auth.headers())
     jsonObj = r.json()
     self.token = jsonObj['access']['token']['id']
     self.expiration_UTC = dateparse(
         jsonObj['access']['token']['expires']).replace(
             tzinfo=timezone('UTC'))
コード例 #6
0
 def do_auth(self):
     payload = '{"auth":{"RAX-KSKEY:apiKeyCredentials"{' \
               '"username":"******","apiKey":"%s"}}}' % (
                 self.username, self.apiKey)
     r = requests.post(IDENTITY_ENDPOINT + 'tokens', data=payload,
                       headers=auth.headers())
     jsonObj = r.json()
     self.token = jsonObj['access']['token']['id']
     self.expiration_UTC = dateparse(
         jsonObj['access']['token']['expires']).replace(
         tzinfo=timezone('UTC'))
コード例 #7
0
ファイル: blueflood.py プロジェクト: bmumdluri/blueflood
    def find_metrics(self, query):
        print "BluefloodClient.find_metrics: " + str(query)
        payload = {'query': query}
        headers = auth.headers()
        endpoint = self.find_metrics_endpoint(self.bf_query_endpoint,
                                              self.tenant)
        r = self.make_request(endpoint, payload, headers)

        if r.status_code == 200:
            return [m['metric'] for m in r.json()]
        else:
            return []
コード例 #8
0
ファイル: blueflood.py プロジェクト: mandaltapesh/blueflood
    def getEvents(self, start_time, end_time, tags):
        url = self.find_events_endpoint(self.bf_query_endpoint, self.tenant)
        payload = {"from": start_time * 1000, "until": end_time * 1000}

        if tags is not None:
            payload["tags"] = tags
        headers = auth.headers()

        r = self.make_request(url, payload, headers)
        r = r.json()
        for event in r:
            event["when"] = int(event["when"] / 1000)
        return r
コード例 #9
0
    def getEvents(self, start_time, end_time, tags):
        url = self.find_events_endpoint(self.bf_query_endpoint, self.tenant)
        payload = {'from': start_time * 1000, 'until': end_time * 1000}

        if tags is not None:
            payload['tags'] = tags
        headers = auth.headers()

        r = self.make_request(url, payload, headers)
        r = r.json()
        for event in r:
            event['when'] = int(event['when'] / 1000)
        return r
コード例 #10
0
ファイル: blueflood.py プロジェクト: GeorgeJahad/blueflood
 def find_metrics(self, query):
   payload = {'query': query}
   headers = auth.headers()
   r = self.make_request("%s/v2.0/%s/metrics/search" % (self.host, self.tenant), payload, headers)
   if r.status_code != 200:
     print str(r.status_code) + ' in find_metrics ' + r.url + ' ' + r.text
     return []
   else:
     try:
       return r.json()
     except TypeError:
       # we need to parse the json ourselves.
       return json.loads(r.text)
     except ValueError:
       return ['there was an error']
コード例 #11
0
ファイル: blueflood.py プロジェクト: gdusbabek/blueflood
 def findMetrics(self, query):
   payload = {'query': query}
   headers = auth.headers()
   if auth.isActive():
     headers['X-Auth-Token'] = auth.getToken()
   r = requests.get("%s/v2.0/%s/metrics/search" % (self.host, self.tenant), params=payload, headers=headers)
   if r.status_code is not 200:
     print str(r.status_code) + ' in findMetrics ' + r.text
     return []
   else:
     try:
       return r.json()
     except TypeError:
       # we need to parse the json ourselves.
       return json.loads(r.text)
     except ValueError:
       return ['there was an error']
コード例 #12
0
ファイル: blueflood.py プロジェクト: ChandraAddala/blueflood
 def find_metrics_with_enum_values(self, query):
   #BF search command that returns enum values as well as metric names
   logger.info("BluefloodClient.find_metrics: %s", str(query))
   payload = {'query': query}
   headers = auth.headers()
   endpoint = self.find_metrics_endpoint(self.bf_query_endpoint, self.tenant)
   r = self.make_request(endpoint, payload, headers)
   ret_dict = {}
   if r.status_code == 200:
     for m in r.json():
       if 'enum_values' in m:
         v = m['enum_values']
       else:
         v = None
       ret_dict[m['metric']] = v
     return ret_dict
   else:
     return {}
コード例 #13
0
ファイル: blueflood.py プロジェクト: mandaltapesh/blueflood
 def find_metrics_with_enum_values(self, query):
     # BF search command that returns enum values as well as metric names
     print "BluefloodClient.find_metrics: " + str(query)
     payload = {"query": query}
     headers = auth.headers()
     endpoint = self.find_metrics_endpoint(self.bf_query_endpoint, self.tenant)
     r = self.make_request(endpoint, payload, headers)
     ret_dict = {}
     if r.status_code == 200:
         for m in r.json():
             if "enum_values" in m:
                 v = m["enum_values"]
             else:
                 v = None
             ret_dict[m["metric"]] = v
         return ret_dict
     else:
         return {}
コード例 #14
0
ファイル: blueflood.py プロジェクト: hexiaofeng/blueflood
 def find_metrics(self, query):
     payload = {'query': query}
     headers = auth.headers()
     r = self.make_request(
         "%s/v2.0/%s/metrics/search" % (self.host, self.tenant), payload,
         headers)
     if r.status_code != 200:
         print str(
             r.status_code) + ' in find_metrics ' + r.url + ' ' + r.text
         return []
     else:
         try:
             return r.json()
         except TypeError:
             # we need to parse the json ourselves.
             return json.loads(r.text)
         except ValueError:
             return ['there was an error']
コード例 #15
0
ファイル: blueflood.py プロジェクト: gdusbabek/blueflood
  def getValues(self, metric, start, stop):
    # make an educated guess about the likely number of data points returned.
    num_points = (stop - start) / 60
    res = 'FULL'

    if num_points > 800:
      num_points = (stop - start) / SECONDS_IN_5MIN
      res = 'MIN5'
    if num_points > 800:
      num_points = (stop - start) / SECONDS_IN_20MIN
      res = 'MIN20'
    if num_points > 800:
      num_points = (stop - start) / SECONDS_IN_60MIN
      res = 'MIN60'
    if num_points > 800:
      num_points = (stop - start) / SECONDS_IN_240MIN
      res = 'MIN240'
    if num_points > 800:
      num_points = (stop - start) / SECONDS_IN_1440MIN
      res = 'MIN1440'

    payload = {
      'from': start * 1000,
      'to': stop * 1000,
      'resolution': res
    }
    #print 'USING RES ' + res
    headers = auth.headers()
    if auth.isActive():
      headers['X-Auth-Token'] = auth.getToken()
    r = requests.get("%s/v2.0/%s/views/%s" % (self.host, self.tenant, metric), params=payload, headers=headers)
    if r.status_code is not 200:
      print str(r.status_code) + ' in getValues ' + r.text
      return {'values': []}
    else:
      try:
        return r.json()['values']
      except TypeError:
        # parse that json yo
        return json.loads(r.text)['values']
      except ValueError:
        print 'ValueError in getValues'
        return {'values': []}
コード例 #16
0
 def find_metrics_with_enum_values(self, query):
     #BF search command that returns enum values as well as metric names
     print "BluefloodClient.find_metrics: " + str(query)
     payload = {'query': query}
     headers = auth.headers()
     endpoint = self.find_metrics_endpoint(self.bf_query_endpoint,
                                           self.tenant)
     r = self.make_request(endpoint, payload, headers)
     ret_dict = {}
     if r.status_code == 200:
         for m in r.json():
             if 'enum_values' in m:
                 v = m['enum_values']
             else:
                 v = None
             ret_dict[m['metric']] = v
         return ret_dict
     else:
         return {}
コード例 #17
0
ファイル: blueflood.py プロジェクト: hexiaofeng/blueflood
    def get_values(self, metric, start, stop):
        # make an educated guess about the likely number of data points returned.
        num_points = (stop - start) / 60
        res = 'FULL'

        if num_points > 800:
            num_points = (stop - start) / SECONDS_IN_5MIN
            res = 'MIN5'
        if num_points > 800:
            num_points = (stop - start) / SECONDS_IN_20MIN
            res = 'MIN20'
        if num_points > 800:
            num_points = (stop - start) / SECONDS_IN_60MIN
            res = 'MIN60'
        if num_points > 800:
            num_points = (stop - start) / SECONDS_IN_240MIN
            res = 'MIN240'
        if num_points > 800:
            num_points = (stop - start) / SECONDS_IN_1440MIN
            res = 'MIN1440'

        payload = {'from': start * 1000, 'to': stop * 1000, 'resolution': res}
        #print 'USING RES ' + res
        headers = auth.headers()
        r = self.make_request(
            "%s/v2.0/%s/views/%s" % (self.host, self.tenant, metric), payload,
            headers)
        if r.status_code != 200:
            print str(r.status_code) + ' in get_values ' + r.text
            return {'values': []}
        else:
            try:
                return r.json()['values']
            except TypeError:
                # parse that json yo
                return json.loads(r.text)['values']
            except ValueError:
                print 'ValueError in get_values'
                return {'values': []}
コード例 #18
0
ファイル: get_agreements.py プロジェクト: bcoffey218/PyWise
# coding: utf-8


import requests
import json
import auth



url = "https://api-na.myconnectwise.net/v4_6_release/apis/3.0/finance/agreements/"

response = requests.request(method="GET", url=url, headers=auth.headers()).json()

dump = json.dumps(response)

load = json.loads(dump)

for i,v in enumerate(load):
    print "Start Date: ", load[i]['startDate']
    print "End Date: ", load[i]['endDate']
    print "SLA ID: ", load[i]['slaId']
    print "Agreement ID: ", load[i]['id']
    print load[i]['company']['id']
    print load[i]['company']['identifier']
    print "\n"
    print "-------------------------------------------"