28e44fcee6f92de11e078dd0ff550d43ebcd4693
1 """Common methods for the Aodh Sender/Receiver."""
7 from keystoneauth1
.identity
import v3
8 from keystoneauth1
.identity
.v3
import AuthMethod
9 from keystoneauth1
import session
10 from keystoneclient
.v3
import client
11 from keystoneclient
.service_catalog
import ServiceCatalog
13 from plugins
.Openstack
.settings
import Config
16 class Aodh_Common(object):
17 """Common calls for Aodh Sender/Receiver."""
20 """Create the common instance."""
21 self
._auth
_token
= None
25 def _authenticate(self
):
26 """Authenticate and/or renew the authentication token"""
28 if self
._auth
_token
is not None:
29 return self
._auth
_token
32 cfg
= Config
.instance()
33 self
._ks
= client
.Client(auth_url
=cfg
.OS_AUTH_URL
,
34 username
=cfg
.OS_USERNAME
,
35 password
=cfg
.OS_PASSWORD
,
36 tenant_name
=cfg
.OS_TENANT_NAME
)
37 self
._auth
_token
= self
._ks
.auth_token
38 except Exception as exc
:
41 self
._auth
_token
= None
43 return self
._auth
_token
45 def get_endpoint(self
):
46 endpoint
= self
._ks
.service_catalog
.url_for(
47 service_type
='alarming',
48 endpoint_type
='internalURL',
49 region_name
='RegionOne')
53 def _perform_request(cls
, url
, auth_token
, req_type
="get", payload
=None):
54 """Perform the POST/PUT/GET/DELETE request."""
57 headers
= {'X-Auth-Token': auth_token
,
58 'Content-type': 'application/json'}
59 # perform request and return its result
62 response
= requests
.put(
63 url
, data
=payload
, headers
=headers
,
65 elif req_type
== "post":
66 response
= requests
.post(
67 url
, data
=payload
, headers
=headers
,
69 elif req_type
== "get":
70 response
= requests
.get(
71 url
, headers
=headers
, timeout
=1)
72 elif req_type
== "delete":
73 response
= requests
.delete(
74 url
, headers
=headers
, timeout
=1)
76 print("Invalid request type")
78 except Exception as e
:
80 print("Exception thrown on request", e
)