diff --git a/tuskarclient/tests/v1_0/test_client.py b/tuskarclient/tests/v1_0/test_client.py new file mode 100644 index 0000000..02563af --- /dev/null +++ b/tuskarclient/tests/v1_0/test_client.py @@ -0,0 +1,30 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tuskarclient.tests import utils as tutils +from tuskarclient.v1_0 import client + + +class ClientTest(tutils.TestCase): + + def setUp(self): + super(ClientTest, self).setUp() + self.endpoint = "http://fakeurl:1234" + self.client = client.Client(self.endpoint) + + def test_managers_present(self): + self.assertEqual("RackManager", + self.client.racks.__class__.__name__) + self.assertEqual(self.client, self.client.racks.api) + self.assertEqual("ResourceClassManager", + self.client.resource_classes.__class__.__name__) + self.assertEqual(self.client, self.client.resource_classes.api) diff --git a/tuskarclient/v1_0/client.py b/tuskarclient/v1_0/client.py new file mode 100644 index 0000000..8c4b385 --- /dev/null +++ b/tuskarclient/v1_0/client.py @@ -0,0 +1,29 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tuskarclient.common import http +from tuskarclient.v1_0 import racks +from tuskarclient.v1_0 import resource_classes + + +class Client(http.HTTPClient): + """Client for the Tuskar v1 HTTP API. + + :param string endpoint: Endpoint URL for the tuskar service. + :param string token: Keystone authentication token. + :param integer timeout: Timeout for client http requests. (optional) + """ + + def __init__(self, *args, **kwargs): + super(Client, self).__init__(*args, **kwargs) + self.racks = racks.RackManager(self) + self.resource_classes = resource_classes.ResourceClassManager(self)