summaryrefslogtreecommitdiff
path: root/db/fixtures/development/31_terraform_state.rb
blob: 76f9c270f72fd19745fe419eeb4ee252c8b94c39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

TERRAFORM_FILE_VERSION = 1

# Create sample terraform states in existing projects
Gitlab::Seeder.quiet do
  tfdata = {terraform_version: '0.14.1'}.to_json

  Project.not_mass_generated.find_each do |project|
    # Create as the project's creator
    user = project.creator
    # Set a build job source, if one exists for the project
    build = project.builds.last

    remote_state_handler = ::Terraform::RemoteStateHandler.new(project, user, name: project.path, lock_id: nil)

    remote_state_handler.handle_with_lock do |state|
      # Upload a file if a version does not already exist
      state.update_file!(CarrierWaveStringFile.new(tfdata), version: TERRAFORM_FILE_VERSION, build: build) if state.latest_version.nil?
    end

    # rubocop:disable Rails/Output
    print '.'
    # rubocop:enable Rails/Output
  end
end