dipa 0.1.0.pre.1 → 0.1.0.pre.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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