Ejemplo n.º 1
0
 def get_databag_attributes(self, atlas_set_header, databag_set_name):
     """
     Returns all items of a databag given the header and databag name in the atlas config file.
     """
     data_bag_attr = {}
     base_path = self.ah_obj.get_atlas_config_data("chef_module",
                                                   'chef-base-path')
     api = chef.autoconfigure(base_path)
     chef_databags = self.ah_obj.get_atlas_config_data(
         atlas_set_header, databag_set_name)[1]
     for databag in chef_databags.keys():
         data_bag = DataBag(databag, api)
         key_list = {}
         items = chef_databags[databag]['items'].keys()
         for item_index in items:
             key_list = chef_databags[databag]['items'][item_index]['keys']
             chef_databag_item = DataBagItem(databag, item_index, api)
             for item_keys, item_values in chef_databag_item.iteritems():
                 if item_keys in key_list:
                     data_bag_attr[item_keys] = item_values
                 elif type(item_values) == dict:
                     data_bag_attr[item_keys] = {}
                     for key in key_list:
                         attr_values = self.ah_obj.get_nested_attribute_values(
                             item_values, key)
                         data_bag_attr[item_keys][key] = attr_values
     return data_bag_attr
Ejemplo n.º 2
0
 def getDataBag(self, target_system):
     '''get databag.'''
     from chef import DataBag
     try:
         return DataBag(target_system, api=self.api)
     except Exception as error:
         logging.error('%s failed to get databag of %s', self.NAME,
                       target_system)
         logging.exception(error)
         raise error
 def test_create_item(self):
     value = self.random()
     bag_name = self.random()
     bag = DataBag.create(bag_name)
     self.register(bag)
     item_name = self.random()
     item = DataBagItem.create(bag, item_name, foo=value)
     self.assertIn('foo', item)
     self.assertEqual(item['foo'], value)
     self.assertIn(item_name, bag)
     bag2 = DataBag(bag_name)
     self.assertIn(item_name, bag2)
     item2 = bag2[item_name]
     self.assertIn('foo', item)
     self.assertEqual(item['foo'], value)
 def test_direct_item_bag(self):
     bag = DataBag('test_1')
     item = DataBagItem(bag, 'item_1')
     self.assertEqual(item['test_attr'], 1)
     self.assertEqual(item['other'], 'foo')
 def test_item(self):
     bag = DataBag('test_1')
     item = bag['item_1']
     self.assertEqual(item['test_attr'], 1)
     self.assertEqual(item['other'], 'foo')
 def test_keys(self):
     bag = DataBag('test_1')
     self.assertItemsEqual(bag.keys(), ['item_1', 'item_2'])
     self.assertItemsEqual(iter(bag), ['item_1', 'item_2'])
Ejemplo n.º 7
0
 def _get_databag(self, target_system):
     """get databag."""
     from chef import DataBag
     return DataBag(target_system, api=self.api_)