 561a6c5b9c
			
		
	
	561a6c5b9c
	
	
	
		
			
			Inventory will be access point for all sub entities to create an intuitive API for python developers to use when trying to access inventory entities (cells, hosts, etc). Change-Id: Icea217103c735ad53f029dac9cfd405281a1a715
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| # 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.
 | |
| """Top-level client for version 1 of Craton's API."""
 | |
| from cratonclient.v1 import hosts
 | |
| from cratonclient.v1 import inventory
 | |
| from cratonclient.v1 import regions
 | |
| 
 | |
| 
 | |
| class Client(object):
 | |
|     """Craton v1 API Client."""
 | |
| 
 | |
|     def __init__(self, session, url):
 | |
|         """Initialize our client object with our session and url.
 | |
| 
 | |
|         :param session:
 | |
|             Initialized Session object.
 | |
|         :type session:
 | |
|             cratonclient.session.Session
 | |
|         :param str url:
 | |
|             The URL that points us to the craton instance. For example,
 | |
|             'https://10.1.1.0:8080/'.
 | |
|         """
 | |
|         self._url = url
 | |
|         self._session = session
 | |
| 
 | |
|         if not self._url.endswith('/v1'):
 | |
|             self._url += '/v1'
 | |
| 
 | |
|         manager_kwargs = {'session': self._session, 'url': url}
 | |
|         # TODO(cmspence):remove self.hosts
 | |
|         self.hosts = hosts.HostManager(**manager_kwargs)
 | |
|         self.regions = regions.RegionManager(**manager_kwargs)
 | |
|         # TODO(cmspence):self.projects, self.users
 | |
| 
 | |
|     def inventory(self, region_id):
 | |
|         """Retrieve inventory for a given region."""
 | |
|         return inventory.Inventory(self._session,
 | |
|                                    self._url,
 | |
|                                    region_id)
 |