aws_pocketknife 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b0fb1eefb9ab56183a55f8982d589415ad87dbb
4
- data.tar.gz: ccb6d09be482b3fb20fce57eec3f95f4c9698e87
3
+ metadata.gz: 58b98325dbb7ce20d77db7dff1ce7b1aa8961e18
4
+ data.tar.gz: b007e42adefca2678cd8229dd47f7c05ad5143e6
5
5
  SHA512:
6
- metadata.gz: d99879a170587d6e4dd2e8610cbccbf6d087f45234eac2e00bfe0de1c4e1d9ff1921e24b67c69c9f33d7f67d86745ba57231d71c5cecbbeb0fda107b6d9ff6ec
7
- data.tar.gz: 2b1725fee169277977b131269df2a29ad3a04e0156ed0ac73c274eb6285e7f8480d5b2badad0a0df89df11fa0b5c29460e189f5813561d94e3ba6a0483634c48
6
+ metadata.gz: c522e956b4641e585c3191a28e94d4009c0e140b04ccd7c8293965aaf8d093d5640278e7704ed766cf23ba3a3afbda681e19b5d10dfbdc11e08ed98fc3c5c681
7
+ data.tar.gz: 98c4e8f4cbae21792ec83405780a415565f8a7f07c7aabcb73b4f777f5eabc5f700b639fa8ec7c100e55cc65f37dbf36afbca4681873679d9e9a77070e802f19
data/README.md CHANGED
@@ -10,8 +10,6 @@ different accounts in a web browser. The only way would be to use diffente brows
10
10
 
11
11
  The aws cli allows you to setup profiles for each account. (see http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles)
12
12
  After creating the profiles, you just export the environment variable AWS_PROFILE to specify the account you wish to use.
13
- ```
14
-
15
13
 
16
14
  ## Installation
17
15
 
@@ -81,13 +79,6 @@ Commands:
81
79
  pocketknife rds help [COMMAND] # Describe subcommands or one specific subcommand
82
80
  pocketknife rds snapshot SUBCOMMAND ...ARGS # snapshot command lines
83
81
 
84
-
85
- $ pocketknife rds snapshot
86
- Commands:
87
- pocketknife rds_snapshot clean DB_NAME DAYS --dry_run # Remove manual snapshots with creation time lower than DAYS for database_name.
88
- pocketknife rds_snapshot create DB_NAME # Creates a snapshot for database_name.
89
- pocketknife rds_snapshot help [COMMAND] # Describe subcommands or one specific subcommand
90
- pocketknife rds_snapshot list_snapshots DB_NAME # list snapshots
91
82
  ```
92
83
 
93
84
  ### Elastic beanstalk
@@ -101,6 +92,19 @@ Commands:
101
92
  pocketknife eb vars NAME # list environment variables for the specified elastic beanstalk environment name
102
93
  ```
103
94
 
95
+ ### Route53
96
+
97
+ ```
98
+ $ pocketknife route53
99
+ Commands:
100
+ pocketknife route53 describe_hosted_zone HOSTED_ZONE # describe hosted zone
101
+ pocketknife route53 get_record HOSTED_ZONE RECORD_NAME --record_type # Get record for hosted zone.
102
+ pocketknife route53 help [COMMAND] # Describe subcommands or one specific subcommand
103
+ pocketknife route53 list # list hosted zones
104
+ pocketknife route53 list_records HOSTED_ZONE # list records for hosted zone
105
+ pocketknife route53 update_record HOSTED_ZONE ORIGIN_DNS_NAME DESTINY_RECORD_NAME DESTINY_HOSTED_ZONE RECORD_TYPE (default to A) # Update a dns record from an existing dns entry.
106
+ ```
107
+
104
108
  ## Development
105
109
 
106
110
 
@@ -108,6 +112,9 @@ Commands:
108
112
 
109
113
  Bug reports and pull requests are welcome on GitHub at https://github.com/MYOB-Technology/aws_pocketknife. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
110
114
 
115
+ * Fork it
116
+ * Make you changes
117
+ * Submit a pull request
111
118
 
112
119
  ## License
113
120
 
data/Rakefile CHANGED
@@ -1,13 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
- load "lib/aws_pocketknife/tasks/route53.rake"
4
- load "lib/aws_pocketknife/tasks/ec2.rake"
5
- load "lib/aws_pocketknife/tasks/iam.rake"
6
- load "lib/aws_pocketknife/tasks/asg.rake"
7
- load "lib/aws_pocketknife/tasks/elb.rake"
8
- load "lib/aws_pocketknife/tasks/elastic_beanstalk.rake"
9
- load "lib/aws_pocketknife/tasks/cloudwatch.rake"
10
-
11
3
  desc 'Run tests'
12
4
  task :test do
13
5
  puts "running rspec tests"
@@ -51,6 +51,42 @@ module AwsPocketknife
51
51
  end
52
52
  end
53
53
 
54
+ desc "get_record HOSTED_ZONE RECORD_NAME --record_type", "Get record for hosted zone."
55
+ #option :record_type, :type => :string, :default => 'A', :desc => 'Record type accepts SOA, A, TXT, NS, CNAME, MX, PTR, SRV, SPF, AAAA. Default to A'
56
+ def get_record(hosted_zone, record_name, record_type='A')
57
+
58
+ #record_type = options.fetch("record_type", 'A')
59
+ records = AwsPocketknife::Route53.get_record(hosted_zone_name: hosted_zone,
60
+ record_name:record_name,
61
+ record_type: record_type)
62
+ headers = ["Name", "Type", "DNS Name"]
63
+ data = []
64
+ if records.length > 0
65
+ records.each do |record|
66
+ if record.type == 'CNAME'
67
+ data << [record.name, record.type, record.resource_records[0].value]
68
+ else
69
+ data << [record.name, record.type, record.alias_target.dns_name]
70
+ end
71
+ end
72
+ AwsPocketknife::Route53.pretty_table(headers: headers, data: data)
73
+ else
74
+ puts "Record #{record_name} not found in hosted zone #{hosted_zone}"
75
+ end
76
+ end
77
+
78
+ desc "update_record HOSTED_ZONE ORIGIN_DNS_NAME DESTINY_RECORD_NAME DESTINY_HOSTED_ZONE RECORD_TYPE (default to A)", "Update a dns record from an existing dns entry."
79
+ def update_record(hosted_zone, origin_dns_name, destiny_record_name, destiny_hosted_zone, record_type='A')
80
+
81
+ AwsPocketknife::Route53.update_record(origin_hosted_zone: hosted_zone,
82
+ origin_dns_name: origin_dns_name,
83
+ record_type: record_type,
84
+ destiny_dns_name: destiny_record_name,
85
+ destiny_hosted_zone: destiny_hosted_zone
86
+ )
87
+
88
+ end
89
+
54
90
  end
55
91
  end
56
92
  end
@@ -1,3 +1,3 @@
1
1
  module AwsPocketknife
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_pocketknife
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Soares Souza
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-27 00:00:00.000000000 Z
11
+ date: 2016-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -248,11 +248,6 @@ files:
248
248
  - lib/aws_pocketknife/iam.rb
249
249
  - lib/aws_pocketknife/rds.rb
250
250
  - lib/aws_pocketknife/route53.rb
251
- - lib/aws_pocketknife/tasks/asg.rake
252
- - lib/aws_pocketknife/tasks/cloudwatch.rake
253
- - lib/aws_pocketknife/tasks/ec2.rake
254
- - lib/aws_pocketknife/tasks/elastic_beanstalk.rake
255
- - lib/aws_pocketknife/tasks/elb.rake
256
251
  - lib/aws_pocketknife/tasks/iam.rake
257
252
  - lib/aws_pocketknife/tasks/route53.rake
258
253
  - lib/aws_pocketknife/version.rb
@@ -276,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
271
  version: '0'
277
272
  requirements: []
278
273
  rubyforge_project:
279
- rubygems_version: 2.4.5.1
274
+ rubygems_version: 2.4.8
280
275
  signing_key:
281
276
  specification_version: 4
282
277
  summary: Command line tools to make aws administration a little bit easier and quicker
@@ -1,18 +0,0 @@
1
- require_relative '../asg'
2
- require_relative '../cli/asg'
3
-
4
- asg_cli = AwsPocketknife::Cli::Asg.new
5
-
6
- namespace :asg do
7
-
8
- desc 'Describe asg by name'
9
- task :describe_by_name, [:name] do |t, args|
10
- asg_cli.desc(args[:name])
11
- end
12
-
13
- desc 'List asgs'
14
- task :list do
15
- asg_cli.list
16
- end
17
-
18
- end
@@ -1,12 +0,0 @@
1
- require_relative "../cloudwatch_logs"
2
-
3
- namespace :cloudwatch do
4
-
5
- namespace :logs do
6
- desc "Create log group"
7
- task :create_group, [:name] do |t, args|
8
- AwsPocketknife::CloudwatchLogs.create_log_group(log_group_name: args[:name])
9
- end
10
- end
11
-
12
- end
@@ -1,57 +0,0 @@
1
- require_relative '../ec2'
2
- require_relative '../cli/ec2'
3
- require_relative '../cli/ami'
4
-
5
- ec2_cli = AwsPocketknife::Cli::Ec2.new
6
- ami_cli = AwsPocketknife::Cli::Ami.new
7
-
8
- namespace :ec2 do
9
-
10
- namespace :ami do
11
- desc 'share ami'
12
- task :share, [:image_id, :user_id] do |t, args|
13
- AwsPocketknife::Ec2.share_ami(image_id: args[:instance_id], user_id: args[:instance_id])
14
- end
15
-
16
- desc "clean up old AMIs."
17
- task :clean, [:ami_name_pattern, :days, :dry_run] do |t, args|
18
- args.with_defaults(:dry_run => "true")
19
- ami_name_pattern = args[:ami_name_pattern]
20
- days = args[:days]
21
- args[:dry_run].strip.downcase == "true" ? dry_run = true : dry_run = false
22
- AwsPocketknife::Cli::Ami.options = {:dry_run => dry_run}
23
- ami_cli.clean ami_name_pattern, days
24
- end
25
- end
26
-
27
- desc 'Stop instance by id'
28
- task :stop_by_id, [:instance_id] do |t, args|
29
- ec2_cli.stop(args[:instance_id])
30
- end
31
-
32
- desc 'Start instance by id'
33
- task :start_by_id, [:instance_id] do |t, args|
34
- ec2_cli.start(args[:instance_id])
35
- end
36
-
37
- desc 'Describe instance by id'
38
- task :find_by_id, [:instance_id] do |t, args|
39
- ec2_cli.find_by_id(args[:instance_id])
40
- end
41
-
42
- desc 'Describe instance by name'
43
- task :describe_instance_by_name, [:name] do |t, args|
44
- ec2_cli.find_by_name(args[:name])
45
- end
46
-
47
- desc 'Find instances by name'
48
- task :find_by_name, [:name] do |t, args|
49
- ec2_cli.find_by_name(args[:name])
50
- end
51
-
52
- desc 'Get windows password'
53
- task :get_windows_password, [:instance_id] do |t, args|
54
- ec2_cli.get_windows_password(args[:instance_id])
55
- end
56
-
57
- end
@@ -1,25 +0,0 @@
1
- require_relative "../elastic_beanstalk"
2
-
3
- require_relative '../cli/eb'
4
-
5
- eb_cli = AwsPocketknife::Cli::Eb.new
6
-
7
- namespace :eb do
8
-
9
- desc "describe_environment_resources"
10
- task :describe_environment, [:environment_name] do |t, args|
11
- eb_cli.desc(args[:environment_name])
12
- end
13
-
14
- desc "list environments"
15
- task :list_environments do
16
- eb_cli.list
17
- end
18
-
19
- desc "list environment variables for an environment"
20
- task :list_environment_variables, [:environment_name] do |t, args|
21
- eb_cli.vars(args[:environment_name])
22
- end
23
-
24
- end
25
-
@@ -1,13 +0,0 @@
1
- require_relative '../elb'
2
- require_relative '../cli/elb'
3
-
4
- elb_cli = AwsPocketknife::Cli::Elb.new
5
-
6
- namespace :elb do
7
-
8
- desc 'Describe load balancer by name'
9
- task :describe, [:elb_name] do |t, args|
10
- elb_cli.desc args[:elb_name]
11
- end
12
-
13
- end