File: security_group_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 (78 lines) | stat: -rw-r--r-- 2,942 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
require "test_helper"

describe "Shindo.tests('@compute | security group requests" do
  before do
    @security_group = Hash.new
    @security_group_rule = Hash.new
    @security_group_format = {
      "id"          => Integer,
      "rules"       => Array,
      "tenant_id"   => String,
      "name"        => String,
      "description" => String
    }

    @security_group_rule_format = {
      "id"              => Integer,
      "from_port"       => Integer,
      "to_port"         => Integer,
      "ip_protocol"     => String,
      "group"           => Hash,
      "ip_range"        => Hash,
      "parent_group_id" => Integer
    }

    @compute = Fog::OpenStack::Compute.new
    @security_group = @compute.create_security_group('from_shindo_test',
                                                     'this is from the shindo test'
    ).body
    @security_group_id = @security_group['security_group']['id']

    @security_group_rule = @compute.create_security_group_rule(@security_group_id,
                                                               "tcp",
                                                               2222,
                                                               3333,
                                                               "20.20.20.20/24"
                                                              ).body
    @security_group_rule_id = @security_group_rule['security_group_rule']['id']
  end

  describe "success" do
    it "#create_security_group(name, description)" do
      @security_group.must_match_schema("security_group" => @security_group_format)
    end

    it "#create_security_group_rule(parent_group_id, ip_protocol, from_port, to_port, cidr, group_id=nil)" do
      @security_group_rule.must_match_schema("security_group_rule" => @security_group_rule_format)
    end

    it "#list_security_groups" do
      @compute.list_security_groups.body.
        must_match_schema("security_groups" => [@security_group_format])
    end

    it "#get_security_group(security_group_id)" do
      @compute.get_security_group(@security_group_id).body.
        must_match_schema("security_group" => @security_group_format)
    end

    it "#get_security_group_rule" do
      @compute.create_security_group_rule(@security_group_id, "tcp", 2222, 3333, "20.20.20.20/24").body
      @compute.get_security_group_rule(@security_group_rule_id).body.
        must_match_schema("security_group_rule" => @security_group_rule_format)
    end

    it "#delete_security_group_rule(security_group_rule_id" do
      @compute.delete_security_group_rule(@security_group_rule_id).status.must_equal 202
    end

    it "#delete_security_group(security_group_id" do
      @compute.delete_security_group(@security_group_id)

      groups = @compute.list_security_groups.body['security_groups']
      groups.any? do |group|
        group['id'] == @security_group_id
      end.must_equal false
    end
  end
end