def _add_details(self, info):
        for (k, v) in six.iteritems(info):
            try:
                if k == 'artifacts':
                    v = self._add_artifact_details(v)
                elif k == 'services':
                    v = self._add_services_details(v)
                setattr(self, k, v)
                self._info[k] = v
            except __HOLE__:
                # In this case we already defined the attribute on the class
                pass
dataset/ETHPy150Open openstack/python-solumclient/solumclient/v1/plan.py/Plan._add_details