icontrol 0.3.8 → 0.3.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/lib/icontrol/base.rb
CHANGED
@@ -219,18 +219,26 @@ module IControl
|
|
219
219
|
# This is done this way cause I need access to name and class_name
|
220
220
|
# metaprogramming to cross the scope, don't really like it actually.
|
221
221
|
# TODO: Make use of the delegation patern much more clean I think
|
222
|
-
|
222
|
+
# Args are the arguments, bu default every argument is passed as a hash so there should be only 1 element in the args array
|
223
|
+
# In certain cases we use a second parameter to pass internal variables (mainly to solve certain cases)
|
223
224
|
def method_missing(method_name,*args,&block)
|
224
225
|
raise IControl::NotConfiguredException unless IControl.configured?
|
225
|
-
|
226
|
+
current_method_name = ( self.client.wsdl.operations.keys.include?("get_#{method_name}".to_sym ) ) ? "get_#{method_name}".to_sym : method_name
|
227
|
+
if self.client && self.client.wsdl.operations.keys.include?(current_method_name)
|
226
228
|
begin
|
227
229
|
# When calling a soap method we transparently add the ns (I'd rather say we obscurely)
|
228
230
|
request = ""
|
229
231
|
response = nil
|
230
|
-
mutex.synchronize do
|
231
|
-
response = self.client.request(:wsdl,
|
232
|
+
mutex.synchronize do
|
233
|
+
response = self.client.request(:wsdl, current_method_name.to_s) do |soap|
|
232
234
|
soap.namespaces["xmlns:wsdl"] = "urn:iControl:#{parent_modules[1..-1].join(".")}/#{class_name}"
|
233
|
-
|
235
|
+
if args.first
|
236
|
+
if args.first[:raw_call]
|
237
|
+
soap.body = convert_to_soap(args.first)
|
238
|
+
else
|
239
|
+
soap.body = convert_to_soap(hash_to_call_args(args.first))
|
240
|
+
end
|
241
|
+
end
|
234
242
|
block.call(soap) if block
|
235
243
|
request = soap.to_xml
|
236
244
|
end
|
@@ -290,7 +298,6 @@ module IControl
|
|
290
298
|
|
291
299
|
return super if @attributes.has_key? method_name
|
292
300
|
method_name = "get_#{method_name}" if getters.include? method_name
|
293
|
-
|
294
301
|
call_arguments = ( args.first || {} ).merge(default_body)
|
295
302
|
|
296
303
|
return self.class.send(method_name,call_arguments,&block)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module IControl::Management
|
2
|
+
class Partition < IControl::Base
|
3
|
+
def self.find(partition_name)
|
4
|
+
partition = [*get_partition_list].flatten.select { |i| i.partition_name == partition_name }.first
|
5
|
+
return self.new(:partition_name => partition.partition_name, :description => partition.description) if partition
|
6
|
+
end
|
7
|
+
|
8
|
+
def delete
|
9
|
+
return self.class.delete_partition(:partition_names => partition_name)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.set_active_partition(options)
|
13
|
+
options[:raw_call] = true
|
14
|
+
return method_missing(:set_active_partition,options)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get_list
|
18
|
+
get_partition_list
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__),"..","..",'/spec_helper'))
|
2
|
+
|
3
|
+
describe IControl::Management::Partition do
|
4
|
+
|
5
|
+
use_vcr_cassette "IControl::Management::Partition", :record => :all, :match_requests_on => [:uri, :method, :body] # Change :record => :new_episodes when done
|
6
|
+
|
7
|
+
describe "active_partition" do
|
8
|
+
it "should be called as a class method" do
|
9
|
+
lambda {IControl::Management::Partition.active_partition }.should_not raise_exception
|
10
|
+
IControl::Management::Partition.active_partition.should == "Common"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "create_partition" do
|
15
|
+
it "should be called as a class method" do
|
16
|
+
lambda { IControl::Management::Partition.create_partition(:partition => {:partition_name => "TestPartition",:description => "TestDescription"}) }.should_not raise_exception
|
17
|
+
IControl::Management::Partition.find("TestPartition").partition_name.should == "TestPartition"
|
18
|
+
end
|
19
|
+
|
20
|
+
after(:each) do
|
21
|
+
IControl::Management::Partition.delete_partition(:partition_name => "TestPartition")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#delete" do
|
26
|
+
before(:each) do
|
27
|
+
IControl::Management::Partition.create_partition(:partition => {:partition_name => "TestPartition",:description => "TestDescription"})
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should delete a given partition" do
|
31
|
+
IControl::Management::Partition.find("TestPartition").delete
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ("#set_active_partition") do
|
36
|
+
before(:each) do
|
37
|
+
IControl::Management::Partition.create_partition(:partition => {:partition_name => "TestPartition",:description => "TestDescription"})
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should set the active partition correctly" do
|
41
|
+
active_partition_before = IControl::Management::Partition.active_partition
|
42
|
+
IControl::Management::Partition.set_active_partition(:active_partition => "TestPartition")
|
43
|
+
active_partition_after = IControl::Management::Partition.active_partition
|
44
|
+
active_partition_after.should_not == active_partition_before
|
45
|
+
active_partition_after.should_not == ""
|
46
|
+
end
|
47
|
+
|
48
|
+
after(:each) do
|
49
|
+
IControl::Management::Partition.set_active_partition(:active_partition => "Common")
|
50
|
+
IControl::Management::Partition.find("TestPartition").delete
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 9
|
9
|
+
version: 0.3.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jose Fernandez (magec)
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-03-
|
17
|
+
date: 2011-03-03 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- lib/icontrol/base/icontrol_overlay.rb
|
241
241
|
- lib/icontrol/base/icontrol_overlay/common.rb
|
242
242
|
- lib/icontrol/base/icontrol_overlay/local_lb/pool.rb
|
243
|
+
- lib/icontrol/base/icontrol_overlay/management/partition.rb
|
243
244
|
- lib/icontrol/base/mappings.rb
|
244
245
|
- lib/icontrol/base/predeclarations.rb
|
245
246
|
- lib/icontrol/base/sequence.rb
|
@@ -381,6 +382,7 @@ files:
|
|
381
382
|
- spec/icontrol/local_lb/pool_spec.rb
|
382
383
|
- spec/icontrol/local_lb/profile_http_class_spec.rb
|
383
384
|
- spec/icontrol/local_lb/virtual_server_spec.rb
|
385
|
+
- spec/icontrol/management/partition_spec.rb
|
384
386
|
- spec/spec_helper.rb
|
385
387
|
has_rdoc: true
|
386
388
|
homepage: http://github.com/magec/icontrol
|
@@ -396,7 +398,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
396
398
|
requirements:
|
397
399
|
- - ">="
|
398
400
|
- !ruby/object:Gem::Version
|
399
|
-
hash: -
|
401
|
+
hash: -394929843
|
400
402
|
segments:
|
401
403
|
- 0
|
402
404
|
version: "0"
|
@@ -424,4 +426,5 @@ test_files:
|
|
424
426
|
- spec/icontrol/local_lb/pool_spec.rb
|
425
427
|
- spec/icontrol/local_lb/profile_http_class_spec.rb
|
426
428
|
- spec/icontrol/local_lb/virtual_server_spec.rb
|
429
|
+
- spec/icontrol/management/partition_spec.rb
|
427
430
|
- spec/spec_helper.rb
|