Merge "Wrap calls to metadata_admin."

This commit is contained in:
Jenkins 2013-11-01 14:55:47 +00:00 committed by Gerrit Code Review
commit 2d9c67de88
1 changed files with 38 additions and 0 deletions

View File

@ -12,12 +12,50 @@
# License for the specific language governing permissions and limitations
# under the License.
import StringIO
from metadataclient import exc
class Wrapper(object):
def __init__(self, service_id, **kwargs):
self.id = service_id
for key, value in kwargs.items():
setattr(self, key, value)
class Controller(object):
def __init__(self, http_client):
self.http_client = http_client
def list_services(self):
resp, body = self.http_client.json_request('GET', '/v1/admin/services')
services = body.get('services', None)
if services:
return [Wrapper(service['full_service_name'], **service)
for service in services]
else:
raise exc.HTTPInternalServerError()
def download_service(self, service):
resp, body = self.http_client.raw_request(
'GET', '/v1/client/services/{service}'.format(service=service))
return body
def upload_service(self, data):
resp, body = self.http_client.raw_request(
'POST', '/v1/admin/services/', body=data)
return body
def delete_service(self, service):
resp, body = self.http_client.raw_request(
'DELETE', '/v1/admin/services/{service}'.format(service=service))
return body
def toggle_enabled(self, service):
resp, body = self.http_client.raw_request(
'POST', '/v1/admin/services/{service}/toggle_enabled'.format(
service=service))
return body
def list_ui(self, path=None):
if path:
url = '/v1/admin/ui/{path}'.format(path=path)