class Terraforming::CLI
Public Instance Methods
alb()
click to toggle source
# File lib/terraforming/cli.rb, line 14 def alb execute(Terraforming::Resource::ALB, options) end
asg()
click to toggle source
# File lib/terraforming/cli.rb, line 19 def asg execute(Terraforming::Resource::AutoScalingGroup, options) end
cwa()
click to toggle source
# File lib/terraforming/cli.rb, line 24 def cwa execute(Terraforming::Resource::CloudWatchAlarm, options) end
dbpg()
click to toggle source
# File lib/terraforming/cli.rb, line 29 def dbpg execute(Terraforming::Resource::DBParameterGroup, options) end
dbsg()
click to toggle source
# File lib/terraforming/cli.rb, line 34 def dbsg execute(Terraforming::Resource::DBSecurityGroup, options) end
dbsn()
click to toggle source
# File lib/terraforming/cli.rb, line 39 def dbsn execute(Terraforming::Resource::DBSubnetGroup, options) end
ddb()
click to toggle source
# File lib/terraforming/cli.rb, line 44 def ddb execute(Terraforming::Resource::DynamoDB, options) end
ec2()
click to toggle source
# File lib/terraforming/cli.rb, line 49 def ec2 execute(Terraforming::Resource::EC2, options) end
ecc()
click to toggle source
# File lib/terraforming/cli.rb, line 54 def ecc execute(Terraforming::Resource::ElastiCacheCluster, options) end
ecsn()
click to toggle source
# File lib/terraforming/cli.rb, line 59 def ecsn execute(Terraforming::Resource::ElastiCacheSubnetGroup, options) end
efs()
click to toggle source
# File lib/terraforming/cli.rb, line 69 def efs execute(Terraforming::Resource::EFSFileSystem, options) end
eip()
click to toggle source
# File lib/terraforming/cli.rb, line 64 def eip execute(Terraforming::Resource::EIP, options) end
elb()
click to toggle source
# File lib/terraforming/cli.rb, line 74 def elb execute(Terraforming::Resource::ELB, options) end
iamg()
click to toggle source
# File lib/terraforming/cli.rb, line 79 def iamg execute(Terraforming::Resource::IAMGroup, options) end
iamgm()
click to toggle source
# File lib/terraforming/cli.rb, line 84 def iamgm execute(Terraforming::Resource::IAMGroupMembership, options) end
iamgp()
click to toggle source
# File lib/terraforming/cli.rb, line 89 def iamgp execute(Terraforming::Resource::IAMGroupPolicy, options) end
iamip()
click to toggle source
# File lib/terraforming/cli.rb, line 94 def iamip execute(Terraforming::Resource::IAMInstanceProfile, options) end
iamp()
click to toggle source
# File lib/terraforming/cli.rb, line 99 def iamp execute(Terraforming::Resource::IAMPolicy, options) end
iampa()
click to toggle source
# File lib/terraforming/cli.rb, line 104 def iampa execute(Terraforming::Resource::IAMPolicyAttachment, options) end
iamr()
click to toggle source
# File lib/terraforming/cli.rb, line 109 def iamr execute(Terraforming::Resource::IAMRole, options) end
iamrp()
click to toggle source
# File lib/terraforming/cli.rb, line 114 def iamrp execute(Terraforming::Resource::IAMRolePolicy, options) end
iamu()
click to toggle source
# File lib/terraforming/cli.rb, line 119 def iamu execute(Terraforming::Resource::IAMUser, options) end
iamup()
click to toggle source
# File lib/terraforming/cli.rb, line 124 def iamup execute(Terraforming::Resource::IAMUserPolicy, options) end
igw()
click to toggle source
# File lib/terraforming/cli.rb, line 144 def igw execute(Terraforming::Resource::InternetGateway, options) end
kmsa()
click to toggle source
# File lib/terraforming/cli.rb, line 129 def kmsa execute(Terraforming::Resource::KMSAlias, options) end
kmsk()
click to toggle source
# File lib/terraforming/cli.rb, line 134 def kmsk execute(Terraforming::Resource::KMSKey, options) end
lc()
click to toggle source
# File lib/terraforming/cli.rb, line 139 def lc execute(Terraforming::Resource::LaunchConfiguration, options) end
nacl()
click to toggle source
# File lib/terraforming/cli.rb, line 149 def nacl execute(Terraforming::Resource::NetworkACL, options) end
nat()
click to toggle source
# File lib/terraforming/cli.rb, line 154 def nat execute(Terraforming::Resource::NATGateway, options) end
nif()
click to toggle source
# File lib/terraforming/cli.rb, line 159 def nif execute(Terraforming::Resource::NetworkInterface, options) end
r53r()
click to toggle source
# File lib/terraforming/cli.rb, line 164 def r53r execute(Terraforming::Resource::Route53Record, options) end
r53z()
click to toggle source
# File lib/terraforming/cli.rb, line 169 def r53z execute(Terraforming::Resource::Route53Zone, options) end
rds()
click to toggle source
# File lib/terraforming/cli.rb, line 174 def rds execute(Terraforming::Resource::RDS, options) end
rs()
click to toggle source
# File lib/terraforming/cli.rb, line 179 def rs execute(Terraforming::Resource::Redshift, options) end
rt()
click to toggle source
# File lib/terraforming/cli.rb, line 184 def rt execute(Terraforming::Resource::RouteTable, options) end
rta()
click to toggle source
# File lib/terraforming/cli.rb, line 189 def rta execute(Terraforming::Resource::RouteTableAssociation, options) end
s3()
click to toggle source
# File lib/terraforming/cli.rb, line 194 def s3 execute(Terraforming::Resource::S3, options) end
sg()
click to toggle source
# File lib/terraforming/cli.rb, line 199 def sg execute(Terraforming::Resource::SecurityGroup, options) end
sn()
click to toggle source
# File lib/terraforming/cli.rb, line 204 def sn execute(Terraforming::Resource::Subnet, options) end
snss()
click to toggle source
# File lib/terraforming/cli.rb, line 229 def snss execute(Terraforming::Resource::SNSTopicSubscription, options) end
snst()
click to toggle source
# File lib/terraforming/cli.rb, line 224 def snst execute(Terraforming::Resource::SNSTopic, options) end
sqs()
click to toggle source
# File lib/terraforming/cli.rb, line 209 def sqs execute(Terraforming::Resource::SQS, options) end
vgw()
click to toggle source
# File lib/terraforming/cli.rb, line 219 def vgw execute(Terraforming::Resource::VPNGateway, options) end
vpc()
click to toggle source
# File lib/terraforming/cli.rb, line 214 def vpc execute(Terraforming::Resource::VPC, options) end
Private Instance Methods
configure_aws(options)
click to toggle source
# File lib/terraforming/cli.rb, line 235 def configure_aws(options) Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: options[:profile]) if options[:profile] Aws.config[:region] = options[:region] if options[:region] if options[:assume] args = { role_arn: options[:assume], role_session_name: "terraforming-session-#{Time.now.to_i}" } args[:client] = Aws::STS::Client.new(profile: options[:profile]) if options[:profile] Aws.config[:credentials] = Aws::AssumeRoleCredentials.new(args) end Aws.use_bundled_cert! if options[:use_bundled_cert] end
execute(klass, options)
click to toggle source
# File lib/terraforming/cli.rb, line 248 def execute(klass, options) configure_aws(options) result = options[:tfstate] ? tfstate(klass, options[:merge]) : tf(klass) if options[:tfstate] && options[:merge] && options[:overwrite] open(options[:merge], "w+") do |f| f.write(result) f.flush end else puts result end end
tf(klass)
click to toggle source
# File lib/terraforming/cli.rb, line 262 def tf(klass) klass.tf end
tfstate(klass, tfstate_path)
click to toggle source
# File lib/terraforming/cli.rb, line 266 def tfstate(klass, tfstate_path) tfstate = tfstate_path ? MultiJson.load(open(tfstate_path).read) : tfstate_skeleton tfstate["serial"] = tfstate["serial"] + 1 tfstate["modules"][0]["resources"] = tfstate["modules"][0]["resources"].merge(klass.tfstate) MultiJson.encode(tfstate, pretty: true) end
tfstate_skeleton()
click to toggle source
# File lib/terraforming/cli.rb, line 273 def tfstate_skeleton { "version" => 1, "serial" => 0, "modules" => [ { "path" => [ "root" ], "outputs" => {}, "resources" => {}, } ] } end