def getTargetSystems(self, oses): '''get target systems.''' from chef import DataBag try: databags = DataBag.list(api=self.api) except Exception as error: logging.error('%s failed to get the databags', self.NAME) logging.exception(error) raise error target_systems = {} for os_version in oses: target_systems[os_version] = [] for databag in databags: target_system = databag global_databag_item = self.getGlobalDataBagItem( self.getDataBag(target_system)) support_oses = global_databag_item.get('support_oses', []) for os_version in oses: for support_os in support_oses: if fnmatch.fnmatch(os_version, support_os): target_systems[os_version].append(target_system) break return target_systems
def get_databag_list(self, databag=''): #returns a list of all available data bags on the chef_server data_bag_list = [] try: data_bags = DataBag(databag,self.api) for items in data_bags.list(self.api): data_bag_list.append(items) if not data_bag_list: raise Exception, "No Data bags items found" else: return data_bag_list except Exception as exp_object: exc_type, exc_obj, exc_tb = sys.exc_info() self.ah_obj.print_exception("chef_helper.py", "get_databag_list()", exp_object, exc_type, exc_obj, exc_tb) return []
def get_target_systems(self, oses): """get target systems.""" from chef import DataBag databags = DataBag.list(api=self.api_) target_systems = {} for os_version in oses: target_systems[os_version] = [] for databag in databags: target_system = databag global_databag_item = self._get_global_databag_item( self._get_databag(target_system)) support_oses = global_databag_item['support_oses'] for os_version in oses: for support_os in support_oses: if fnmatch.fnmatch(os_version, support_os): target_systems[os_version].append(target_system) break return target_systems
def get_databags(self): if not self.authenticated: return [] vals = self._bag_adapter.filter(list(DataBag.list(api=self._api))) return sorted(vals)
def test_list(self): bags = DataBag.list() self.assertIn('test_1', bags) self.assertIsInstance(bags['test_1'], DataBag)
def test_create_bag(self): name = self.random() bag = DataBag.create(name) self.register(bag) self.assertIn(name, DataBag.list())
def test_list(self): bags = DataBag.list(self.api) self.assertIn('test_1', bags) self.assertIsInstance(bags['test_1'], DataBag)
def test_create_bag(self): name = self.random() bag = DataBag.create(name, self.api) self.register(bag) self.assertIn(name, DataBag.list(self.api))