aws_pocketknife 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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