Class: ZAWS::AWSCLI

Inherits:
Object
  • Object
show all
Defined in:
lib/zaws/external/awscli/data.rb,
lib/zaws/external/awscli/awscli.rb,
lib/zaws/external/awscli/regions.rb,
lib/zaws/external/awscli/commands.rb,
lib/zaws/external/awscli/data/ec2.rb,
lib/zaws/external/awscli/data/iam.rb,
lib/zaws/external/awscli/credentials.rb,
lib/zaws/external/awscli/commands/ec2.rb,
lib/zaws/external/awscli/commands/elb.rb,
lib/zaws/external/awscli/commands/iam.rb,
lib/zaws/external/awscli/data/ec2/vpc.rb,
lib/zaws/external/awscli/data/ec2/subnet.rb,
lib/zaws/external/awscli/data/iam/policy.rb,
lib/zaws/external/awscli/commands/route53.rb,
lib/zaws/external/awscli/data/ec2/instance.rb,
lib/zaws/external/awscli/data/iam/role_policy.rb,
lib/zaws/external/awscli/commands/iam/GetPolicy.rb,
lib/zaws/external/awscli/commands/ec2/create_vpc.rb,
lib/zaws/external/awscli/data/iam/policy_version.rb,
lib/zaws/external/awscli/data/iam/policy_document.rb,
lib/zaws/external/awscli/commands/ec2/describe_vpcs.rb,
lib/zaws/external/awscli/commands/ec2/run_instances.rb,
lib/zaws/external/awscli/commands/iam/GetRolePolicy.rb,
lib/zaws/external/awscli/commands/ec2/stop_instances.rb,
lib/zaws/external/awscli/commands/iam/GetPolicyVersion.rb,
lib/zaws/external/awscli/commands/ec2/describe_vpc_peering_connections.rb

Defined Under Namespace

Classes: Commands, Credentials, Data

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(shellout, keep_filestore_empty = false) ⇒ AWSCLI

Returns a new instance of AWSCLI.



7
8
9
10
# File 'lib/zaws/external/awscli/awscli.rb', line 7

def initialize(shellout,keep_filestore_empty=false)
  @shellout=shellout
	@keep_filestore_empty=keep_filestore_empty
end

Instance Attribute Details

#homeObject

Returns the value of attribute home.



5
6
7
# File 'lib/zaws/external/awscli/awscli.rb', line 5

def home
  @home
end

Instance Method Details

#command_ec2Object



43
44
45
46
# File 'lib/zaws/external/awscli/awscli.rb', line 43

def command_ec2
	  @_command_ec2 ||= (ZAWS::AWSCLI::Commands::EC2.new(@shellout,self))
	  return @_command_ec2
end

#command_iamObject



48
49
50
51
# File 'lib/zaws/external/awscli/awscli.rb', line 48

def command_iam 
	  @_command_iam ||= (ZAWS::AWSCLI::Commands::IAM.new(@shellout,self))
	  return @_command_iam
end

#data_ec2Object



53
54
55
56
# File 'lib/zaws/external/awscli/awscli.rb', line 53

def data_ec2
  @_data_ec2 ||= (ZAWS::AWSCLI::Data::EC2.new(@shellout,self))
  return @_data_ec2
end

#data_iamObject



58
59
60
61
# File 'lib/zaws/external/awscli/awscli.rb', line 58

def data_iam
  @_data_iam ||= (ZAWS::AWSCLI::Data::IAM.new(@shellout,self))
  return @_data_iam
end

#extended_RegionsObject



8
9
10
# File 'lib/zaws/external/awscli/regions.rb', line 8

def extended_Regions
  return %w(us-east-1 eu-central-1 ap-southeast-1 ap-northeast-1 ap-southeast-2 ap-northeast-2 sa-east-1)
end

#filestoreObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/zaws/external/awscli/awscli.rb', line 12

def filestore
  @filestore ||= ZAWS::Repository::Filestore.new(@keep_filestore_empty)
@filestore.timeout = 1800
return @filestore if @keep_filestore_empty
@home ||= ENV['HOME']
  @filestore.location="#{@home}/.awsdata"
unless File.directory?(@filestore.location)
	FileUtils.mkdir_p(@filestore.location)
end
  return @filestore
end

#main_regionsObject



4
5
6
# File 'lib/zaws/external/awscli/regions.rb', line 4

def main_regions
  return %w(us-east-1 us-west-2 us-west-1 ap-southeast-1)
end

#remove_credsObject



24
25
26
27
28
29
30
31
# File 'lib/zaws/external/awscli/awscli.rb', line 24

def remove_creds
	if File.directory?("#{@home}/.awsdata")
		FileUtils.rmtree("#{@home}/.awsdata")
	end
  if File.exist?("#{@home}/.aws/credentials")
		File.delete("#{@home}/.aws/credentials")
	end
end

#versionObject



33
34
35
36
37
38
39
40
41
# File 'lib/zaws/external/awscli/awscli.rb', line 33

def version 
  if ! @version
	info = @shellout.cli("aws --version",nil)
	#aws-cli/1.2.13 Python/2.7.5 Linux/3.10.0-123.el7.x86_64
	version_match = /(?<version>aws-cli\/[1-9\.]*)/.match(info)
	@version ||= version_match[:version]
  end
 	  return @version
end