aws_account_utils 0.1.2 → 0.1.3
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 +4 -4
- data/.coveralls.yml +1 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +6 -0
- data/README.md +7 -0
- data/Rakefile +3 -1
- data/aws_account_utils.gemspec +3 -1
- data/lib/aws_account_utils.rb +13 -0
- data/lib/aws_account_utils/account.rb +44 -0
- data/lib/aws_account_utils/version.rb +1 -1
- data/lib/aws_account_utils/watir_browser.rb +1 -1
- metadata +11 -9
- data/.codeclimate.yml +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85f32a777448e44c4427fba054cd2538709eec5e
|
4
|
+
data.tar.gz: fe866c5493265e7cc1cc0dbe0fb242bb34befa38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f543711bf33001e2ad630f5448fe2fa8adce4a6811fdcc14f00b0c3276532985a368e860f6991679dfdc204026cbe25377f512abd26e1addaac6978fad01ee3
|
7
|
+
data.tar.gz: 8cca8925fed7092ce42273039e6975875737917c12240d7c4aa081781318e0c866a52bcfdcec66c0746ee8376ddc9e4688e5fbf119f0ad1b895d8c94ad20d39d
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
[](https://travis-ci.org/intuit/aws_account_utils)
|
2
|
+
[](https://coveralls.io/github/intuit/aws_account_utils)
|
3
|
+
[](https://badge.fury.io/rb/aws_account_utils)
|
4
|
+
[](https://codeclimate.com/github/intuit/aws_account_utils)
|
5
|
+
|
1
6
|
# AwsAccountUtils
|
2
7
|
|
3
8
|
A collection of helpers for creating and modifying AWS account details that can not be done using any existing AWS API
|
@@ -6,6 +11,8 @@ Special Note: the `create_account` operation requires that your IP be white-list
|
|
6
11
|
|
7
12
|
## Installation
|
8
13
|
|
14
|
+
NOTE: Ruby 2.2 is required!
|
15
|
+
|
9
16
|
Add this line to your application's Gemfile:
|
10
17
|
|
11
18
|
```ruby
|
data/Rakefile
CHANGED
data/aws_account_utils.gemspec
CHANGED
@@ -18,7 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
21
|
+
spec.required_ruby_version = '~> 2.1'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler', '>= 1.6.5'
|
22
24
|
spec.add_development_dependency 'webmock', '~> 1.21', '>= 1.21.0'
|
23
25
|
spec.add_development_dependency 'guard-rspec', '~> 4.3', '>= 4.3.1'
|
24
26
|
spec.add_development_dependency 'simplecov', '~> 0.8', '>= 0.8.2'
|
data/lib/aws_account_utils.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'aws_account_utils/account'
|
1
2
|
require 'aws_account_utils/base'
|
2
3
|
require 'aws_account_utils/version'
|
3
4
|
require 'aws_account_utils/account_logger'
|
@@ -53,6 +54,14 @@ module AwsAccountUtils
|
|
53
54
|
browser.close rescue nil
|
54
55
|
end
|
55
56
|
|
57
|
+
def close_account(account_email:, account_password:)
|
58
|
+
resp = account.close(account_email, account_password)
|
59
|
+
logger.info 'Closed Account.' if resp
|
60
|
+
resp
|
61
|
+
ensure
|
62
|
+
browser.close rescue nil
|
63
|
+
end
|
64
|
+
|
56
65
|
def confirm_consolidated_billing(account_email:, account_password:, confirmation_link:)
|
57
66
|
resp = consolidated_billing.confirm account_email, account_password, confirmation_link
|
58
67
|
logger.info 'Consolidated billing has been confirmed' if resp
|
@@ -162,6 +171,10 @@ module AwsAccountUtils
|
|
162
171
|
@challenge_questions ||= ChallengeQuestions.new logger, browser
|
163
172
|
end
|
164
173
|
|
174
|
+
def account
|
175
|
+
@account ||= Account.new logger, browser
|
176
|
+
end
|
177
|
+
|
165
178
|
def consolidated_billing
|
166
179
|
@consolidated_billing ||= ConsolidatedBilling.new logger, browser
|
167
180
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'aws_account_utils/base'
|
2
|
+
require 'aws_account_utils/login'
|
3
|
+
|
4
|
+
module AwsAccountUtils
|
5
|
+
class Account < Base
|
6
|
+
attr_reader :logger, :browser
|
7
|
+
|
8
|
+
def initialize(logger, browser)
|
9
|
+
@logger = logger
|
10
|
+
@browser = browser
|
11
|
+
end
|
12
|
+
|
13
|
+
def close(account_email, account_password)
|
14
|
+
logger.debug "Closing AWS account."
|
15
|
+
|
16
|
+
Login.new(logger, browser).execute url,
|
17
|
+
account_email,
|
18
|
+
account_password
|
19
|
+
|
20
|
+
browser.checkbox(:ng_model =>'isClosingAccount').when_present.set
|
21
|
+
screenshot(browser, "3")
|
22
|
+
|
23
|
+
browser.button(:text => /Close Account/).when_present.click
|
24
|
+
screenshot(browser, "2")
|
25
|
+
|
26
|
+
browser.wait_until{ browser.text.include? 'Are you sure you want to close your account?'}
|
27
|
+
browser.span(:text => /Close Account/).when_present.click
|
28
|
+
screenshot(browser, "3")
|
29
|
+
|
30
|
+
browser.p(:text => /Are you sure you want to close your account?/).wait_while_present
|
31
|
+
|
32
|
+
browser.wait_until{ browser.text.include? 'Account has been closed'}
|
33
|
+
|
34
|
+
rescue Watir::Wait::TimeoutError, Net::ReadTimeout => e
|
35
|
+
screenshot(browser, "error")
|
36
|
+
raise StandardError, "#{self.class.name} - #{e}"
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def url
|
41
|
+
'https://console.aws.amazon.com/billing/home?#/account'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'aws_account_utils/base'
|
2
2
|
require 'watir-webdriver'
|
3
3
|
Watir::HTMLElement.attributes << :ng_model
|
4
|
+
Watir::HTMLElement.attributes << :ng_click
|
4
5
|
|
5
6
|
module AwsAccountUtils
|
6
7
|
class WatirBrowser
|
@@ -45,6 +46,5 @@ module AwsAccountUtils
|
|
45
46
|
def proxy
|
46
47
|
@proxy ||= ENV['HTTP_PROXY']
|
47
48
|
end
|
48
|
-
|
49
49
|
end
|
50
50
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws_account_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- keviny22
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.6.5
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.6.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: webmock
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,10 +171,11 @@ executables: []
|
|
171
171
|
extensions: []
|
172
172
|
extra_rdoc_files: []
|
173
173
|
files:
|
174
|
-
- ".
|
174
|
+
- ".coveralls.yml"
|
175
175
|
- ".gitignore"
|
176
176
|
- ".ruby-gemset"
|
177
177
|
- ".ruby-version"
|
178
|
+
- CHANGELOG.md
|
178
179
|
- CODE_OF_CONDUCT.md
|
179
180
|
- Gemfile
|
180
181
|
- README.md
|
@@ -183,6 +184,7 @@ files:
|
|
183
184
|
- bin/console
|
184
185
|
- bin/setup
|
185
186
|
- lib/aws_account_utils.rb
|
187
|
+
- lib/aws_account_utils/account.rb
|
186
188
|
- lib/aws_account_utils/account_logger.rb
|
187
189
|
- lib/aws_account_utils/account_registration.rb
|
188
190
|
- lib/aws_account_utils/alternate_contacts.rb
|
@@ -210,9 +212,9 @@ require_paths:
|
|
210
212
|
- lib
|
211
213
|
required_ruby_version: !ruby/object:Gem::Requirement
|
212
214
|
requirements:
|
213
|
-
- - "
|
215
|
+
- - "~>"
|
214
216
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
217
|
+
version: '2.1'
|
216
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
219
|
requirements:
|
218
220
|
- - ">="
|
data/.codeclimate.yml
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
# This is a sample .codeclimate.yml configured for Engine analysis on Code
|
2
|
-
# Climate Platform. For an overview of the Code Climate Platform, see here:
|
3
|
-
# http://docs.codeclimate.com/article/300-the-codeclimate-platform
|
4
|
-
|
5
|
-
# Under the engines key, you can configure which engines will analyze your repo.
|
6
|
-
# Each key is an engine name. For each value, you need to specify enabled: true
|
7
|
-
# to enable the engine as well as any other engines-specific configuration.
|
8
|
-
|
9
|
-
# For more details, see here:
|
10
|
-
# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
|
11
|
-
|
12
|
-
# For a list of all available engines, see here:
|
13
|
-
# http://docs.codeclimate.com/article/296-engines-available-engines
|
14
|
-
|
15
|
-
engines:
|
16
|
-
# to turn on an engine, add it here and set enabled to `true`
|
17
|
-
# to turn off an engine, set enabled to `false` or remove it
|
18
|
-
rubocop:
|
19
|
-
enabled: true
|
20
|
-
golint:
|
21
|
-
enabled: false
|
22
|
-
gofmt:
|
23
|
-
enabled: false
|
24
|
-
eslint:
|
25
|
-
enabled: false
|
26
|
-
csslint:
|
27
|
-
enabled: false
|
28
|
-
|
29
|
-
# Engines can analyze files and report issues on them, but you can separately
|
30
|
-
# decide which files will receive ratings based on those issues. This is
|
31
|
-
# specified by path patterns under the ratings key.
|
32
|
-
|
33
|
-
# For more details see here:
|
34
|
-
# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
|
35
|
-
|
36
|
-
# Note: If the ratings key is not specified, this will result in a 0.0 GPA on your dashboard.
|
37
|
-
|
38
|
-
ratings:
|
39
|
-
paths:
|
40
|
-
# - app/**
|
41
|
-
- lib/**
|
42
|
-
- "**.rb"
|
43
|
-
# - "**.go"
|
44
|
-
|
45
|
-
# You can globally exclude files from being analyzed by any engine using the
|
46
|
-
# exclude_paths key.
|
47
|
-
|
48
|
-
#exclude_paths:
|
49
|
-
#- spec/**/*
|
50
|
-
#- vendor/**/*
|