podbay 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a0bb7d9d9cdaf539323f52bf4086dccb877450a0
4
+ data.tar.gz: db14ff4b8b4dfead638d21e60bb1926b6a2467bd
5
+ SHA512:
6
+ metadata.gz: aa24d37d0f7645933cd6ad1aeeec45cc3a2ef132fb595716270fab14de82ac57646a98f62afd2eace9a0cbe196c2b419e92eaf2efc39427619dc621666c1cf50
7
+ data.tar.gz: 38df805c760c49774f0485b10acaec4f74ac72d55b7b113c8ec50737364089aeb83477c758e27e6e227387cbef34a0d12be2180e36d82fc0a913bcc0200d9c9d
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ ################################################################################
3
+ # Base pods script
4
+ ################################################################################
@@ -0,0 +1,6 @@
1
+ module Pods
2
+ module Files
3
+ autoload(:PodFile, 'pods/files/pod_file')
4
+ # autoload(:PodConfig, 'pods/files/pod_config')
5
+ end
6
+ end
@@ -0,0 +1,39 @@
1
+ ################################################################################
2
+ # Pods::Instance
3
+ #
4
+ # Represents an instance of the pods environment (e.g., an AWS account that's
5
+ # been setup to work with Pods).
6
+ ################################################################################
7
+
8
+ require 'forwardable'
9
+
10
+ module Pods
11
+ class Instance
12
+ extend Forwardable
13
+
14
+ attr_reader :adapter
15
+
16
+ def initialize(adapter)
17
+ @adapter = adapter.dup
18
+ end
19
+
20
+ # def_delegator :@adapter, :config, :configure
21
+
22
+ def configuration
23
+ @_config ||= adapter.load_config
24
+ end
25
+
26
+ def configure(config={})
27
+ adapter.set_config(config)
28
+ @_config = nil
29
+ end
30
+
31
+ def build_pod(pod_file)
32
+ adapter.build_pod(pod_file)
33
+ end
34
+
35
+ def delete_pod(pod_file)
36
+ adapter.delete_pod(pod_file)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,52 @@
1
+ module Pods
2
+ class Pod
3
+ attr_reader :name
4
+ attr_reader :cidr
5
+ attr_reader :availability_zones
6
+
7
+ def initialize(data = {})
8
+ load!(data.deep_symbolize_keys)
9
+ end
10
+
11
+ ##
12
+ # Load details from a Podfile.
13
+ def load(podfile_path)
14
+ load!(YAML.load_file(podfile_path).deep_symbolize_keys)
15
+ end
16
+
17
+ def load!(data)
18
+ @name = @data[:name].to_s.underscore
19
+ @cidr = @data[:cidr]
20
+ @availability_zones = @data[:availability_zones]
21
+ end
22
+
23
+ def availability_zones
24
+ || []
25
+ end
26
+
27
+ def services
28
+ @data[:services] || []
29
+ end
30
+
31
+ ##
32
+ # Returns a cloudformation template for the Pod.
33
+ def to_template
34
+ template_path = File.expand_path(
35
+ '../templates/cloudformation.template.erb',
36
+ __FILE__
37
+ )
38
+
39
+ ERB.new(File.read(template_path)).result(binding)
40
+ end
41
+
42
+ def tags
43
+ { pod: name }
44
+ end
45
+
46
+ private
47
+
48
+ def _validate_data(data)
49
+ # Raise an error if something is invalid.
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ module Pods
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,9 @@
1
+ require 'active_support/all'
2
+ require 'erb'
3
+
4
+ require 'pods/version'
5
+
6
+ module Pods
7
+ autoload(:Instance, 'pods/instance')
8
+ autoload(:Pod, 'pods/pod')
9
+ end # Pods
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: podbay
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Robert Honer
8
+ - Nehal Patel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-01-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: aws-sdk
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: bundler-audit
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ description: AWS tooling
71
+ email:
72
+ - robert@payout.com
73
+ - nehal@payout.com
74
+ executables: []
75
+ extensions: []
76
+ extra_rdoc_files: []
77
+ files:
78
+ - bin/pods
79
+ - lib/podbay/files.rb
80
+ - lib/podbay/instance.rb
81
+ - lib/podbay/pod.rb
82
+ - lib/podbay/version.rb
83
+ - lib/pods.rb
84
+ homepage: http://github.com/payout/podbay
85
+ licenses:
86
+ - BSD
87
+ metadata: {}
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ requirements: []
103
+ rubyforge_project:
104
+ rubygems_version: 2.4.6
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: AWS tooling
108
+ test_files: []