H Alena,
I am just trying to fix an old contribution that I applied as it
seemed not to harm in a basic test. revert didn't work so I am looking
for a quick remedy. The original patch does it for shared only. I
don't care either way. Lets do the best thing.
the code now
if (vm.getType() == Type.User
&&
_networkModel.areServicesSupportedInNetwork(network.getId(),
Service.Dhcp)
&& network.getTrafficType() == TrafficType.Guest
&& network.getGuestType() == GuestType.Shared) {
// remove the dhcpservice ip if this is the last nic in subnet.
DhcpServiceProvider dhcpServiceProvider =
getDhcpServiceProvider(network);
if (dhcpServiceProvider != null
&&
isDhcpAccrossMultipleSubnetsSupported(dhcpServiceProvider)
&& isLastNicInSubnet(nic)) {
removeDhcpServiceInSubnet(nic);
}
}
What do you sugest?
if (vm.getType() == Type.User
&&
_networkModel.areServicesSupportedInNetwork(network.getId(),
Service.Dhcp)) {
// remove the dhcpservice ip if this is the last nic in subnet.
DhcpServiceProvider dhcpServiceProvider =
getDhcpServiceProvider(network);
if (dhcpServiceProvider != null
&&
isDhcpAccrossMultipleSubnetsSupported(dhcpServiceProvider)
&& isLastNicInSubnet(nic)
&& network.getTrafficType() == TrafficType.Guest
&& network.getGuestType() == GuestType.Shared) {
removeDhcpServiceInSubnet(nic);
}
}
???
On Fri, Feb 7, 2014 at 6:56 PM, Alena Prokharchyk
<[email protected]> wrote:
> Daan,
>
> 1) What is the reason you execute this code snippet just for Shared
> networks?
> 2) As I suggested in my prev email, before retrieving Dhcpprovider, you
> should check if dhcp service is enabled on the network. Use method
> areServicesSupportedInNetwork
> From NetworkModel to check that.
>
> -Alena.
>
> On 2/6/14, 10:04 PM, "Daan Hoogland" <[email protected]> wrote:
>
>>Alena,
>>
>>The revert didn't apply. Would the folowing do the trick?
>>
>> if (vm.getType() == Type.User
>> && network.getTrafficType() == TrafficType.Guest
>> && network.getGuestType() == GuestType.Shared) {
>> // remove the dhcpservice ip if this is the last nic in
>>subnet.
>> DhcpServiceProvider dhcpServiceProvider =
>>getDhcpServiceProvider(network);
>> if (dhcpServiceProvider != null
>> &&
>>isDhcpAccrossMultipleSubnetsSupported(dhcpServiceProvider)
>> && isLastNicInSubnet(nic)) {
>> removeDhcpServiceInSubnet(nic);
>> }
>> }
>>
>>On Fri, Feb 7, 2014 at 6:55 AM, Daan Hoogland <[email protected]>
>>wrote:
>>> second thought,
>>>
>>> Soheils mail bounces and the commit does not refer a ticket from jira.
>>> I am going to revert. I should have been more vigilant. sorry.
>>>
>>> On Fri, Feb 7, 2014 at 6:49 AM, Daan Hoogland <[email protected]>
>>>wrote:
>>>> will do Alena,
>>>>
>>>> thanks for the headsup
>>>>
>>>> On Thu, Feb 6, 2014 at 10:42 PM, Alena Prokharchyk
>>>> <[email protected]> wrote:
>>>>> Soheil/Daan,
>>>>>
>>>>> The commit in the subject breaks network System vms destroy (VR, SSVM,
>>>>> CPVM), resulting in the network removal failures. Following line
>>>>>replacement
>>>>> causes the failure:
>>>>>
>>>>> - if (vm.getType() == Type.User &&
>>>>> isDhcpAccrossMultipleSubnetsSupported(network) &&
>>>>>isLastNicInSubnet(nic) &&
>>>>> network.getTrafficType() == TrafficType.Guest
>>>>>
>>>>> With
>>>>>
>>>>> + DhcpServiceProvider dhcpServiceProvider =
>>>>> getDhcpServiceProvider(network);
>>>>>
>>>>>
>>>>> When you try to call getDhcpServiceProvider(network), it throws an
>>>>>exception
>>>>> because DHCP service is not enabled in Public/Control networks of
>>>>>system vms
>>>>> nics. So system vm always fails to expunge.
>>>>>
>>>>> Could you please fix it by checking if DHCP service is enabled on the
>>>>> network, before getting the DHCP service provider?
>>>>>
>>>>> Thanks,
>>>>> Alena.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Daan
>>>
>>>
>>>
>>> --
>>> Daan
>>
>>
>>
>>--
>>Daan
>
--
Daan