File: ipsec_site_connection_tests.rb

package info (click to toggle)
ruby-fog-openstack 1.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,784 kB
  • sloc: ruby: 47,937; makefile: 5; sh: 4
file content (118 lines) | stat: -rw-r--r-- 3,970 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
require 'test_helper'

describe "Fog::OpenStack::Network | ipsec_site_connection requests" do
  before do
    @ipsec_site_connection_format = {
      'id'                => String,
      'name'              => String,
      'description'       => String,
      'status'            => String,
      'tenant_id'         => String,
      'admin_state_up'    => Fog::Boolean,
      'psk'               => String,
      'initiator'         => String,
      'auth_mode'         => String,
      'peer_cidrs'        => Array,
      'mtu'               => Integer,
      'peer_ep_group_id'  => String,
      'ikepolicy_id'      => String,
      'vpnservice_id'     => String,
      'dpd'               => Hash,
      'route_mode'        => String,
      'ipsecpolicy_id'    => String,
      'local_ep_group_id' => String,
      'peer_address'      => String,
      'peer_id'           => String
    }
  end

  describe "success" do
    before do
      vpnservice_id  = "vpn"
      ikepolicy_id   = "ike"
      ipsecpolicy_id = "ipsec"

      attributes = {
        :name           => 'test-ipsec-site-connection',
        :description    => 'Test VPN IPSec Site Connection',
        :tenant_id      => 'tenant_id',
        :peer_address   => "172.24.4.226",
        :peer_id        => "172.24.4.226",
        :peer_cidrs     => [],
        :psk            => "secret",
        :mtu            => 1500,
        :dpd            => {"action" => "hold", "interval" => 30, "timeout" => 120},
        :initiator      => "bi-directional",
        :admin_state_up => true
      }

      @ipsec_site_connection = network.create_ipsec_site_connection(
        vpnservice_id, ikepolicy_id,
        ipsecpolicy_id, attributes
      ).body
    end

    it "#create_ipsec_site_connection" do
      @ipsec_site_connection.must_match_schema(
        'ipsec_site_connection' => @ipsec_site_connection_format
      )
    end

    it "#list_ipsec_site_connections" do
      network.list_ipsec_site_connections.body.
        must_match_schema('ipsec_site_connections' => [@ipsec_site_connection_format])
    end

    it "#get_ipsec_site_connection" do
      ipsec_site_connection_id = network.ipsec_site_connections.all.first.id
      network.get_ipsec_site_connection(ipsec_site_connection_id).body.
        must_match_schema('ipsec_site_connection' => @ipsec_site_connection_format)
    end

    it "#update_ipsec_site_connection" do
      ipsec_site_connection_id = network.ipsec_site_connections.all.first.id

      attributes = {
        :name           => 'rename-test-ipsec-site-connection',
        :description    => 'Test VPN IPSec Site Connection',
        :tenant_id      => 'tenant_id',
        :peer_address   => "172.24.4.226",
        :peer_id        => "172.24.4.226",
        :peer_cidrs     => [],
        :psk            => "secret",
        :mtu            => 1500,
        :dpd            => {"action" => "hold", "interval" => 30, "timeout" => 120},
        :initiator      => "bi-directional",
        :admin_state_up => true
      }

      network.update_ipsec_site_connection(ipsec_site_connection_id, attributes).body.
        must_match_schema('ipsec_site_connection' => @ipsec_site_connection_format)
    end

    it "#delete_ipsec_site_connection" do
      ipsec_site_connection_id = network.ipsec_site_connections.all.first.id
      network.delete_ipsec_site_connection(ipsec_site_connection_id).status.must_equal 204
    end
  end

  describe "failure" do
    it "#get_ipsec_site_connection" do
      proc do
        network.get_ipsec_site_connection(0)
      end.must_raise Fog::OpenStack::Network::NotFound
    end

    it "#update_ipsec_site_connection" do
      proc do
        network.update_ipsec_site_connection(0, {})
      end.must_raise Fog::OpenStack::Network::NotFound
    end

    it "#delete_ipsec_site_connection" do
      proc do
        network.delete_ipsec_site_connection(0)
      end.must_raise Fog::OpenStack::Network::NotFound
    end
  end
end