Sha256: 7a8cbb3a0c616041fa51591931f04f9417195091fa901e3e121110384d620e3d

Contents?: true

Size: 1.37 KB

Versions: 24

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

require 'avm/data/instance/unit'
require 'eac_ruby_utils/core_ext'
require 'curb'
require 'open-uri'

module Avm
  module EacRedmineBase0
    module Instances
      class DataUnit < ::Avm::Data::Instance::Unit
        common_constructor :instance

        EXPORT_PATH = '/backup/export'
        EXTENSION = '.tar'
        IMPORT_PATH = '/backup/import.json'

        def do_dump(data_path)
          ::File.open(data_path, 'wb') do |file|
            file << export_request.response.body_data_or_raise
          end
        end

        def do_load(data_path)
          do_load_by_web(data_path) || do_load_by_rake(data_path) || raise('Failed to load')
        end

        def do_load_by_web(data_path)
          c = Curl::Easy.new(import_url)
          c.multipart_form_post = true
          c.http_post(Curl::PostField.file('redmine_with_git_tableless_load[path]', data_path))
          c.perform
          true
        rescue Curl::Err::ConnectionFailedError
          false
        end

        def do_load_by_rake(data_path)
          instance.bundle('exec', 'rake', "redmine_with_git:load:all[#{data_path}]").system
          true
        end

        def export_request
          instance.rest_api.request(EXPORT_PATH)
        end

        def import_url
          instance.rest_api.build_service_url(IMPORT_PATH).to_s
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
avm-eac_redmine_base0-0.16.1 lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.45.2 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.45.1 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.45.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.44.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.43.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.42.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.41.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.40.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.39.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.38.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.37.2 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.37.1 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.37.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.36.1 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.36.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.35.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.34.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
eac_tools-0.33.0 sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb
avm-eac_redmine_base0-0.16.0 lib/avm/eac_redmine_base0/instances/data_unit.rb