lib/idlc-sdk-deploy/config.rb in idlc-sdk-deploy-1.0.0.rc8 vs lib/idlc-sdk-deploy/config.rb in idlc-sdk-deploy-1.0.0.rc9

- old
+ new

@@ -31,15 +31,17 @@ rescue Idlc::Utility::MissingCredentials => e err("ERROR: #{e.message}\n") exit 1 end - def configure_state(bucket, sub_bucket) + def configure_state(bucket, sub_bucket, working_directory) validate_environment - configure_tfstatev8(bucket, sub_bucket) if Terraform::Binary::config.version.to_i <= 0.8 - configure_tfstatev9 if Terraform::Binary::config.version.to_i > 0.8 + tf_version = Terraform::Binary::config.version.split('.') + + configure_tfstatev8(bucket, sub_bucket, working_directory) if tf_version[0].to_i == 0 && tf_version[1].to_i <= 8 + configure_tfstatev9(bucket, sub_bucket, working_directory) if tf_version[0].to_i >= 0 && tf_version[1].to_i > 8 end def parse(config_file) raise ArgumentError, "#{config_file} does not exist" unless File.exist? config_file Config.add_deployment_var('inf_config_file', config_file) @@ -56,23 +58,30 @@ end end private - def configure_tfstatev8(bucket, sub_bucket) + def configure_tfstatev8(bucket, sub_bucket, working_directory) args = [] args << '-backend=s3' args << '-backend-config="acl=private"' args << "-backend-config=\"bucket=#{bucket}\"" args << '-backend-config="encrypt=true"' args << "-backend-config=\"key=#{sub_bucket}/terraform.tfstate\"" args << "-backend-config=\"region=#{@region}\"" Terraform::Binary.remote("config #{args.join(' ')}") + Terraform::Binary.get("-update #{working_directory}") end - def configure_tfstatev9 - Terraform::Binary.init() + def configure_tfstatev9(bucket, sub_bucket, working_directory) + args = [] + args << "-backend-config=\"bucket=#{bucket}\"" + args << "-backend-config=\"key=#{sub_bucket}/terraform.tfstate\"" + args << "-backend-config=\"region=#{@region}\"" + args << "-force-copy" + + Terraform::Binary.init("#{args.join(' ')} #{working_directory}") end def validate_environment %w[ SIZE