Class: Avm::EacWebappBase0::Instances::Deploy

Inherits:
Object
  • Object
show all
Includes:
Avm::Entries::Jobs::Base
Defined in:
lib/avm/eac_webapp_base0/instances/deploy.rb,
lib/avm/eac_webapp_base0/instances/deploy/scm.rb,
lib/avm/eac_webapp_base0/instances/deploy/build.rb,
lib/avm/eac_webapp_base0/instances/deploy/version.rb,
lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb,
lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb,
lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb

Defined Under Namespace

Modules: AppendedDirectories, Build, Scm, Version, WriteOnTarget Classes: SetupFilesUnit

Constant Summary collapse

DEFAULT_REFERENCE =
'HEAD'
REQUEST_TEST_JOB =
'request_test'
JOBS =
(%w[create_build_dir build_content append_instance_content write_on_target
setup_files_units assert_instance_branch] + [REQUEST_TEST_JOB]).freeze

Instance Method Summary collapse

Instance Method Details

#assert_instance_branchObject



49
50
51
52
53
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 49

def assert_instance_branch
  infom 'Setting instance branch...'
  git.command('push', git_remote_name, "#{commit_reference}:refs/heads/#{instance.id}",
              '-f').execute!
end

#option_listObject



25
26
27
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 25

def option_list
  ::Avm::EacWebappBase0::Instances::Deploy.lists.option
end

#request_testObject



55
56
57
58
59
60
61
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 55

def request_test
  infom 'Requesting web interface...'
  uri = URI(instance.read_entry('web.url'))
  response = ::Net::HTTP.get_response(uri)
  infov 'Response status', response.code
  fatal_error "Request to #{uri} failed" unless response.code.to_i == 200
end

#runObject



29
30
31
32
33
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 29

def run
  super
ensure
  remove_build_dir
end

#setup_files_unitsObject



44
45
46
47
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 44

def setup_files_units
  instance.data_package.units.values.map(&:installation_files_data).select(&:present?)
          .each { |unit_install| setup_files_unit(unit_install.key, unit_install.subpath) }
end

#start_bannerObject



35
36
37
38
39
40
41
42
# File 'lib/avm/eac_webapp_base0/instances/deploy.rb', line 35

def start_banner
  infov 'Instance', instance
  infov 'Git reference (User)', git_reference.if_present('- BLANK -')
  infov 'Git remote name', git_remote_name
  infov 'Git reference (Found)', git_reference_found
  infov 'Git commit SHA1', commit_reference
  infov 'Appended directories', appended_directories
end