Class: MistralClient::Workflow

Inherits:
Base
  • Object
show all
Includes:
Mixins::Definable, Mixins::Deletable, Mixins::MistralObject
Defined in:
lib/mistral_client/workflow.rb

Constant Summary collapse

UNICODE_FIELDS =
%w[definition input name project_id scope].freeze
BOOL_FIELDS =
[].freeze
JSON_FIELDS =
[].freeze
PATH =
'workflows'.freeze

Constants inherited from Base

Base::DATE_FIELDS

Instance Method Summary collapse

Methods included from Mixins::Deletable

#delete!

Methods included from Mixins::Definable

#parse_definition

Methods included from Mixins::MistralObject

included, #ivars_from_response, #list, #reload

Constructor Details

#initialize(server, definition = nil, id: nil, name: nil) ⇒ Workflow

Returns a new instance of Workflow.



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/mistral_client/workflow.rb', line 13

def initialize(server, definition = nil, id: nil, name: nil)
  super()
  @server = server
  if definition
    @definition = parse_definition(definition)
    create_workflow
  elsif id || name
    @id = id || name
    reload
  end
end

Instance Method Details

#execute!(env: nil, task_name: nil, input: nil) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/mistral_client/workflow.rb', line 25

def execute!(env: nil, task_name: nil, input: nil)
  Execution.new(@server,
                workflow_id: @id,
                env: env,
                task_name: task_name,
                input: input)
end

#valid?(definition) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/mistral_client/workflow.rb', line 33

def valid?(definition)
  resp = perform_validation(definition)
  resp['valid']
end

#validate(definition) ⇒ Object



38
39
40
41
# File 'lib/mistral_client/workflow.rb', line 38

def validate(definition)
  resp = perform_validation(definition)
  resp['error']&.split("\n")&.first
end