Esempio n. 1
0
    def test_create_security_group_rule_nova_no_ports(self):

        self.has_neutron = False
        self.cloud.secgroup_source = 'nova'

        new_rule = fakes.FakeNovaSecgroupRule(id='xyz',
                                              from_port=1,
                                              to_port=65535,
                                              ip_protocol='tcp',
                                              cidr='1.2.3.4/32')

        nova_return = [nova_grp_dict]

        new_rule = meta.obj_to_munch(
            fakes.FakeNovaSecgroupRule(id='xyz',
                                       from_port=1,
                                       to_port=65535,
                                       ip_protocol='tcp',
                                       cidr='1.2.3.4/32'))

        self.register_uris([
            dict(method='GET',
                 uri='{endpoint}/os-security-groups'.format(
                     endpoint=fakes.COMPUTE_ENDPOINT),
                 json={'security_groups': nova_return}),
            dict(method='POST',
                 uri='{endpoint}/os-security-group-rules'.format(
                     endpoint=fakes.COMPUTE_ENDPOINT),
                 json={'security_group_rule': new_rule},
                 validate=dict(
                     json={
                         "security_group_rule": {
                             "from_port": 1,
                             "ip_protocol": "tcp",
                             "to_port": 65535,
                             "parent_group_id": "2",
                             "cidr": "1.2.3.4/32",
                             "group_id": "123"
                         }
                     })),
        ])

        self.cloud.create_security_group_rule('2',
                                              protocol='tcp',
                                              remote_ip_prefix='1.2.3.4/32',
                                              remote_group_id='123')

        self.assert_calls()
Esempio n. 2
0
    def test_create_security_group_rule_nova(self, mock_nova, mock_get):
        self.cloud.secgroup_source = 'nova'

        new_rule = fakes.FakeNovaSecgroupRule(id='xyz',
                                              from_port=1,
                                              to_port=2000,
                                              ip_protocol='tcp',
                                              cidr='1.2.3.4/32')
        mock_nova.security_group_rules.create.return_value = new_rule
        mock_get.return_value = {'id': 'abc'}

        self.cloud.create_security_group_rule('abc',
                                              port_range_min=1,
                                              port_range_max=2000,
                                              protocol='tcp',
                                              remote_ip_prefix='1.2.3.4/32',
                                              remote_group_id='123')

        mock_nova.security_group_rules.create.assert_called_once_with(
            parent_group_id='abc',
            ip_protocol='tcp',
            from_port=1,
            to_port=2000,
            cidr='1.2.3.4/32',
            group_id='123')