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
7 # http://www.apache.org/licenses/LICENSE-2.0
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
16 # @author: David Blaisonneau <david.blaisonneau@orange.com>
17 # @author: Arnaud Morin <arnaud1.morin@orange.com>
19 from opensteak.foreman_objects.objects import ForemanObjects
20 from opensteak.foreman_objects.item import ForemanItem
23 class OperatingSystems(ForemanObjects):
25 OperatingSystems class
27 objName = 'operatingsystems'
28 payloadObj = 'operatingsystem'
30 def __getitem__(self, key):
31 """ Function __getitem__
33 @param key: The operating system id/name
34 @return RETURN: The item
36 ret = self.api.list(self.objName,
37 filter='title = "{}"'.format(key))
39 return ForemanItem(self.api, key,
40 self.objName, self.payloadObj,
45 def __setitem__(self, key, attributes):
46 """ Function __getitem__
48 @param key: The operating system id/name
49 @param attributes: The content of the operating system to create
50 @return RETURN: The API result
53 payload = {self.payloadObj: {'title': key}}
54 payload[self.payloadObj].update(attributes)
55 return self.api.create(self.objName, payload)
60 Get the list of all objects name with Ids
62 @param key: The targeted object
63 @return RETURN: A dict of obejct name:id
65 return { x['title']: x['id'] for x in self.api.list(self.objName,