blob: 652c345cea30ab5a174dabd5aac5538c6f235a78 [file] [log] [blame]
rajalakshmi-ganesanab426722013-02-08 15:49:15 +05301# Copyright 2013 OpenStack Foundation
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16import json
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053017
18from tempest.common.rest_client import RestClient
Matthew Treinish684d8992014-01-30 16:27:40 +000019from tempest import config
20
21CONF = config.CONF
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053022
23
24class EndPointClientJSON(RestClient):
25
Andrea Frittoli8bbdb162014-01-06 11:06:13 +000026 def __init__(self, auth_provider):
27 super(EndPointClientJSON, self).__init__(auth_provider)
Matthew Treinish684d8992014-01-30 16:27:40 +000028 self.service = CONF.identity.catalog_type
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053029 self.endpoint_url = 'adminURL'
Andrea Frittoli8bbdb162014-01-06 11:06:13 +000030 self.api_version = "v3"
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053031
32 def list_endpoints(self):
33 """GET endpoints."""
34 resp, body = self.get('endpoints')
35 body = json.loads(body)
36 return resp, body['endpoints']
37
38 def create_endpoint(self, service_id, interface, url, **kwargs):
39 """Create endpoint."""
40 region = kwargs.get('region', None)
41 enabled = kwargs.get('enabled', None)
42 post_body = {
43 'service_id': service_id,
44 'interface': interface,
45 'url': url,
46 'region': region,
47 'enabled': enabled
48 }
49 post_body = json.dumps({'endpoint': post_body})
Valeriy Ponomaryov88686d82014-02-16 12:24:51 +020050 resp, body = self.post('endpoints', post_body)
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053051 body = json.loads(body)
52 return resp, body['endpoint']
53
54 def update_endpoint(self, endpoint_id, service_id=None, interface=None,
55 url=None, region=None, enabled=None):
56 """Updates an endpoint with given parameters."""
57 post_body = {}
58 if service_id is not None:
59 post_body['service_id'] = service_id
60 if interface is not None:
61 post_body['interface'] = interface
62 if url is not None:
63 post_body['url'] = url
64 if region is not None:
65 post_body['region'] = region
66 if enabled is not None:
67 post_body['enabled'] = enabled
68 post_body = json.dumps({'endpoint': post_body})
Valeriy Ponomaryov88686d82014-02-16 12:24:51 +020069 resp, body = self.patch('endpoints/%s' % endpoint_id, post_body)
rajalakshmi-ganesanab426722013-02-08 15:49:15 +053070 body = json.loads(body)
71 return resp, body['endpoint']
72
73 def delete_endpoint(self, endpoint_id):
74 """Delete endpoint."""
75 resp_header, resp_body = self.delete('endpoints/%s' % endpoint_id)
76 return resp_header, resp_body