On 23 July 2013 16:53, Raphaël Badin <email address hidden> wrote:
> I think (name), (protocol, local port) and (protocol, port) are
> natural keys for an endpoint.
So a comparison would go something like, in order:
- If Name matches, they're the same,
- If Protocol and LocalPort match, they're the same,
- If Protocol and Port match, they're the same,
- Otherwise they're not the same.
What about LoadBalancedEndpointSetName?
Specifies a name for a set of load-balanced endpoints. Specifying
this element for a given endpoint adds it to the set.
That sounds like if it's set to a non-empty string then the natural
key would be (set-name, protocol, port, local-port).
This opens up more questions:
- For a load-balanced endpoint set, does the public port have to be
the same for all endpoints therein?
- What happens if a load-balanced set uses the same port as a
non-load-balanced endpoint? I assume they conflict. So, when
comparing endpoints we have to consider if they're the same
definition, or in conflict.
Also, I've seen some example XML for InputEndpoint that includes a Vip
tag (VIP in the GWACL structs). This ist shown in the docs for
GetRole, but not UpdateRole. I guess we can ignore this as Azure only
supports one VIP per deployment at present.
I'm still working on this branch... I think I'm going to land as soon
as I can with a whopping FIXME in CompareInputEndpoints, and then do
some experimentation to figure all the above out, at least that of it
which is relevant to us.
On 23 July 2013 16:53, Raphaël Badin <email address hidden> wrote:
> I think (name), (protocol, local port) and (protocol, port) are
> natural keys for an endpoint.
So a comparison would go something like, in order:
- If Name matches, they're the same,
- If Protocol and LocalPort match, they're the same,
- If Protocol and Port match, they're the same,
- Otherwise they're not the same.
What about LoadBalancedEnd pointSetName?
Specifies a name for a set of load-balanced endpoints. Specifying
this element for a given endpoint adds it to the set.
That sounds like if it's set to a non-empty string then the natural
key would be (set-name, protocol, port, local-port).
This opens up more questions:
- For a load-balanced endpoint set, does the public port have to be
the same for all endpoints therein?
- What happens if a load-balanced set uses the same port as a
non-load-balanced endpoint? I assume they conflict. So, when
comparing endpoints we have to consider if they're the same
definition, or in conflict.
Also, I've seen some example XML for InputEndpoint that includes a Vip
tag (VIP in the GWACL structs). This ist shown in the docs for
GetRole, but not UpdateRole. I guess we can ignore this as Azure only
supports one VIP per deployment at present.
I'm still working on this branch... I think I'm going to land as soon points, and then do
as I can with a whopping FIXME in CompareInputEnd
some experimentation to figure all the above out, at least that of it
which is relevant to us.