# Copyright (C) 2017-2018 Lars Wirzenius # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import ick2 class PipelineAPI(ick2.ResourceApiBase): def __init__(self, state): super().__init__('pipelines', state) def get_resource_name(self, resource): return resource.get('pipeline') def create(self, body, **kwargs): resource = self.mangle_new_resource(body) actions = resource.get('actions', []) for action in actions: where = action.get('where') if where is None: raise NoWhere(action) return super().create(body, **kwargs) class NoWhere(Exception): def __init__(self, action): super().__init__( 'Every action MUST specify a "where": {}'.format(action))