class Terraforming::CLI
Public Instance Methods
alb()
click to toggle source
# File lib/terraforming/cli.rb, line 63 def alb execute(Terraforming::Resource::ALB, options) end
all()
click to toggle source
# File lib/terraforming/cli.rb, line 13 def all executeAll([ # Terraforming::Resource::ALB, # Terraforming::Resource::AutoScalingGroup, Terraforming::Resource::CloudWatchAlarm, # Terraforming::Resource::DBParameterGroup, # Terraforming::Resource::DBSecurityGroup, # Terraforming::Resource::DBSubnetGroup, Terraforming::Resource::EC2, Terraforming::Resource::ElastiCacheCluster, # Terraforming::Resource::ElastiCacheSubnetGroup, Terraforming::Resource::EIP, Terraforming::Resource::EFSFileSystem, Terraforming::Resource::ELB, # Terraforming::Resource::IAMGroup, # Terraforming::Resource::IAMGroupMembership, # Terraforming::Resource::IAMGroupPolicy, # Terraforming::Resource::IAMInstanceProfile, # Terraforming::Resource::IAMPolicy, # Terraforming::Resource::IAMPolicyAttachment, # Terraforming::Resource::IAMRole, # Terraforming::Resource::IAMRolePolicy, # Terraforming::Resource::IAMUser, # Terraforming::Resource::IAMUserPolicy, # Terraforming::Resource::KMSAlias, Terraforming::Resource::KMSKey, # Terraforming::Resource::LaunchConfiguration, Terraforming::Resource::InternetGateway, # Terraforming::Resource::NetworkACL, Terraforming::Resource::NATGateway, # Terraforming::Resource::NetworkInterface, Terraforming::Resource::Route53Record, Terraforming::Resource::Route53Zone, Terraforming::Resource::RDS, Terraforming::Resource::Redshift, # Terraforming::Resource::RouteTable, # Terraforming::Resource::RouteTableAssociation, Terraforming::Resource::S3, # Terraforming::Resource::SecurityGroup, # Terraforming::Resource::Subnet, Terraforming::Resource::SQS, # Terraforming::Resource::VPC, Terraforming::Resource::VPNGateway, Terraforming::Resource::SNSTopic, Terraforming::Resource::SNSTopicSubscription, Terraforming::Resource::Config, ], options) end
asg()
click to toggle source
# File lib/terraforming/cli.rb, line 68 def asg execute(Terraforming::Resource::AutoScalingGroup, options) end
cwa()
click to toggle source
# File lib/terraforming/cli.rb, line 73 def cwa execute(Terraforming::Resource::CloudWatchAlarm, options) end
dbpg()
click to toggle source
# File lib/terraforming/cli.rb, line 78 def dbpg execute(Terraforming::Resource::DBParameterGroup, options) end
dbsg()
click to toggle source
# File lib/terraforming/cli.rb, line 83 def dbsg execute(Terraforming::Resource::DBSecurityGroup, options) end
dbsn()
click to toggle source
# File lib/terraforming/cli.rb, line 88 def dbsn execute(Terraforming::Resource::DBSubnetGroup, options) end
ec2()
click to toggle source
# File lib/terraforming/cli.rb, line 93 def ec2 execute(Terraforming::Resource::EC2, options) end
ecc()
click to toggle source
# File lib/terraforming/cli.rb, line 98 def ecc execute(Terraforming::Resource::ElastiCacheCluster, options) end
ecsn()
click to toggle source
# File lib/terraforming/cli.rb, line 103 def ecsn execute(Terraforming::Resource::ElastiCacheSubnetGroup, options) end
efs()
click to toggle source
# File lib/terraforming/cli.rb, line 113 def efs execute(Terraforming::Resource::EFSFileSystem, options) end
eip()
click to toggle source
# File lib/terraforming/cli.rb, line 108 def eip execute(Terraforming::Resource::EIP, options) end
elb()
click to toggle source
# File lib/terraforming/cli.rb, line 118 def elb execute(Terraforming::Resource::ELB, options) end
iamg()
click to toggle source
# File lib/terraforming/cli.rb, line 123 def iamg execute(Terraforming::Resource::IAMGroup, options) end
iamgm()
click to toggle source
# File lib/terraforming/cli.rb, line 128 def iamgm execute(Terraforming::Resource::IAMGroupMembership, options) end
iamgp()
click to toggle source
# File lib/terraforming/cli.rb, line 133 def iamgp execute(Terraforming::Resource::IAMGroupPolicy, options) end
iamip()
click to toggle source
# File lib/terraforming/cli.rb, line 138 def iamip execute(Terraforming::Resource::IAMInstanceProfile, options) end
iamp()
click to toggle source
# File lib/terraforming/cli.rb, line 143 def iamp execute(Terraforming::Resource::IAMPolicy, options) end
iampa()
click to toggle source
# File lib/terraforming/cli.rb, line 148 def iampa execute(Terraforming::Resource::IAMPolicyAttachment, options) end
iamr()
click to toggle source
# File lib/terraforming/cli.rb, line 153 def iamr execute(Terraforming::Resource::IAMRole, options) end
iamrp()
click to toggle source
# File lib/terraforming/cli.rb, line 158 def iamrp execute(Terraforming::Resource::IAMRolePolicy, options) end
iamu()
click to toggle source
# File lib/terraforming/cli.rb, line 163 def iamu execute(Terraforming::Resource::IAMUser, options) end
iamup()
click to toggle source
# File lib/terraforming/cli.rb, line 168 def iamup execute(Terraforming::Resource::IAMUserPolicy, options) end
igw()
click to toggle source
# File lib/terraforming/cli.rb, line 188 def igw execute(Terraforming::Resource::InternetGateway, options) end
kmsa()
click to toggle source
# File lib/terraforming/cli.rb, line 173 def kmsa execute(Terraforming::Resource::KMSAlias, options) end
kmsk()
click to toggle source
# File lib/terraforming/cli.rb, line 178 def kmsk execute(Terraforming::Resource::KMSKey, options) end
lc()
click to toggle source
# File lib/terraforming/cli.rb, line 183 def lc execute(Terraforming::Resource::LaunchConfiguration, options) end
nacl()
click to toggle source
# File lib/terraforming/cli.rb, line 193 def nacl execute(Terraforming::Resource::NetworkACL, options) end
nat()
click to toggle source
# File lib/terraforming/cli.rb, line 198 def nat execute(Terraforming::Resource::NATGateway, options) end
nif()
click to toggle source
# File lib/terraforming/cli.rb, line 203 def nif execute(Terraforming::Resource::NetworkInterface, options) end
r53r()
click to toggle source
# File lib/terraforming/cli.rb, line 208 def r53r execute(Terraforming::Resource::Route53Record, options) end
r53z()
click to toggle source
# File lib/terraforming/cli.rb, line 213 def r53z execute(Terraforming::Resource::Route53Zone, options) end
rds()
click to toggle source
# File lib/terraforming/cli.rb, line 218 def rds execute(Terraforming::Resource::RDS, options) end
rs()
click to toggle source
# File lib/terraforming/cli.rb, line 223 def rs execute(Terraforming::Resource::Redshift, options) end
rt()
click to toggle source
# File lib/terraforming/cli.rb, line 228 def rt execute(Terraforming::Resource::RouteTable, options) end
rta()
click to toggle source
# File lib/terraforming/cli.rb, line 233 def rta execute(Terraforming::Resource::RouteTableAssociation, options) end
s3()
click to toggle source
# File lib/terraforming/cli.rb, line 238 def s3 execute(Terraforming::Resource::S3, options) end
sg()
click to toggle source
# File lib/terraforming/cli.rb, line 243 def sg execute(Terraforming::Resource::SecurityGroup, options) end
sn()
click to toggle source
# File lib/terraforming/cli.rb, line 248 def sn execute(Terraforming::Resource::Subnet, options) end
snss()
click to toggle source
# File lib/terraforming/cli.rb, line 273 def snss execute(Terraforming::Resource::SNSTopicSubscription, options) end
snst()
click to toggle source
# File lib/terraforming/cli.rb, line 268 def snst execute(Terraforming::Resource::SNSTopic, options) end
sqs()
click to toggle source
# File lib/terraforming/cli.rb, line 253 def sqs execute(Terraforming::Resource::SQS, options) end
vgw()
click to toggle source
# File lib/terraforming/cli.rb, line 263 def vgw execute(Terraforming::Resource::VPNGateway, options) end
vpc()
click to toggle source
# File lib/terraforming/cli.rb, line 258 def vpc execute(Terraforming::Resource::VPC, options) end
Private Instance Methods
configure_aws(options)
click to toggle source
# File lib/terraforming/cli.rb, line 292 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] Aws.use_bundled_cert! if options[:use_bundled_cert] end
execute(klass, options)
click to toggle source
# File lib/terraforming/cli.rb, line 298 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
executeAll(klasses, options)
click to toggle source
# File lib/terraforming/cli.rb, line 279 def executeAll(klasses, options) configure_aws(options) results = Hash.new klasses.each { |klass| begin results[klass.name.split('::')[-1]] = klass.tfstate rescue Exception => e $stderr.puts e end } puts MultiJson.encode(results, pretty: true) end
tf(klass)
click to toggle source
# File lib/terraforming/cli.rb, line 312 def tf(klass) klass.tf end
tfstate(klass, tfstate_path)
click to toggle source
# File lib/terraforming/cli.rb, line 316 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 324 def tfstate_skeleton { "version" => 1, "serial" => 0, "modules" => [ { "path" => [ "root" ], "outputs" => {}, "resources" => {}, } ] } end