Initialize freezer-scheduler with insecure mode for keystone v3
Add verify and insecure flags for freezer scheduler and apiclient in order to handle insecure connections when keystone and freezer-api are available through https Add support for keystone v2 and v3 in the windows scheduler Add explicit parameters to apiclient for v3 connections Change-Id: Ib950c85e3d8d2b192ec7ba60e4fe5641202d2960
This commit is contained in:
parent
bd93113b9a
commit
d950bab933
14
actions.py
14
actions.py
@ -23,9 +23,10 @@ import exceptions
|
||||
|
||||
class ActionManager(object):
|
||||
|
||||
def __init__(self, client):
|
||||
def __init__(self, client, verify=True):
|
||||
self.client = client
|
||||
self.endpoint = self.client.endpoint + '/v1/actions/'
|
||||
self.verify = verify
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -36,7 +37,8 @@ class ActionManager(object):
|
||||
endpoint = self.endpoint + action_id
|
||||
r = requests.post(endpoint,
|
||||
data=json.dumps(doc),
|
||||
headers=self.headers)
|
||||
headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 201:
|
||||
raise exceptions.ApiClientException(r)
|
||||
action_id = r.json()['action_id']
|
||||
@ -44,7 +46,7 @@ class ActionManager(object):
|
||||
|
||||
def delete(self, action_id):
|
||||
endpoint = self.endpoint + action_id
|
||||
r = requests.delete(endpoint, headers=self.headers)
|
||||
r = requests.delete(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -52,14 +54,14 @@ class ActionManager(object):
|
||||
data = json.dumps(search) if search else None
|
||||
query = {'limit': int(limit), 'offset': int(offset)}
|
||||
r = requests.get(self.endpoint, headers=self.headers,
|
||||
params=query, data=data)
|
||||
params=query, data=data, verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['actions']
|
||||
|
||||
def get(self, action_id):
|
||||
endpoint = self.endpoint + action_id
|
||||
r = requests.get(endpoint, headers=self.headers)
|
||||
r = requests.get(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 200:
|
||||
return r.json()
|
||||
if r.status_code == 404:
|
||||
@ -70,7 +72,7 @@ class ActionManager(object):
|
||||
endpoint = self.endpoint + action_id
|
||||
r = requests.patch(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(update_doc))
|
||||
data=json.dumps(update_doc), verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['version']
|
||||
|
12
backups.py
12
backups.py
@ -22,9 +22,10 @@ import exceptions
|
||||
|
||||
class BackupsManager(object):
|
||||
|
||||
def __init__(self, client):
|
||||
def __init__(self, client, verify=True):
|
||||
self.client = client
|
||||
self.endpoint = self.client.endpoint + '/v1/backups/'
|
||||
self.verify = verify
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -33,7 +34,8 @@ class BackupsManager(object):
|
||||
def create(self, backup_metadata):
|
||||
r = requests.post(self.endpoint,
|
||||
data=json.dumps(backup_metadata),
|
||||
headers=self.headers)
|
||||
headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 201:
|
||||
raise exceptions.ApiClientException(r)
|
||||
backup_id = r.json()['backup_id']
|
||||
@ -41,7 +43,7 @@ class BackupsManager(object):
|
||||
|
||||
def delete(self, backup_id):
|
||||
endpoint = self.endpoint + backup_id
|
||||
r = requests.delete(endpoint, headers=self.headers)
|
||||
r = requests.delete(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -61,7 +63,7 @@ class BackupsManager(object):
|
||||
data = json.dumps(search) if search else None
|
||||
query = {'limit': int(limit), 'offset': int(offset)}
|
||||
r = requests.get(self.endpoint, headers=self.headers,
|
||||
params=query, data=data)
|
||||
params=query, data=data, verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -69,7 +71,7 @@ class BackupsManager(object):
|
||||
|
||||
def get(self, backup_id):
|
||||
endpoint = self.endpoint + backup_id
|
||||
r = requests.get(endpoint, headers=self.headers)
|
||||
r = requests.get(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 200:
|
||||
return r.json()
|
||||
if r.status_code == 404:
|
||||
|
28
client.py
28
client.py
@ -187,7 +187,11 @@ class Client(object):
|
||||
auth_url=None,
|
||||
session=None,
|
||||
endpoint=None,
|
||||
opts=None):
|
||||
opts=None,
|
||||
project_name=None,
|
||||
user_domain_name=None,
|
||||
project_domain_name=None,
|
||||
verify=True):
|
||||
|
||||
self.opts = opts or build_os_option_parser(
|
||||
argparse.ArgumentParser(description='Freezer Client')
|
||||
@ -204,22 +208,32 @@ class Client(object):
|
||||
self.opts.os_auth_url = auth_url
|
||||
if endpoint:
|
||||
self.opts.os_backup_url = endpoint
|
||||
if project_name:
|
||||
self.opts.os_project_name = project_name
|
||||
if user_domain_name:
|
||||
self.opts.user_domain_name = user_domain_name
|
||||
if project_domain_name:
|
||||
self.opts.project_domain_name = project_domain_name
|
||||
|
||||
# flag to initialize freezer-scheduler with insecure mode
|
||||
self.verify = verify
|
||||
|
||||
self._session = session
|
||||
self.version = version
|
||||
|
||||
self.backups = BackupsManager(self)
|
||||
self.registration = RegistrationManager(self)
|
||||
self.jobs = JobManager(self)
|
||||
self.actions = ActionManager(self)
|
||||
self.sessions = SessionManager(self)
|
||||
self.backups = BackupsManager(self, verify=verify)
|
||||
self.registration = RegistrationManager(self, verify=verify)
|
||||
self.jobs = JobManager(self, verify=verify)
|
||||
self.actions = ActionManager(self, verify=verify)
|
||||
self.sessions = SessionManager(self, verify=verify)
|
||||
|
||||
|
||||
@cached_property
|
||||
def session(self):
|
||||
if self._session:
|
||||
return self._session
|
||||
auth_plugin = get_auth_plugin(self.opts)
|
||||
return ksc_session.Session(auth=auth_plugin)
|
||||
return ksc_session.Session(auth=auth_plugin, verify=self.verify)
|
||||
|
||||
@cached_property
|
||||
def endpoint(self):
|
||||
|
24
jobs.py
24
jobs.py
@ -22,9 +22,10 @@ import exceptions
|
||||
|
||||
class JobManager(object):
|
||||
|
||||
def __init__(self, client):
|
||||
def __init__(self, client, verify=True):
|
||||
self.client = client
|
||||
self.endpoint = self.client.endpoint + '/v1/jobs/'
|
||||
self.verify = verify
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -36,7 +37,8 @@ class JobManager(object):
|
||||
doc['client_id'] = doc.get('client_id', '') or self.client.client_id
|
||||
r = requests.post(endpoint,
|
||||
data=json.dumps(doc),
|
||||
headers=self.headers)
|
||||
headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 201:
|
||||
raise exceptions.ApiClientException(r)
|
||||
job_id = r.json()['job_id']
|
||||
@ -44,7 +46,7 @@ class JobManager(object):
|
||||
|
||||
def delete(self, job_id):
|
||||
endpoint = self.endpoint + job_id
|
||||
r = requests.delete(endpoint, headers=self.headers)
|
||||
r = requests.delete(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -52,7 +54,7 @@ class JobManager(object):
|
||||
data = json.dumps(search) if search else None
|
||||
query = {'limit': int(limit), 'offset': int(offset)}
|
||||
r = requests.get(self.endpoint, headers=self.headers,
|
||||
params=query, data=data)
|
||||
params=query, data=data, verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['jobs']
|
||||
@ -66,7 +68,7 @@ class JobManager(object):
|
||||
|
||||
def get(self, job_id):
|
||||
endpoint = self.endpoint + job_id
|
||||
r = requests.get(endpoint, headers=self.headers)
|
||||
r = requests.get(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 200:
|
||||
return r.json()
|
||||
if r.status_code == 404:
|
||||
@ -77,7 +79,8 @@ class JobManager(object):
|
||||
endpoint = self.endpoint + job_id
|
||||
r = requests.patch(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(update_doc))
|
||||
data=json.dumps(update_doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['version']
|
||||
@ -97,7 +100,8 @@ class JobManager(object):
|
||||
doc = {"start": None}
|
||||
r = requests.post(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(doc))
|
||||
data=json.dumps(doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 202:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()
|
||||
@ -117,7 +121,8 @@ class JobManager(object):
|
||||
doc = {"stop": None}
|
||||
r = requests.post(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(doc))
|
||||
data=json.dumps(doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 202:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()
|
||||
@ -137,7 +142,8 @@ class JobManager(object):
|
||||
doc = {"abort": None}
|
||||
r = requests.post(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(doc))
|
||||
data=json.dumps(doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 202:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()
|
||||
|
@ -22,9 +22,10 @@ import exceptions
|
||||
|
||||
class RegistrationManager(object):
|
||||
|
||||
def __init__(self, client):
|
||||
def __init__(self, client, verify=True):
|
||||
self.client = client
|
||||
self.endpoint = self.client.endpoint + '/v1/clients/'
|
||||
self.verify = verify
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -33,7 +34,8 @@ class RegistrationManager(object):
|
||||
def create(self, client_info):
|
||||
r = requests.post(self.endpoint,
|
||||
data=json.dumps(client_info),
|
||||
headers=self.headers)
|
||||
headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 201:
|
||||
raise exceptions.ApiClientException(r)
|
||||
client_id = r.json()['client_id']
|
||||
@ -41,7 +43,8 @@ class RegistrationManager(object):
|
||||
|
||||
def delete(self, client_id):
|
||||
endpoint = self.endpoint + client_id
|
||||
r = requests.delete(endpoint, headers=self.headers)
|
||||
r = requests.delete(endpoint, headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -65,14 +68,14 @@ class RegistrationManager(object):
|
||||
data = json.dumps(search) if search else None
|
||||
query = {'limit': int(limit), 'offset': int(offset)}
|
||||
r = requests.get(self.endpoint, headers=self.headers,
|
||||
params=query, data=data)
|
||||
params=query, data=data, verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['clients']
|
||||
|
||||
def get(self, client_id):
|
||||
endpoint = self.endpoint + client_id
|
||||
r = requests.get(endpoint, headers=self.headers)
|
||||
r = requests.get(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 200:
|
||||
return r.json()
|
||||
if r.status_code == 404:
|
||||
|
25
sessions.py
25
sessions.py
@ -22,9 +22,10 @@ import exceptions
|
||||
|
||||
class SessionManager(object):
|
||||
|
||||
def __init__(self, client):
|
||||
def __init__(self, client, verify=True):
|
||||
self.client = client
|
||||
self.endpoint = self.client.endpoint + '/v1/sessions/'
|
||||
self.verify = verify
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -35,7 +36,8 @@ class SessionManager(object):
|
||||
endpoint = self.endpoint + session_id
|
||||
r = requests.post(endpoint,
|
||||
data=json.dumps(doc),
|
||||
headers=self.headers)
|
||||
headers=self.headers,
|
||||
verify=self.verify)
|
||||
if r.status_code != 201:
|
||||
raise exceptions.ApiClientException(r)
|
||||
session_id = r.json()['session_id']
|
||||
@ -43,7 +45,7 @@ class SessionManager(object):
|
||||
|
||||
def delete(self, session_id):
|
||||
endpoint = self.endpoint + session_id
|
||||
r = requests.delete(endpoint, headers=self.headers)
|
||||
r = requests.delete(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
|
||||
@ -51,7 +53,7 @@ class SessionManager(object):
|
||||
data = json.dumps(search) if search else None
|
||||
query = {'limit': int(limit), 'offset': int(offset)}
|
||||
r = requests.get(self.endpoint, headers=self.headers,
|
||||
params=query, data=data)
|
||||
params=query, data=data, verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['sessions']
|
||||
@ -63,7 +65,7 @@ class SessionManager(object):
|
||||
|
||||
def get(self, session_id):
|
||||
endpoint = self.endpoint + session_id
|
||||
r = requests.get(endpoint, headers=self.headers)
|
||||
r = requests.get(endpoint, headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 200:
|
||||
return r.json()
|
||||
if r.status_code == 404:
|
||||
@ -74,7 +76,8 @@ class SessionManager(object):
|
||||
endpoint = self.endpoint + session_id
|
||||
r = requests.patch(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(update_doc))
|
||||
data=json.dumps(update_doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 200:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()['version']
|
||||
@ -83,7 +86,7 @@ class SessionManager(object):
|
||||
# endpoint /v1/sessions/{sessions_id}/jobs/{job_id}
|
||||
endpoint = '{0}{1}/jobs/{2}'.format(self.endpoint, session_id, job_id)
|
||||
r = requests.put(endpoint,
|
||||
headers=self.headers)
|
||||
headers=self.headers, verify=self.verify)
|
||||
if r.status_code != 204:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return
|
||||
@ -95,7 +98,7 @@ class SessionManager(object):
|
||||
r = ''
|
||||
while retry:
|
||||
r = requests.delete(endpoint,
|
||||
headers=self.headers)
|
||||
headers=self.headers, verify=self.verify)
|
||||
if r.status_code == 204:
|
||||
return
|
||||
retry -= 1
|
||||
@ -126,7 +129,8 @@ class SessionManager(object):
|
||||
}}
|
||||
r = requests.post(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(doc))
|
||||
data=json.dumps(doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 202:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()
|
||||
@ -151,7 +155,8 @@ class SessionManager(object):
|
||||
}}
|
||||
r = requests.post(endpoint,
|
||||
headers=self.headers,
|
||||
data=json.dumps(doc))
|
||||
data=json.dumps(doc),
|
||||
verify=self.verify)
|
||||
if r.status_code != 202:
|
||||
raise exceptions.ApiClientException(r)
|
||||
return r.json()
|
||||
|
Loading…
x
Reference in New Issue
Block a user