ftl 0.2.2 → 0.2.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.
data/Changelog CHANGED
@@ -1,4 +1,9 @@
1
- Release Version 0.2.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1
+ Release Version 0.2.2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
+
3
+ * Add ftl status
4
+ * find_instances returns exact match preferentially
5
+
6
+ Release Version 0.2.2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2
7
 
3
8
  * Adds templates feature to config file
4
9
  * Start and cancel spot requests
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ftl (0.2.2)
4
+ ftl (0.2.3)
5
5
  fog
6
6
  formatador (~> 0.2.2)
7
7
 
data/README.md CHANGED
@@ -47,4 +47,8 @@ Install is easy.
47
47
  4. Push to the branch (`git push origin my-new-feature`)
48
48
  5. Create new Pull Request
49
49
 
50
- © 2012 Matthew Petty Twitter:@mattpetty Github:@lodestone Email:lodestone@gmail.com
50
+ © 2012 Matthew Petty
51
+
52
+ * Twitter: [@mattpetty](http://twitter.com/mattpetty)
53
+ * Github: [@lodestone](http://github.com/lodestone)
54
+ * Email: [lodestone@gmail.com](mailto:lodestone@gmail.com)
data/TODO.md CHANGED
@@ -1,19 +1,8 @@
1
1
  # TODO
2
2
 
3
- * Enable launching of spot instances
4
- * ftl edit should edit ~/.ftl/ftl.yml with $EDITOR
5
- * Allow multiple named launch templates
6
3
  * ftl status <instance>
7
4
  * Tests
8
5
 
9
- ### Example of named templates:
10
6
 
11
- :templates:
12
- :ninja:
13
- :username: ninja
14
- :ami: ami-123456
15
- :samurai:
16
- :username: samurai
17
- :ami: ami-456789
18
7
 
19
8
 
@@ -61,7 +61,7 @@ module Ftl
61
61
  :availability_zone => opts[:availability_zone],
62
62
  :flavor_id => opts[:instance_type],
63
63
  :username => opts[:username],
64
- :tags => opts[:tags] + [args.first]
64
+ :tags => opts[:tags].merge(:Name => args.first)
65
65
  )
66
66
  display server
67
67
  eval(options[:post_script]) if options[:post_script]
@@ -123,6 +123,11 @@ module Ftl
123
123
  alias :x :connect
124
124
  alias :ssh :connect
125
125
 
126
+ def status(args={})
127
+ server = find_instance(args.first)
128
+ display server
129
+ end
130
+
126
131
  def start(args={})
127
132
  display "Starting stopped instances is not implemented yet. Stay tuned true believers."
128
133
  end
@@ -184,6 +189,9 @@ module Ftl
184
189
  `$EDITOR ~/.ftl/ftl.yml`
185
190
  end
186
191
 
192
+
193
+ ###########################################################################
194
+ ## private ###
187
195
  ###########################################################################
188
196
  private
189
197
 
@@ -220,8 +228,9 @@ module Ftl
220
228
 
221
229
  def find_instances(name)
222
230
  id_match = server_instances.select{|i| i[:id] == name } if name[/^i-/]
231
+ exact_tag_match = server_instances.select{|i| !i.tags.nil? && i.tags['Name'] && i.tags['Name'] == name }
223
232
  tag_match = server_instances.select{|i| !i.tags.nil? && i.tags['Name'] && i.tags['Name'][name] }
224
- id_match || tag_match
233
+ id_match || exact_tag_match || tag_match
225
234
  end
226
235
 
227
236
  def _headers_for(object)
@@ -1,3 +1,3 @@
1
1
  module Ftl
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -7,6 +7,7 @@ SECRET_ACCESS_KEY:
7
7
  #!/bin/sh
8
8
  touch /root/file.touched
9
9
  :spinup_script: |
10
+ :tags: {}
10
11
 
11
12
  :templates:
12
13
  :default:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ftl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-05-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &70185339927300 !ruby/object:Gem::Requirement
16
+ requirement: &70186162145440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70185339927300
24
+ version_requirements: *70186162145440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aruba
27
- requirement: &70185339925300 !ruby/object:Gem::Requirement
27
+ requirement: &70186162190980 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70185339925300
35
+ version_requirements: *70186162190980
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70185339924600 !ruby/object:Gem::Requirement
38
+ requirement: &70186162190220 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.2
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70185339924600
46
+ version_requirements: *70186162190220
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fog
49
- requirement: &70185339923960 !ruby/object:Gem::Requirement
49
+ requirement: &70186162189420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70185339923960
57
+ version_requirements: *70186162189420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: formatador
60
- requirement: &70185339923280 !ruby/object:Gem::Requirement
60
+ requirement: &70186162188520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.2.2
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70185339923280
68
+ version_requirements: *70186162188520
69
69
  description: Ftl is a command line tool for Fog/AWS
70
70
  email:
71
71
  - matt@kizmeta.com
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  segments:
112
112
  - 0
113
- hash: 3178890883638753060
113
+ hash: 1941961806599830985
114
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  none: false
116
116
  requirements:
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  version: '0'
120
120
  segments:
121
121
  - 0
122
- hash: 3178890883638753060
122
+ hash: 1941961806599830985
123
123
  requirements: []
124
124
  rubyforge_project:
125
125
  rubygems_version: 1.8.11