ruby-libvirt 0.4.0 → 0.5.0
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 +7 -0
- data/NEWS +10 -0
- data/README +188 -21
- data/Rakefile +11 -7
- data/ext/libvirt/_libvirt.c +252 -234
- data/ext/libvirt/common.c +346 -71
- data/ext/libvirt/common.h +171 -111
- data/ext/libvirt/connect.c +1851 -798
- data/ext/libvirt/connect.h +6 -5
- data/ext/libvirt/domain.c +3903 -1060
- data/ext/libvirt/domain.h +5 -3
- data/ext/libvirt/extconf.rb +275 -41
- data/ext/libvirt/interface.c +60 -41
- data/ext/libvirt/interface.h +3 -1
- data/ext/libvirt/network.c +291 -72
- data/ext/libvirt/network.h +3 -2
- data/ext/libvirt/nodedevice.c +138 -59
- data/ext/libvirt/nodedevice.h +3 -1
- data/ext/libvirt/nwfilter.c +39 -34
- data/ext/libvirt/nwfilter.h +3 -1
- data/ext/libvirt/secret.c +122 -64
- data/ext/libvirt/secret.h +3 -1
- data/ext/libvirt/storage.c +451 -233
- data/ext/libvirt/storage.h +1 -1
- data/ext/libvirt/stream.c +120 -122
- data/ext/libvirt/stream.h +4 -2
- data/tests/test_conn.rb +214 -67
- data/tests/test_domain.rb +553 -209
- data/tests/test_interface.rb +4 -10
- data/tests/test_network.rb +21 -12
- data/tests/test_nodedevice.rb +11 -1
- data/tests/test_nwfilter.rb +4 -0
- data/tests/test_open.rb +59 -6
- data/tests/test_secret.rb +25 -0
- data/tests/test_storage.rb +132 -28
- data/tests/test_stream.rb +171 -0
- data/tests/test_utils.rb +86 -15
- metadata +43 -66
    
        data/tests/test_interface.rb
    CHANGED
    
    | @@ -7,15 +7,7 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 11 | 
            -
              conn.list_interfaces.each do |ifname|
         | 
| 12 | 
            -
                iface = conn.lookup_interface_by_name(ifname)
         | 
| 13 | 
            -
                if iface.mac == "00:00:00:00:00:00"
         | 
| 14 | 
            -
                  next
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
                return iface
         | 
| 17 | 
            -
              end
         | 
| 18 | 
            -
            end
         | 
| 10 | 
            +
            set_test_object("interface")
         | 
| 19 11 |  | 
| 20 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 21 13 |  | 
| @@ -83,7 +75,7 @@ testiface = find_valid_iface(conn) | |
| 83 75 | 
             
            if not testiface.nil?
         | 
| 84 76 | 
             
              expect_too_many_args(testiface, "mac", 1)
         | 
| 85 77 |  | 
| 86 | 
            -
              expect_success(testiface, "no args", "mac") | 
| 78 | 
            +
              expect_success(testiface, "no args", "mac")
         | 
| 87 79 | 
             
            end
         | 
| 88 80 |  | 
| 89 81 | 
             
            # TESTGROUP: iface.xml_desc
         | 
| @@ -101,6 +93,8 @@ expect_too_many_args(newiface, "free", 1) | |
| 101 93 |  | 
| 102 94 | 
             
            expect_success(newiface, "no args", "free")
         | 
| 103 95 |  | 
| 96 | 
            +
            # END TESTS
         | 
| 97 | 
            +
             | 
| 104 98 | 
             
            conn.close
         | 
| 105 99 |  | 
| 106 100 | 
             
            finish_tests
         | 
    
        data/tests/test_network.rb
    CHANGED
    
    | @@ -7,16 +7,11 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("network")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 11 13 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
            begin
         | 
| 14 | 
            -
              oldnet = conn.lookup_network_by_name("ruby-libvirt-tester")
         | 
| 15 | 
            -
              oldnet.destroy
         | 
| 16 | 
            -
              oldnet.undefine
         | 
| 17 | 
            -
            rescue
         | 
| 18 | 
            -
              # in case we didn't find it, don't do anything
         | 
| 19 | 
            -
            end
         | 
| 14 | 
            +
            cleanup_test_network(conn)
         | 
| 20 15 |  | 
| 21 16 | 
             
            # TESTGROUP: net.undefine
         | 
| 22 17 | 
             
            newnet = conn.define_network_xml($new_net_xml)
         | 
| @@ -37,6 +32,19 @@ expect_fail(newnet, Libvirt::Error, "on already running network", "create") | |
| 37 32 | 
             
            newnet.destroy
         | 
| 38 33 | 
             
            newnet.undefine
         | 
| 39 34 |  | 
| 35 | 
            +
            # TESTGROUP: net.update
         | 
| 36 | 
            +
            newnet = conn.create_network_xml($new_net_xml)
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            expect_too_few_args(newnet, "update", 1)
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            command = Libvirt::Network::NETWORK_UPDATE_COMMAND_ADD_LAST
         | 
| 41 | 
            +
            section = Libvirt::Network::NETWORK_SECTION_IP_DHCP_HOST
         | 
| 42 | 
            +
            flags   = Libvirt::Network::NETWORK_UPDATE_AFFECT_CURRENT
         | 
| 43 | 
            +
            expect_success(newnet, "dhcp ip", "update",
         | 
| 44 | 
            +
                           command, section, -1, $new_network_dhcp_ip, flags)
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            newnet.destroy
         | 
| 47 | 
            +
             | 
| 40 48 | 
             
            # TESTGROUP: net.destroy
         | 
| 41 49 | 
             
            newnet = conn.create_network_xml($new_net_xml)
         | 
| 42 50 |  | 
| @@ -104,16 +112,16 @@ expect_invalid_arg_type(newnet, "autostart=", 1234) | |
| 104 112 |  | 
| 105 113 | 
             
            expect_success(newnet, "boolean arg", "autostart=", true)
         | 
| 106 114 | 
             
            if not newnet.autostart?
         | 
| 107 | 
            -
              puts_fail " | 
| 115 | 
            +
              puts_fail "network.autostart= did not set autostart to true"
         | 
| 108 116 | 
             
            else
         | 
| 109 | 
            -
              puts_ok " | 
| 117 | 
            +
              puts_ok "network.autostart= set autostart to true"
         | 
| 110 118 | 
             
            end
         | 
| 111 119 |  | 
| 112 120 | 
             
            expect_success(newnet, "boolean arg", "autostart=", false)
         | 
| 113 121 | 
             
            if newnet.autostart?
         | 
| 114 | 
            -
              puts_fail " | 
| 122 | 
            +
              puts_fail "network.autostart= did not set autostart to false"
         | 
| 115 123 | 
             
            else
         | 
| 116 | 
            -
              puts_ok " | 
| 124 | 
            +
              puts_ok "network.autostart= set autostart to false"
         | 
| 117 125 | 
             
            end
         | 
| 118 126 |  | 
| 119 127 | 
             
            newnet.undefine
         | 
| @@ -160,6 +168,7 @@ expect_success(newnet, "no args", "persistent?") {|x| x == true} | |
| 160 168 |  | 
| 161 169 | 
             
            newnet.undefine
         | 
| 162 170 |  | 
| 171 | 
            +
            # END TESTS
         | 
| 163 172 |  | 
| 164 173 | 
             
            conn.close
         | 
| 165 174 |  | 
    
        data/tests/test_nodedevice.rb
    CHANGED
    
    | @@ -7,6 +7,8 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("nodedevice")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 11 13 |  | 
| 12 14 | 
             
            # TESTGROUP: nodedevice.name
         | 
| @@ -43,7 +45,13 @@ expect_success(testnode, "no args", "xml_desc") | |
| 43 45 | 
             
            # TESTGROUP: nodedevice.detach
         | 
| 44 46 | 
             
            testnode = conn.lookup_nodedevice_by_name(conn.list_nodedevices[0])
         | 
| 45 47 |  | 
| 46 | 
            -
            expect_too_many_args(testnode, "detach", 1)
         | 
| 48 | 
            +
            expect_too_many_args(testnode, "detach", 1, 2, 3)
         | 
| 49 | 
            +
            expect_invalid_arg_type(testnode, "detach", 1)
         | 
| 50 | 
            +
            expect_invalid_arg_type(testnode, "detach", [])
         | 
| 51 | 
            +
            expect_invalid_arg_type(testnode, "detach", {})
         | 
| 52 | 
            +
            expect_invalid_arg_type(testnode, "detach", nil, 'foo')
         | 
| 53 | 
            +
            expect_invalid_arg_type(testnode, "detach", nil, [])
         | 
| 54 | 
            +
            expect_invalid_arg_type(testnode, "detach", nil, {})
         | 
| 47 55 |  | 
| 48 56 | 
             
            #expect_success(testnode, "no args", "detach")
         | 
| 49 57 |  | 
| @@ -75,6 +83,8 @@ expect_too_many_args(testnode, "free", 1) | |
| 75 83 |  | 
| 76 84 | 
             
            expect_success(testnode, "no args", "free")
         | 
| 77 85 |  | 
| 86 | 
            +
            # END TESTS
         | 
| 87 | 
            +
             | 
| 78 88 | 
             
            conn.close
         | 
| 79 89 |  | 
| 80 90 | 
             
            finish_tests
         | 
    
        data/tests/test_nwfilter.rb
    CHANGED
    
    | @@ -7,6 +7,8 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("nwfilter")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 11 13 |  | 
| 12 14 | 
             
            # TESTGROUP: nwfilter.undefine
         | 
| @@ -51,6 +53,8 @@ expect_too_many_args(newnw, "free", 1) | |
| 51 53 |  | 
| 52 54 | 
             
            expect_success(newnw, "no args", "free")
         | 
| 53 55 |  | 
| 56 | 
            +
            # END TESTS
         | 
| 57 | 
            +
             | 
| 54 58 | 
             
            conn.close
         | 
| 55 59 |  | 
| 56 60 | 
             
            finish_tests
         | 
    
        data/tests/test_open.rb
    CHANGED
    
    | @@ -7,6 +7,8 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("Libvirt")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            def expect_connect_error(func, args)
         | 
| 11 13 | 
             
              expect_fail(Libvirt, Libvirt::ConnectionError, "invalid driver", func, *args)
         | 
| 12 14 | 
             
            end
         | 
| @@ -59,6 +61,36 @@ conn.close | |
| 59 61 | 
             
            conn = expect_success(Libvirt, "uri, full cred, and user args", "open_auth", "qemu:///system", [Libvirt::CRED_AUTHNAME, Libvirt::CRED_PASSPHRASE], "hello") {|x| x.class == Libvirt::Connect }
         | 
| 60 62 | 
             
            conn.close
         | 
| 61 63 |  | 
| 64 | 
            +
            # equivalent to expect_invalid_arg_type
         | 
| 65 | 
            +
            begin
         | 
| 66 | 
            +
              conn = Libvirt::open_auth("qemu:///system", {}) do |cred|
         | 
| 67 | 
            +
              end
         | 
| 68 | 
            +
            rescue TypeError => e
         | 
| 69 | 
            +
              puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
         | 
| 70 | 
            +
            else
         | 
| 71 | 
            +
              puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
         | 
| 72 | 
            +
            end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            # equivalent to expect_invalid_arg_type
         | 
| 75 | 
            +
            begin
         | 
| 76 | 
            +
              conn = Libvirt::open_auth("qemu:///system", 1) do |cred|
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            rescue TypeError => e
         | 
| 79 | 
            +
              puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
         | 
| 80 | 
            +
            else
         | 
| 81 | 
            +
              puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
         | 
| 82 | 
            +
            end
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            # equivalent to expect_invalid_arg_type
         | 
| 85 | 
            +
            begin
         | 
| 86 | 
            +
              conn = Libvirt::open_auth("qemu:///system", 'foo') do |cred|
         | 
| 87 | 
            +
              end
         | 
| 88 | 
            +
            rescue TypeError => e
         | 
| 89 | 
            +
              puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
         | 
| 90 | 
            +
            else
         | 
| 91 | 
            +
              puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
         | 
| 92 | 
            +
            end
         | 
| 93 | 
            +
             | 
| 62 94 | 
             
            # equivalent to "expect_success"
         | 
| 63 95 | 
             
            begin
         | 
| 64 96 | 
             
              conn = Libvirt::open_auth("qemu:///system", [Libvirt::CRED_AUTHNAME, Libvirt::CRED_PASSPHRASE], "hello") do |cred|
         | 
| @@ -80,12 +112,25 @@ begin | |
| 80 112 | 
             
                res
         | 
| 81 113 | 
             
              end
         | 
| 82 114 |  | 
| 83 | 
            -
              puts_ok "open_auth uri, creds, userdata, auth block succeeded"
         | 
| 115 | 
            +
              puts_ok "Libvirt.open_auth uri, creds, userdata, auth block succeeded"
         | 
| 84 116 | 
             
              conn.close
         | 
| 85 117 | 
             
            rescue NoMethodError
         | 
| 86 | 
            -
              puts_skipped "open_auth does not exist"
         | 
| 118 | 
            +
              puts_skipped "Libvirt.open_auth does not exist"
         | 
| 87 119 | 
             
            rescue => e
         | 
| 88 | 
            -
              puts_fail "open_auth uri, creds, userdata, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
         | 
| 120 | 
            +
              puts_fail "Libvirt.open_auth uri, creds, userdata, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
         | 
| 121 | 
            +
            end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            # equivalent to "expect_success"
         | 
| 124 | 
            +
            begin
         | 
| 125 | 
            +
              conn = Libvirt::open_auth("qemu:///system") do |cred|
         | 
| 126 | 
            +
              end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
              puts_ok "Libvirt.open_auth uri, succeeded"
         | 
| 129 | 
            +
              conn.close
         | 
| 130 | 
            +
            rescue NoMethodError
         | 
| 131 | 
            +
              puts_skipped "Libvirt.open_auth does not exist"
         | 
| 132 | 
            +
            rescue => e
         | 
| 133 | 
            +
              puts_fail "Libvirt.open_auth uri expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
         | 
| 89 134 | 
             
            end
         | 
| 90 135 |  | 
| 91 136 | 
             
            # equivalent to "expect_success"
         | 
| @@ -109,12 +154,12 @@ begin | |
| 109 154 | 
             
                res
         | 
| 110 155 | 
             
              end
         | 
| 111 156 |  | 
| 112 | 
            -
              puts_ok "open_auth uri, creds, userdata, R/O flag, auth block succeeded"
         | 
| 157 | 
            +
              puts_ok "Libvirt.open_auth uri, creds, userdata, R/O flag, auth block succeeded"
         | 
| 113 158 | 
             
              conn.close
         | 
| 114 159 | 
             
            rescue NoMethodError
         | 
| 115 | 
            -
              puts_skipped "open_auth does not exist"
         | 
| 160 | 
            +
              puts_skipped "Libvirt.open_auth does not exist"
         | 
| 116 161 | 
             
            rescue => e
         | 
| 117 | 
            -
              puts_fail "open_auth uri, creds, userdata, R/O flag, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
         | 
| 162 | 
            +
              puts_fail "Libvirt.open_auth uri, creds, userdata, R/O flag, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
         | 
| 118 163 | 
             
            end
         | 
| 119 164 |  | 
| 120 165 | 
             
            # TESTGROUP: Libvirt::event_invoke_handle_callback
         | 
| @@ -125,6 +170,9 @@ expect_too_few_args(Libvirt, "event_invoke_handle_callback") | |
| 125 170 | 
             
            expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1)
         | 
| 126 171 | 
             
            expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1, 2)
         | 
| 127 172 | 
             
            expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1, 2, 3)
         | 
| 173 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, 1)
         | 
| 174 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, [])
         | 
| 175 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, nil)
         | 
| 128 176 | 
             
            # this is a bit bizarre; I am constructing a bogus hash to pass as the 4th
         | 
| 129 177 | 
             
            # parameter to event_invoke_handle_callback.  In a real situation, I would
         | 
| 130 178 | 
             
            # have been given this hash from libvirt earlier, and just pass it on.  I
         | 
| @@ -145,6 +193,9 @@ conn = Libvirt::open("qemu:///system") | |
| 145 193 | 
             
            expect_too_many_args(Libvirt, "event_invoke_timeout_callback", 1, 2, 3)
         | 
| 146 194 | 
             
            expect_too_few_args(Libvirt, "event_invoke_timeout_callback")
         | 
| 147 195 | 
             
            expect_too_few_args(Libvirt, "event_invoke_timeout_callback", 1)
         | 
| 196 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", 1)
         | 
| 197 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", [])
         | 
| 198 | 
            +
            expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", nil)
         | 
| 148 199 | 
             
            # this is a bit bizarre; I am constructing a bogus hash to pass as the 4th
         | 
| 149 200 | 
             
            # parameter to event_invoke_handle_callback.  In a real situation, I would
         | 
| 150 201 | 
             
            # have been given this hash from libvirt earlier, and just pass it on.  I
         | 
| @@ -194,4 +245,6 @@ expect_success(Libvirt, "unregister all callbacks", "event_register_impl", nil, | |
| 194 245 | 
             
            expect_success(Libvirt, "all Proc callbacks", "event_register_impl", virEventAddHandleProc, virEventUpdateHandleProc, virEventRemoveHandleProc, virEventAddTimerProc, virEventUpdateTimerProc, virEventRemoveTimerProc)
         | 
| 195 246 | 
             
            expect_success(Libvirt, "unregister all callbacks", "event_register_impl")
         | 
| 196 247 |  | 
| 248 | 
            +
            # END TESTS
         | 
| 249 | 
            +
             | 
| 197 250 | 
             
            finish_tests
         | 
    
        data/tests/test_secret.rb
    CHANGED
    
    | @@ -7,6 +7,8 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("secret")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 11 13 |  | 
| 12 14 | 
             
            # TESTGROUP: secret.uuid
         | 
| @@ -58,6 +60,27 @@ expect_success(newsecret, "value arg", "set_value", "foo") | |
| 58 60 |  | 
| 59 61 | 
             
            newsecret.undefine
         | 
| 60 62 |  | 
| 63 | 
            +
            # TESTGROUP: secret.value=
         | 
| 64 | 
            +
            newsecret = conn.define_secret_xml($new_secret_xml)
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            expect_too_many_args(newsecret, "value=", 1, 2)
         | 
| 67 | 
            +
            expect_too_few_args(newsecret, "value=")
         | 
| 68 | 
            +
            expect_invalid_arg_type(newsecret, "value=", {})
         | 
| 69 | 
            +
            expect_invalid_arg_type(newsecret, "value=", nil)
         | 
| 70 | 
            +
            expect_invalid_arg_type(newsecret, "value=", 1)
         | 
| 71 | 
            +
            expect_invalid_arg_type(newsecret, "value=", [1, 1])
         | 
| 72 | 
            +
            expect_invalid_arg_type(newsecret, "value=", [nil, 1])
         | 
| 73 | 
            +
            expect_invalid_arg_type(newsecret, "value=", [[], 1])
         | 
| 74 | 
            +
            expect_invalid_arg_type(newsecret, "value=", [{}, 1])
         | 
| 75 | 
            +
            expect_invalid_arg_type(newsecret, "value=", ['foo', nil])
         | 
| 76 | 
            +
            expect_invalid_arg_type(newsecret, "value=", ['foo', 'foo'])
         | 
| 77 | 
            +
            expect_invalid_arg_type(newsecret, "value=", ['foo', []])
         | 
| 78 | 
            +
            expect_invalid_arg_type(newsecret, "value=", ['foo', {}])
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            expect_success(newsecret, "value arg", "value=", "foo")
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            newsecret.undefine
         | 
| 83 | 
            +
             | 
| 61 84 | 
             
            # TESTGROUP: secret.get_value
         | 
| 62 85 | 
             
            newsecret = conn.define_secret_xml($new_secret_xml)
         | 
| 63 86 | 
             
            newsecret.set_value("foo")
         | 
| @@ -84,6 +107,8 @@ expect_too_many_args(newsecret, "free", 1) | |
| 84 107 |  | 
| 85 108 | 
             
            expect_success(newsecret, "no args", "free")
         | 
| 86 109 |  | 
| 110 | 
            +
            # END TESTS
         | 
| 111 | 
            +
             | 
| 87 112 | 
             
            conn.close
         | 
| 88 113 |  | 
| 89 114 | 
             
            finish_tests
         | 
    
        data/tests/test_storage.rb
    CHANGED
    
    | @@ -7,6 +7,8 @@ $: << File.dirname(__FILE__) | |
| 7 7 | 
             
            require 'libvirt'
         | 
| 8 8 | 
             
            require 'test_utils.rb'
         | 
| 9 9 |  | 
| 10 | 
            +
            set_test_object("storage_pool")
         | 
| 11 | 
            +
             | 
| 10 12 | 
             
            conn = Libvirt::open("qemu:///system")
         | 
| 11 13 |  | 
| 12 14 | 
             
            begin
         | 
| @@ -18,7 +20,7 @@ rescue | |
| 18 20 | 
             
            end
         | 
| 19 21 |  | 
| 20 22 | 
             
            # test setup
         | 
| 21 | 
            -
            `rm -rf #{$POOL_PATH}; mkdir #{$POOL_PATH} ; echo $?`
         | 
| 23 | 
            +
            `rm -rf #{$POOL_PATH}; mkdir -p #{$POOL_PATH} ; echo $?`
         | 
| 22 24 |  | 
| 23 25 | 
             
            new_storage_vol_xml = <<EOF
         | 
| 24 26 | 
             
            <volume>
         | 
| @@ -98,9 +100,10 @@ expect_invalid_arg_type(newpool, "delete", 'foo') | |
| 98 100 |  | 
| 99 101 | 
             
            expect_success(newpool, "no args", "delete")
         | 
| 100 102 |  | 
| 101 | 
            -
            `mkdir /tmp/ruby-libvirt-tester`
         | 
| 103 | 
            +
            `mkdir -p /tmp/ruby-libvirt-tester`
         | 
| 102 104 |  | 
| 103 105 | 
             
            newpool.undefine
         | 
| 106 | 
            +
            `mkdir -p #{$POOL_PATH}`
         | 
| 104 107 |  | 
| 105 108 | 
             
            # TESTGROUP: pool.refresh
         | 
| 106 109 | 
             
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| @@ -172,16 +175,16 @@ expect_invalid_arg_type(newpool, "autostart=", 1234) | |
| 172 175 |  | 
| 173 176 | 
             
            expect_success(newpool, "no args", "autostart=", true)
         | 
| 174 177 | 
             
            if not newpool.autostart?
         | 
| 175 | 
            -
              puts_fail " | 
| 178 | 
            +
              puts_fail "storage_pool.autostart= did not set autostart to true"
         | 
| 176 179 | 
             
            else
         | 
| 177 | 
            -
              puts_ok " | 
| 180 | 
            +
              puts_ok "storage_pool.autostart= set autostart to true"
         | 
| 178 181 | 
             
            end
         | 
| 179 182 |  | 
| 180 183 | 
             
            expect_success(newpool, "no args", "autostart=", false)
         | 
| 181 184 | 
             
            if newpool.autostart?
         | 
| 182 | 
            -
              puts_fail " | 
| 185 | 
            +
              puts_fail "storage_pool.autostart= did not set autostart to false"
         | 
| 183 186 | 
             
            else
         | 
| 184 | 
            -
              puts_ok " | 
| 187 | 
            +
              puts_ok "storage_pool.autostart= set autostart to false"
         | 
| 185 188 | 
             
            end
         | 
| 186 189 |  | 
| 187 190 | 
             
            newpool.undefine
         | 
| @@ -200,8 +203,11 @@ newpool = conn.create_storage_pool_xml($new_storage_pool_xml) | |
| 200 203 |  | 
| 201 204 | 
             
            expect_too_many_args(newpool, "list_volumes", 1)
         | 
| 202 205 |  | 
| 206 | 
            +
            expect_success(newpool, "no args", "list_volumes")
         | 
| 207 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 203 208 | 
             
            expect_success(newpool, "no args", "list_volumes")
         | 
| 204 209 |  | 
| 210 | 
            +
            newvol.delete
         | 
| 205 211 | 
             
            newpool.destroy
         | 
| 206 212 |  | 
| 207 213 | 
             
            # TESTGROUP: pool.free
         | 
| @@ -256,28 +262,6 @@ expect_success(newpool, "name arg", "lookup_volume_by_path", newvol.path) | |
| 256 262 | 
             
            newvol.delete
         | 
| 257 263 | 
             
            newpool.destroy
         | 
| 258 264 |  | 
| 259 | 
            -
            # TESTGROUP: vol.name
         | 
| 260 | 
            -
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 261 | 
            -
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 262 | 
            -
             | 
| 263 | 
            -
            expect_too_many_args(newvol, "name", 1)
         | 
| 264 | 
            -
             | 
| 265 | 
            -
            expect_success(newvol, "no args", "name")
         | 
| 266 | 
            -
             | 
| 267 | 
            -
            newvol.delete
         | 
| 268 | 
            -
            newpool.destroy
         | 
| 269 | 
            -
             | 
| 270 | 
            -
            # TESTGROUP: vol.key
         | 
| 271 | 
            -
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 272 | 
            -
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 273 | 
            -
             | 
| 274 | 
            -
            expect_too_many_args(newvol, "key", 1)
         | 
| 275 | 
            -
             | 
| 276 | 
            -
            expect_success(newvol, "no args", "key")
         | 
| 277 | 
            -
             | 
| 278 | 
            -
            newvol.delete
         | 
| 279 | 
            -
            newpool.destroy
         | 
| 280 | 
            -
             | 
| 281 265 | 
             
            # TESTGROUP: pool.create_volume_xml
         | 
| 282 266 | 
             
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 283 267 |  | 
| @@ -350,6 +334,43 @@ expect_success(newpool, "no args", "persistent?") {|x| x == true} | |
| 350 334 |  | 
| 351 335 | 
             
            newpool.undefine
         | 
| 352 336 |  | 
| 337 | 
            +
            # TESTGROUP:
         | 
| 338 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 339 | 
            +
            sleep 1
         | 
| 340 | 
            +
             | 
| 341 | 
            +
            expect_too_many_args(newpool, "list_all_volumes", 1, 2)
         | 
| 342 | 
            +
            expect_invalid_arg_type(newpool, "list_all_volumes", 'foo')
         | 
| 343 | 
            +
            expect_invalid_arg_type(newpool, "list_all_volumes", [])
         | 
| 344 | 
            +
            expect_invalid_arg_type(newpool, "list_all_volumes", {})
         | 
| 345 | 
            +
             | 
| 346 | 
            +
            expect_success(newpool, "no args", "list_all_volumes")
         | 
| 347 | 
            +
             | 
| 348 | 
            +
            newpool.destroy
         | 
| 349 | 
            +
             | 
| 350 | 
            +
            set_test_object("storage_volume")
         | 
| 351 | 
            +
             | 
| 352 | 
            +
            # TESTGROUP: vol.name
         | 
| 353 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 354 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 355 | 
            +
             | 
| 356 | 
            +
            expect_too_many_args(newvol, "name", 1)
         | 
| 357 | 
            +
             | 
| 358 | 
            +
            expect_success(newvol, "no args", "name")
         | 
| 359 | 
            +
             | 
| 360 | 
            +
            newvol.delete
         | 
| 361 | 
            +
            newpool.destroy
         | 
| 362 | 
            +
             | 
| 363 | 
            +
            # TESTGROUP: vol.key
         | 
| 364 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 365 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 366 | 
            +
             | 
| 367 | 
            +
            expect_too_many_args(newvol, "key", 1)
         | 
| 368 | 
            +
             | 
| 369 | 
            +
            expect_success(newvol, "no args", "key")
         | 
| 370 | 
            +
             | 
| 371 | 
            +
            newvol.delete
         | 
| 372 | 
            +
            newpool.destroy
         | 
| 373 | 
            +
             | 
| 353 374 | 
             
            # TESTGROUP: vol.delete
         | 
| 354 375 | 
             
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 355 376 | 
             
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| @@ -418,6 +439,89 @@ expect_success(newvol, "no args", "free") | |
| 418 439 |  | 
| 419 440 | 
             
            newpool.destroy
         | 
| 420 441 |  | 
| 442 | 
            +
            # TESTGROUP: vol.download
         | 
| 443 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 444 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 445 | 
            +
            stream = conn.stream
         | 
| 446 | 
            +
             | 
| 447 | 
            +
            expect_too_many_args(newvol, "download", 1, 2, 3, 4, 5)
         | 
| 448 | 
            +
            expect_too_few_args(newvol, "download")
         | 
| 449 | 
            +
            expect_too_few_args(newvol, "download", 1)
         | 
| 450 | 
            +
            expect_too_few_args(newvol, "download", 1, 2)
         | 
| 451 | 
            +
            expect_invalid_arg_type(newvol, "download", nil, 1, 1)
         | 
| 452 | 
            +
            expect_invalid_arg_type(newvol, "download", 'foo', 1, 1)
         | 
| 453 | 
            +
            expect_invalid_arg_type(newvol, "download", 1, 1, 1)
         | 
| 454 | 
            +
            expect_invalid_arg_type(newvol, "download", [], 1, 1)
         | 
| 455 | 
            +
            expect_invalid_arg_type(newvol, "download", {}, 1, 1)
         | 
| 456 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, nil, 1)
         | 
| 457 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 'foo', 1)
         | 
| 458 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, [], 1)
         | 
| 459 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, {}, 1)
         | 
| 460 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, nil)
         | 
| 461 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, 'foo')
         | 
| 462 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, [])
         | 
| 463 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, {})
         | 
| 464 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, 1, 'foo')
         | 
| 465 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, 1, [])
         | 
| 466 | 
            +
            expect_invalid_arg_type(newvol, "download", stream, 1, 1, {})
         | 
| 467 | 
            +
             | 
| 468 | 
            +
            expect_success(newvol, "stream, offset, and length args", "download", stream, 0, 10)
         | 
| 469 | 
            +
             | 
| 470 | 
            +
            newvol.delete
         | 
| 471 | 
            +
            newpool.destroy
         | 
| 472 | 
            +
             | 
| 473 | 
            +
            # TESTGROUP: vol.upload
         | 
| 474 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 475 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 476 | 
            +
            stream = conn.stream
         | 
| 477 | 
            +
             | 
| 478 | 
            +
            expect_too_many_args(newvol, "upload", 1, 2, 3, 4, 5)
         | 
| 479 | 
            +
            expect_too_few_args(newvol, "upload")
         | 
| 480 | 
            +
            expect_too_few_args(newvol, "upload", 1)
         | 
| 481 | 
            +
            expect_too_few_args(newvol, "upload", 1, 2)
         | 
| 482 | 
            +
            expect_invalid_arg_type(newvol, "upload", nil, 1, 1)
         | 
| 483 | 
            +
            expect_invalid_arg_type(newvol, "upload", 'foo', 1, 1)
         | 
| 484 | 
            +
            expect_invalid_arg_type(newvol, "upload", 1, 1, 1)
         | 
| 485 | 
            +
            expect_invalid_arg_type(newvol, "upload", [], 1, 1)
         | 
| 486 | 
            +
            expect_invalid_arg_type(newvol, "upload", {}, 1, 1)
         | 
| 487 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, nil, 1)
         | 
| 488 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 'foo', 1)
         | 
| 489 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, [], 1)
         | 
| 490 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, {}, 1)
         | 
| 491 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, nil)
         | 
| 492 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, 'foo')
         | 
| 493 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, [])
         | 
| 494 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, {})
         | 
| 495 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, 1, 'foo')
         | 
| 496 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, 1, [])
         | 
| 497 | 
            +
            expect_invalid_arg_type(newvol, "upload", stream, 1, 1, {})
         | 
| 498 | 
            +
             | 
| 499 | 
            +
            expect_success(newvol, "stream, offset, and length args", "upload", stream, 0, 10)
         | 
| 500 | 
            +
             | 
| 501 | 
            +
            newvol.delete
         | 
| 502 | 
            +
            newpool.destroy
         | 
| 503 | 
            +
             | 
| 504 | 
            +
            # TESTGROUP: vol.upload
         | 
| 505 | 
            +
            newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
         | 
| 506 | 
            +
            newvol = newpool.create_volume_xml(new_storage_vol_xml)
         | 
| 507 | 
            +
             | 
| 508 | 
            +
            expect_too_many_args(newvol, "wipe_pattern", 1, 2, 3)
         | 
| 509 | 
            +
            expect_too_few_args(newvol, "wipe_pattern")
         | 
| 510 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", nil)
         | 
| 511 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", 'foo')
         | 
| 512 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", [])
         | 
| 513 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", {})
         | 
| 514 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", 0, 'foo')
         | 
| 515 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", 0, [])
         | 
| 516 | 
            +
            expect_invalid_arg_type(newvol, "wipe_pattern", 0, {})
         | 
| 517 | 
            +
             | 
| 518 | 
            +
            expect_success(newvol, "alg arg", "wipe_pattern", Libvirt::StorageVol::WIPE_ALG_ZERO)
         | 
| 519 | 
            +
             | 
| 520 | 
            +
            newvol.delete
         | 
| 521 | 
            +
            newpool.destroy
         | 
| 522 | 
            +
             | 
| 523 | 
            +
            # END TESTS
         | 
| 524 | 
            +
             | 
| 421 525 | 
             
            conn.close
         | 
| 422 526 |  | 
| 423 527 | 
             
            finish_tests
         |