dipa 0.1.0.pre.1 → 0.1.0.pre.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +77 -49
  3. data/Rakefile +50 -0
  4. data/app/models/concerns/dipa/models/agent_state_attributes.rb +24 -0
  5. data/app/models/concerns/dipa/models/coordinator_state_attributes.rb +24 -0
  6. data/app/models/concerns/{models/dipa → dipa/models}/dumpable.rb +3 -3
  7. data/app/models/concerns/{models/dipa → dipa/models}/loadable.rb +4 -4
  8. data/app/models/concerns/dipa/models/setting_constants.rb +23 -0
  9. data/app/models/concerns/dipa/models/state_attribute_handling.rb +77 -0
  10. data/app/models/dipa/agent.rb +14 -13
  11. data/app/models/dipa/coordinator.rb +32 -19
  12. data/app/models/dipa/coordinator_options_record.rb +52 -0
  13. data/app/services/concerns/dipa/services/process_failure_handling.rb +80 -0
  14. data/app/services/dipa/agent_services/base_service.rb +21 -0
  15. data/app/services/dipa/agent_services/coordinator_state_service.rb +58 -4
  16. data/app/services/dipa/agent_services/post_processing_service.rb +5 -3
  17. data/app/services/dipa/agent_services/processing_service.rb +84 -3
  18. data/app/services/dipa/agent_services/start_processing_service.rb +6 -4
  19. data/app/services/dipa/coordinator_services/base_service.rb +21 -0
  20. data/app/services/dipa/coordinator_services/create_agents_service.rb +7 -5
  21. data/app/services/dipa/coordinator_services/destroy_service.rb +13 -0
  22. data/app/services/dipa/coordinator_services/maybe_cleanup_service.rb +20 -0
  23. data/app/services/dipa/coordinator_services/start_processing_service.rb +6 -4
  24. data/db/migrate/20220102132652_create_dipa_coordinators.rb +3 -5
  25. data/db/migrate/20220106183616_create_dipa_agents.rb +3 -3
  26. data/db/migrate/20230624053724_create_dipa_coordinator_options_record.rb +21 -0
  27. data/lib/dipa/engine.rb +15 -8
  28. data/lib/dipa/errors.rb +20 -3
  29. data/lib/dipa/processor/base.rb +20 -106
  30. data/lib/dipa/processor/concerns/coordinator.rb +86 -0
  31. data/lib/dipa/processor/concerns/options.rb +80 -0
  32. data/lib/dipa/processor/concerns/source.rb +17 -0
  33. data/lib/dipa/processor/concerns/state.rb +27 -0
  34. data/lib/dipa/processor/concerns/wait.rb +62 -0
  35. data/lib/dipa/processor/map.rb +1 -2
  36. data/lib/dipa/version.rb +3 -1
  37. data/lib/dipa.rb +18 -0
  38. metadata +54 -25
  39. data/app/models/concerns/models/dipa/state_attribute_handling.rb +0 -38
  40. data/app/models/modules/models/dipa/status_constants.rb +0 -24
  41. data/lib/tasks/auto_annotate_models.rake +0 -62
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Models
4
- module Dipa
5
- module StateAttributeHandling
6
- extend ActiveSupport::Concern
7
-
8
- include Modules::Models::Dipa::StatusConstants
9
-
10
- included do
11
- attribute :state, :string, default: INITIALIZED_STATE
12
-
13
- validates :state, presence: true, inclusion: { in: STATES }
14
- if Rails.version >= '7'
15
- validates :state, comparison: { equal_to: INITIALIZED_STATE },
16
- on: :create
17
- else
18
- validates :state, inclusion: { in: [INITIALIZED_STATE] },
19
- on: :create
20
- end
21
-
22
- STATES.each do |state_value|
23
- define_method("#{state_value}?".to_sym) do
24
- state == state_value
25
- end
26
- end
27
- end
28
-
29
- def started!
30
- update!(started_at: Time.zone.now, state: PROCESSING_STATE)
31
- end
32
-
33
- def finished!
34
- update!(finished_at: Time.zone.now, state: PROCESSED_STATE)
35
- end
36
- end
37
- end
38
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Modules
4
- module Models
5
- module Dipa
6
- module StatusConstants
7
- ABORTED_STATE = 'aborted'
8
- INITIALIZED_STATE = 'initialized'
9
- PROCESSED_STATE = 'processed'
10
- PROCESSING_STATE = 'processing'
11
- PROCESSING_FAILED_STATE = 'processing_failed'
12
- TIMEOUT_STATE = 'timed_out'
13
- STATES = [
14
- ABORTED_STATE,
15
- INITIALIZED_STATE,
16
- PROCESSED_STATE,
17
- PROCESSING_STATE,
18
- PROCESSING_FAILED_STATE,
19
- TIMEOUT_STATE
20
- ].freeze
21
- end
22
- end
23
- end
24
- end
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # NOTE: only doing this in development as some production environments (Heroku)
4
- # NOTE: are sensitive to local FS writes, and besides -- it's just not proper
5
- # NOTE: to have a dev-mode tool do its thing in production.
6
- if Rails.env.development?
7
- require 'annotate'
8
- desc 'annotate'
9
- task set_annotation_options: :environment do # rubocop:disable Metrics/BlockLength
10
- # You can override any of these by setting an environment variable of the
11
- # same name.
12
- Annotate.set_defaults(
13
- 'active_admin' => 'false',
14
- 'additional_file_patterns' => [],
15
- 'routes' => 'false',
16
- 'models' => 'true',
17
- 'position_in_routes' => 'before',
18
- 'position_in_class' => 'before',
19
- 'position_in_test' => 'before',
20
- 'position_in_fixture' => 'before',
21
- 'position_in_factory' => 'before',
22
- 'position_in_serializer' => 'before',
23
- 'show_foreign_keys' => 'true',
24
- 'show_complete_foreign_keys' => 'false',
25
- 'show_indexes' => 'true',
26
- 'simple_indexes' => 'false',
27
- 'model_dir' => 'app/models',
28
- 'root_dir' => '',
29
- 'include_version' => 'false',
30
- 'require' => '',
31
- 'exclude_tests' => 'true',
32
- 'exclude_fixtures' => 'true',
33
- 'exclude_factories' => 'false',
34
- 'exclude_serializers' => 'false',
35
- 'exclude_scaffolds' => 'true',
36
- 'exclude_controllers' => 'true',
37
- 'exclude_helpers' => 'true',
38
- 'exclude_sti_subclasses' => 'false',
39
- 'ignore_model_sub_dir' => 'false',
40
- 'ignore_columns' => nil,
41
- 'ignore_routes' => nil,
42
- 'ignore_unknown_models' => 'false',
43
- 'hide_limit_column_types' => 'integer,bigint,boolean',
44
- 'hide_default_column_types' => 'json,jsonb,hstore',
45
- 'skip_on_db_migrate' => 'false',
46
- 'format_bare' => 'true',
47
- 'format_rdoc' => 'false',
48
- 'format_yard' => 'false',
49
- 'format_markdown' => 'false',
50
- 'sort' => 'true',
51
- 'force' => 'false',
52
- 'frozen' => 'false',
53
- 'classified_sort' => 'true',
54
- 'trace' => 'false',
55
- 'wrapper_open' => nil,
56
- 'wrapper_close' => nil,
57
- 'with_comment' => 'true'
58
- )
59
- end
60
-
61
- Annotate.load_tasks
62
- end