Merge "Remove Compass from genesis."
[genesis.git] / opensteak / tools / opensteak / foreman_objects / compute_resources.py
1 #!/usr/bin/python3
2 # -*- coding: utf-8 -*-
3 # Licensed under the Apache License, Version 2.0 (the "License"); you may
4 # not use this file except in compliance with the License. You may obtain
5 # a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 # License for the specific language governing permissions and limitations
13 # under the License.
14 #
15 # Authors:
16 # @author: David Blaisonneau <david.blaisonneau@orange.com>
17 # @author: Arnaud Morin <arnaud1.morin@orange.com>
18
19 from opensteak.foreman_objects.objects import ForemanObjects
20 from opensteak.foreman_objects.item import ForemanItem
21
22
23 class ComputeResources(ForemanObjects):
24     """
25     HostGroups class
26     """
27     objName = 'compute_resources'
28     payloadObj = 'compute_resource'
29
30     def list(self):
31         """ Function list
32         list the hostgroups
33
34         @return RETURN: List of ForemanItemHostsGroup objects
35         """
36         return list(map(lambda x: ForemanItem(self.api, x['id'], x),
37                         self.api.list(self.objName)))
38
39     def __getitem__(self, key):
40         """ Function __getitem__
41         Get an hostgroup
42
43         @param key: The hostgroup name or ID
44         @return RETURN: The ForemanItemHostsGroup object of an host
45         """
46         # Because Hostgroup did not support get by name we need to do it by id
47         if type(key) is not int:
48             key = self.getId(key)
49         ret = self.api.get(self.objName, key)
50         return ForemanItem(self.api, key, ret)
51
52     def __delitem__(self, key):
53         """ Function __delitem__
54         Delete an hostgroup
55
56         @param key: The hostgroup name or ID
57         @return RETURN: The API result
58         """
59         # Because Hostgroup did not support get by name we need to do it by id
60         if type(key) is not int:
61             key = self.getId(key)
62         return self.api.delete(self.objName, key)