X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?p=genesis.git;a=blobdiff_plain;f=opensteak%2Ftools%2Fopensteak%2Fforeman_objects%2Fitem.py;fp=opensteak%2Ftools%2Fopensteak%2Fforeman_objects%2Fitem.py;h=0000000000000000000000000000000000000000;hp=f418f8c118bc211674efe959358650a1890856dc;hb=e789028b421f6ead3979632755efffe01c1d41c5;hpb=7243b9793ea87c3070a032b69c01d779a7c8cbfd diff --git a/opensteak/tools/opensteak/foreman_objects/item.py b/opensteak/tools/opensteak/foreman_objects/item.py deleted file mode 100644 index f418f8c..0000000 --- a/opensteak/tools/opensteak/foreman_objects/item.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/python3 -# -*- 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. -# -# Authors: -# David Blaisonneau -# Arnaud Morin - -from pprint import pprint as pp - - -class ForemanItem(dict): - """ - Item class - Represent the content of a foreman object as a dict - """ - - def __init__(self, api, key, - objName, payloadObj, - *args, **kwargs): - """ Function __init__ - Represent the content of a foreman object as a dict - - @param api: The foreman api - @param key: The object Key - @param *args, **kwargs: the dict representation - @return RETURN: Itself - """ - self.api = api - self.key = key - if objName: - self.objName = objName - if payloadObj: - self.payloadObj = payloadObj - self.store = dict() - if args[0]: - self.update(dict(*args, **kwargs)) - # We get the smart class parameters for the good items - if objName in ['hosts', 'hostgroups', - 'puppet_classes', 'environments']: - from opensteak.foreman_objects.itemSmartClassParameter\ - import ItemSmartClassParameter - scp_ids = map(lambda x: x['id'], - self.api.list('{}/{}/smart_class_parameters' - .format(self.objName, key))) - scp_items = list(map(lambda x: ItemSmartClassParameter(self.api, x, - self.api.get('smart_class_parameters', x)), - scp_ids)) - scp = {'{}::{}'.format(x['puppetclass']['name'], - x['parameter']): x - for x in scp_items} - self.update({'smart_class_parameters_dict': scp}) - - def __setitem__(self, key, attributes): - """ Function __setitem__ - Set a parameter of a foreman object as a dict - - @param key: The key to modify - @param attribute: The data - @return RETURN: The API result - """ - if key is 'puppetclass_ids': - payload = {"puppetclass_id": attributes, - self.payloadObj + "_class": - {"puppetclass_id": attributes}} - return self.api.create("{}/{}/{}" - .format(self.objName, - self.key, - "puppetclass_ids"), - payload) - elif key is 'parameters': - payload = {"parameter": attributes} - return self.api.create("{}/{}/{}" - .format(self.objName, - self.key, - "parameters"), - payload) - else: - payload = {self.payloadObj: {key: attributes}} - return self.api.set(self.objName, self.key, payload) - - def getParam(self, name=None): - """ Function getParam - Return a dict of parameters or a parameter value - - @param key: The parameter name - @return RETURN: dict of parameters or a parameter value - """ - if 'parameters' in self.keys(): - l = {x['name']: x['value'] for x in self['parameters']} - if name: - if name in l.keys(): - return l[name] - else: - return False - else: - return l - - def checkAndCreateClasses(self, classes): - """ Function checkAndCreateClasses - Check and add puppet classe - - @param key: The parameter name - @param classes: The classes ids list - @return RETURN: boolean - """ - actual_classes = self['puppetclass_ids'] - for v in classes: - if v not in actual_classes: - self['puppetclass_ids'] = v - return list(classes).sort() is list(self['puppetclass_ids']).sort() - - def checkAndCreateParams(self, params): - """ Function checkAndCreateParams - Check and add global parameters - - @param key: The parameter name - @param params: The params dict - @return RETURN: boolean - """ - actual_params = self['param_ids'] - for k, v in params.items(): - if k not in actual_params: - self['parameters'] = {"name": k, "value": v} - return self['param_ids'].sort() == list(params.values()).sort()