ns-fog 1.22.8 → 1.22.9

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/fog.gemspec CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  ## If your rubyforge_project name is different, then edit it and comment out
7
7
  ## the sub! line in the Rakefile
8
8
  s.name = 'ns-fog'
9
- s.version = '1.22.8'
9
+ s.version = '1.22.9'
10
10
  s.date = '2014-07-21'
11
11
  s.rubyforge_project = 'fog'
12
12
 
@@ -112,7 +112,7 @@ module Fog
112
112
  requires :id
113
113
  json = service.describe_router_statics(id, rule_ids, type).body['router_static_set']
114
114
  json.inject([]) do |ret, o|
115
- ret << Fog::Compute::QingCloud::RouterRule.convert_type(o['static_type']).new(o)
115
+ ret << RouterRule.convert_type(o['static_type']).new(o)
116
116
  end
117
117
  end
118
118
  alias_method :statics, :rules
@@ -122,10 +122,10 @@ module Fog
122
122
  end
123
123
  alias_method :get_static, :get_rule
124
124
 
125
- def add_rules(rules)
125
+ def add_rules(rules, auto_apply = true)
126
126
  requires :id
127
- service.add_router_statics(id, Fog::Compute::QingCloud::RouterRule.to_query([*rules]))
128
- service.update_routers(id)
127
+ service.add_router_statics(id, RouterRule.to_query([*rules]))
128
+ service.update_routers(id) if auto_apply
129
129
  wait_for {ready?}
130
130
  true
131
131
  end
@@ -133,6 +133,39 @@ module Fog
133
133
  alias_method :add_statics, :add_rules
134
134
  alias_method :add_static, :add_rules
135
135
 
136
+ def add_port_forward_rule(src_port, dst_ip, dst_port, protocol, auto_apply = true)
137
+ rule = PortForwardRule.new(
138
+ src_port: src_port,
139
+ dst_ip: dst_ip,
140
+ dst_port: dst_port,
141
+ protocol: protocol
142
+ )
143
+ add_rules(rule, auto_apply)
144
+ end
145
+
146
+ def add_vpn_rule(type, port, protocol, cidr, auto_apply = true)
147
+ rule = VPNRule.new(
148
+ vpn_type: type,
149
+ vpn_port: port,
150
+ vpn_protocol: protocol,
151
+ vpn_cidr_block: cidr
152
+ )
153
+ add_rules(rule, auto_apply)
154
+ end
155
+
156
+ def add_dhcp_rule(server_id, dhcp_options, auto_apply = true)
157
+ rule = DHCPRule.new(
158
+ server_id: server_id,
159
+ dhcp_options: dhcp_options
160
+ )
161
+ add_rules(rule, auto_apply)
162
+ end
163
+
164
+ def add_gre_rule(gre_options, auto_apply = true)
165
+ rule = GRERule.new(gre_options: gre_options)
166
+ add_rules(rule, auto_apply)
167
+ end
168
+
136
169
  def delete_rules(rule_id)
137
170
  requires :id
138
171
  service.delete_router_statics([*rule_id])
@@ -23,6 +23,17 @@ module Fog
23
23
  service.security_group_rules.new(attrs).save
24
24
  end
25
25
 
26
+ def add_rules(rules, auto_apply = true)
27
+ requires :id
28
+ args = {}
29
+ rules.each_with_index { |r, i|
30
+ args.merge! service.security_group_rules.new(r).to_query(i + 1)
31
+ }
32
+ service.add_security_group_rules(id, args)
33
+ service.apply_security_group(id) if auto_apply
34
+ true
35
+ end
36
+
26
37
  def ingress_rules
27
38
  requires :id
28
39
  rules(:ingress)
@@ -35,6 +46,7 @@ module Fog
35
46
 
36
47
  def rules(direction = nil)
37
48
  requires :id
49
+ direction = [:egress, :ingress].index(direction)
38
50
  service.security_group_rules.all('group-id' => id, 'direction' => direction)
39
51
  end
40
52
 
@@ -76,7 +76,6 @@ module Fog::Compute
76
76
  (val1.to_i .. port_end.to_i)
77
77
  end
78
78
 
79
- private
80
79
  def to_range(stuff)
81
80
  if stuff.is_a? Range
82
81
  [stuff.first, stuff.end]
@@ -89,9 +88,10 @@ module Fog::Compute
89
88
  query = ['protocol', 'priority', 'action',
90
89
  'direction', 'val1', 'val2', 'val3'
91
90
  ].inject({}) do |ret, x|
92
- ret["rules.%d.#{x}" % n] = send(x.to_sym)
91
+ ret["rules.#{n}.#{x}"] = send(x.to_sym)
92
+ ret
93
93
  end
94
- query['rules.%d.security_group_rule_name' % n] = name
94
+ query["rules.#{n}.security_group_rule_name"] = name
95
95
  query
96
96
  end
97
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ns-fog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.22.8
4
+ version: 1.22.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: