from lib.util import Util
import hashlib
import os
+import re
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
+ def role_list(self, token):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+
+ _url = "{0}/admin/v1/roles".format(self._base_path)
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+
+ return result
+
+ def role_create(self, token, role_data):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/admin/v1/roles".format(self._base_path)
+
+ try:
+ r = requests.post(_url, json=role_data, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
+ def role_update(self, token, role_id, role_data):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/admin/v1/roles/{1}".format(self._base_path, role_id)
+
+ try:
+ r = requests.put(_url, json=role_data, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ else:
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
+ def role_delete(self, token, id, force=None):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ query_path = ''
+ if force:
+ query_path = '?FORCE=true'
+ _url = "{0}/admin/v1/roles/{1}{2}".format(self._base_path, id, query_path)
+ try:
+ r = requests.delete(_url, params=None, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ else:
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
+ def role_get(self, token, id):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+
+ _url = "{0}/admin/v1/roles/{1}".format(self._base_path, id)
+ try:
+ r = requests.get(_url, params=None, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
def user_list(self, token):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/json", "accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
- result['data'] = Util.json_loads_byteified(r.text)
return result
def project_delete(self, token, id):
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json2yaml(yaml.load(str(r.text)))
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
+ def nsi_list(self, token):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/yaml", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/nsilcm/v1/netslice_instances".format(self._base_path)
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+
+ return result
+
def ns_list(self, token):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/yaml", "accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r:
result['error'] = False
- result['data'] = Util.json_loads_byteified(r.text)
+ if r.status_code != requests.codes.no_content:
+ result['data'] = Util.json_loads_byteified(r.text)
return result
def vnfd_delete(self, token, id):
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['data'] = r.json()
result['error'] = False
if r.status_code == requests.codes.conflict:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['data'] = r.json()
result['error'] = False
if r.status_code == requests.codes.conflict:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
if r.status_code == requests.codes.conflict:
result['data'] = "Invalid ID."
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
if r.status_code == requests.codes.conflict:
result['data'] = "Invalid ID."
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
try:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.no_content:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
try:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
tarf = StringIO.StringIO(r.content)
return tarf
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
tarf = StringIO.StringIO(r.content)
return tarf
def _descriptor_update(self, tarf, data):
# extract the package on a tmp directory
- tarf.extractall('/tmp')
-
+ tarf.extractall('/tmp')
+ regex = re.compile(r"^[^/]+(/[^/]+\.(yaml|yml))$", re.U)
for name in tarf.getnames():
- if name.endswith(".yaml") or name.endswith(".yml"):
+ if regex.match(name):
with open('/tmp/' + name, 'w') as outfile:
yaml.safe_dump(data, outfile, default_flow_style=False)
break
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
return yaml.load(r.text)
else:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
return yaml.load(r.text)
else:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = r.text
else:
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = r.text
else:
return result
+ def nsi_create(self, token, nsi_data):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/yaml", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+
+ _url = "{0}/nsilcm/v1/netslice_instances_content".format(self._base_path)
+
+ try:
+ r = requests.post(_url, json=nsi_data, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
def ns_create(self, token, ns_data):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/yaml", "accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+
+ return result
+
+ def nsi_op_list(self, token, id):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/nsilcm/v1/nsi_lcm_op_occs/?netsliceInstanceId={1}".format(self._base_path, id)
+
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
+ def nsi_delete(self, token, id, force=None):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/yaml", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ query_path = ''
+ if force:
+ query_path = '?FORCE=true'
+ _url = "{0}/nsilcm/v1/netslice_instances_content/{1}{2}".format(self._base_path, id, query_path)
+ try:
+ r = requests.delete(_url, params=None, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r:
+ result['error'] = False
+ if r.status_code != requests.codes.no_content:
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
def ns_delete(self, token, id, force=None):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/yaml", "accept": "application/json",
result['data'] = Util.json_loads_byteified(r.text)
return result
+ def nsi_get(self, token, id):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/nsilcm/v1/netslice_instances/{1}".format(self._base_path, id)
+
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
def ns_get(self, token, id):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/json", "accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
# result['data'] = Util.json_loads_byteified(r.text)
result['data'] = r.text
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
# result['data'] = Util.json_loads_byteified(r.text)
result['data'] = r.text
return result
+ def wim_list(self, token):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/yaml", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/admin/v1/wim_accounts".format(self._base_path)
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+
+ return result
+
def vim_list(self, token):
result = {'error': True, 'data': ''}
headers = {"Content-Type": "application/yaml", "accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
+ def wim_delete(self, token, id):
+ result = {'error': True, 'data': ''}
+ headers = {"accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/admin/v1/wim_accounts/{1}".format(self._base_path, id)
+ try:
+ r = requests.delete(_url, params=None, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ else:
+ result['data'] = r.text
+ return result
+
def vim_delete(self, token, id):
result = {'error': True, 'data': ''}
headers = {"accept": "application/json",
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.accepted:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
result['data'] = r.text
return result
+ def wim_get(self, token, id):
+
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+ _url = "{0}/admin/v1/wim_accounts/{1}".format(self._base_path, id)
+
+ try:
+ r = requests.get(_url, params=None, verify=False, stream=True, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
def vim_get(self, token, id):
result = {'error': True, 'data': ''}
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
+ result['error'] = False
+ result['data'] = Util.json_loads_byteified(r.text)
+ return result
+
+ def wim_create(self, token, wim_data):
+ result = {'error': True, 'data': ''}
+ headers = {"Content-Type": "application/json", "accept": "application/json",
+ 'Authorization': 'Bearer {}'.format(token['id'])}
+
+ _url = "{0}/admin/v1/wim_accounts".format(self._base_path)
+
+ try:
+ r = requests.post(_url, json=wim_data, verify=False, headers=headers)
+ except Exception as e:
+ log.exception(e)
+ result['data'] = str(e)
+ return result
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.accepted:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
else:
result['data'] = r.text
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.ok:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result
log.exception(e)
result['data'] = str(e)
return result
- if r.status_code == requests.codes.created:
+ if r.status_code in (200, 201, 202, 204):
result['error'] = False
result['data'] = Util.json_loads_byteified(r.text)
return result