RM8894

Adds a quota for the number of security groups allowed per port.
Ok, I looked at the other UT this was copied from. In that UT method, `groups` was a function argument so the `and` was used to decide which of the two (`groups` or local variable `group`) to use. In this context, the `and` doesn't make sense, IMHO, because `group_ids` is not a function argument. So, I think the right hand side of this line should just be `groups` because `(group_ids and groups)` will always evaluate to `groups` in this context, if I understand this correctly.