def begin_creating_service_settings(settings_uuid, transition_entity=None): settings = transition_entity try: backend = settings.get_backend() backend.sync() except ServiceBackendNotImplemented: pass
def begin_recovering_erred_service_settings(settings_uuid, transition_entity=None): settings = models.ServiceSettings.objects.get(uuid=settings_uuid) try: backend = settings.get_backend() is_active = backend.ping() except ServiceBackendNotImplemented: is_active = False if is_active: settings.set_in_sync() settings.error_message = '' settings.save() logger.info('Service settings %s successfully recovered.' % settings.name) try: spl_model = SupportedServices.get_service_models()[settings.type]['service_project_link'] erred_spls = spl_model.objects.filter(service__settings=settings, state=SynchronizationStates.ERRED) recover_erred_services.delay([spl.to_string() for spl in erred_spls]) except KeyError: logger.warning('Failed to recover service project links for settings %s', settings) else: settings.set_erred() settings.error_message = 'Failed to ping service settings %s' % settings.name settings.save() logger.info('Failed to recover service settings %s.' % settings.name)
def _validate_settings(self, settings): backend = settings.get_backend() try: if not backend.check_admin_tenant(): raise serializers.ValidationError({ 'non_field_errors': _('Provided credentials are not for admin tenant.') }) except OpenStackBackendError: raise serializers.ValidationError( {'non_field_errors': _('Unable to validate credentials.')})