Hi Ethan.

On 04/15/09 12:14, Ethan Quach wrote:
> Jack,
>
> Just a nit.
>
> check-server-setup - 265 - maybe set this to some local variable here
> first and check if its non-empty before calling do_netmask_check()
> with it?
I didn't think this was necessary.  The call to find_network_nmask() is 
already checked in this way, and find_network_baseIP() operates (and 
could fail) the same way as find_network_nmask().

I suppose one could argue that one should treat all of find_network_* as 
black boxes though, and the code would be just a bit more maintainable...

OK, I'll make the change.

Delta: http://cr.opensolaris.org/~schwartz/090405.1/webrev.incr_5_6/
vs slim_source: http://cr.opensolaris.org/~schwartz/090405.1/webrev/

Please bless.

    Thanks,
    Jack
>
>
> thanks,
> -ethan
>
>
> Jack Schwartz wrote:
>> Hi Ethan.
>>
>> On 04/14/09 20:10, Ethan Quach wrote:
>>> Jack,
>>>
>>> installadm-common.sh
>>> ------------------------------------
>>> 784 - Can you rename this function to something like
>>> find_network_nmask() to be a bit more clear?  We already have
>>> a get_ip_netmask() function which find_netmask() sounds like it'd
>>> be doing, but it does something different.
>> Renamed to find_network_nmask().
>>>
>>> In addition, line 786 could be clarified to something like --
>>>   Given an IP address, figure out which network on this server
>>>   it belongs to, and return that network's netmask.
>> Nicely put.  Done.
>>>
>>>
>>> check-server-setup.sh
>>> -----------------------------------
>>> 264 - this doesn't look right, I wasn't expecting that you'd pass
>>> $ds_client_ipaddr to do_netmask_check().  I don't think the getent()
>>> call at line 200 would necessarily yield anything if its just some
>>> new dhcp ip the user is planning to add to the dhcp server.
>> OK, changed.
>>
>> FWIW, my experience with "getent netmasks" was different than you 
>> describe, and so my code worked for me.  It returned something if it 
>> finds an entry in netmasks(4) which "matches" (as defined below).
>>
>> match = (IP address & mask) == (network num & mask)
>>
>> Maybe someone has a better explanation;  I'm no expert at this.
>>
>> On my system I have the following in netmasks:
>> 129.146.226.0    255.255.254.0
>>
>> $ getent netmasks 129.146.226.0
>> 129.146.226.0        255.255.254.0
>> $ getent netmasks 129.146.226.123
>> 129.146.226.123      255.255.254.0
>> $ getent netmasks 129.146.227.123
>> 129.146.227.123      255.255.254.0
>> $ getent netmasks 129.147.230.123
>> $
>>
>>>
>>> I was expecting that you'd pass the IP of the interface of the
>>> network that $ds_client_ipaddr belongs to.
>> OK.  I'll change this as it makes sense.
>>>
>>> Looks like you can easily augment find_network_attr() to pass
>>> back yet another type of attribute, the IP of the interface itself, and
>>> write a new wrapper function to get that.
>> Yes.  That's how I'll get the above interface IP.
>>
>> Webrevs updated:
>> delta: http://cr.opensolaris.org/~schwartz/090405.1/webrev.incr_4_5/
>> vs slim_source: http://cr.opensolaris.org/~schwartz/090405.1/webrev/
>>
>> Please bless.
>>
>>    Thanks,
>>    Jack
>>>
>>>
>>>
>>> thanks,
>>> -ethan
>>>
>>>
>>>
>>> Jack Schwartz wrote:
>>>> Hi Ethan.
>>>>
>>>> Thanks for your review.
>>>>
>>>> On 04/14/09 01:06, Ethan Quach wrote:
>>>>> Jack,
>>>>>
>>>>> Have you thought about doing 237-253 for the ipaddr of the interface
>>>>> that's actually going to be used with the given 
>>>>> starting_client_dhcp ipaddr?
>>>>> As it stands, it could be verifying a netmask for network X on the 
>>>>> server,
>>>>> but the starting_client_dhcp ipaddr could be for network Y.  Since 
>>>>> the
>>>>> dhcp configuration is what actually wants the network table to be 
>>>>> correct
>>>>> for the network it's configuring, we could still see a failure 
>>>>> later on
>>>>> during the dhcp configuration.
>>>> OK.  You are correct.  I now to the same test for the client 
>>>> network as I do for the system network.
>>>>
>>>> Aside from some function shuffling, I have added a new function in 
>>>> installadm-common.sh called find_netmask which is almost the same 
>>>> as find_network but returns a netmask instead.
>>>>
>>>> Delta webrev: 
>>>> http://cr.opensolaris.org/~schwartz/090405.1/webrev.incr_3_4/
>>>>
>>>> Vs slim_source: http://cr.opensolaris.org/~schwartz/090405.1/webrev/
>>>>
>>>>    Thanks,
>>>>    Jack
>>>>>
>>>>>
>>>>> thanks,
>>>>> -ethan
>>>>>
>>>>>
>>>>> Jack Schwartz wrote:
>>>>>> Hi Dave.
>>>>>>
>>>>>> Thanks for round 2...  We're almost there...
>>>>>>
>>>>>> On 04/13/09 10:28, Dave Miner wrote:
>>>>>>>>> 233: error message would be better as "The netmask for network 
>>>>>>>>> $ds_ipaddr is not configured in the netmasks(4) table."
>>>>>>>> How about this:
>>>>>>>>     The netmask for network $ds_ipaddr cannot be found or is 
>>>>>>>> improperly configured.
>>>>>>>>
>>>>>>>> The reason the original message referred to getent(1M) instead 
>>>>>>>> of netmasks(4) was because I assumed getent could potentially 
>>>>>>>> find the netmask from somewhere other than /etc/netmasks(4), 
>>>>>>>> since there is a netmasks entry in /etc/nsswitch.conf.  Am I 
>>>>>>>> correct?
>>>>>>>>
>>>>>>>> I don't want to refer to netmasks(4) when some other source for 
>>>>>>>> netmasks exists and may be used by getent.  This would only 
>>>>>>>> confuse the user.  If netmasks(4) is really the only place the 
>>>>>>>> netmask can come from and you don't like my suggestion above, 
>>>>>>>> I'll change the message to refer to netmasks(4).
>>>>>>>
>>>>>>> The bug there is that the netmasks man page fails to acknowledge 
>>>>>>> other information sources, though they are rarely used.  
>>>>>>> Referring to getent doesn't give the user a clue where to fix it 
>>>>>>> (getent is an implementation detail of the script), whereas 
>>>>>>> referring to the netmasks table manpage does.  So no, I don't 
>>>>>>> agree with using getent in these messages.
>>>>>> This message (at line 240) didn't refer to either getent or 
>>>>>> netmasks.  Sounds like you want me to reference netmasks(4) there 
>>>>>> to better clue the user in on what to change.  So we're back to 
>>>>>> your original suggestion of:
>>>>>>
>>>>>> "The netmask for network $ds_ipaddr is not configured in the 
>>>>>> netmasks(4) table."
>>>>>>
>>>>>> There was one message on line 248 which did refer to getent, 
>>>>>> which I will change from:
>>>>>>    "The netmask obtained from getent(1M) for network $ds_ipaddr 
>>>>>> does not equal the netmask configured for the interface for that 
>>>>>> network."
>>>>>>
>>>>>> to:
>>>>>>    "The netmask obtained from netmasks(4) for network $ds_ipaddr 
>>>>>> does not equal the netmask configured for the interface for that 
>>>>>> network."
>>>>>>
>>>>>> Does this work for you?
>>>>>>
>>>>>> One other change which Ethan pointed out to me in person will be 
>>>>>> to call the get_host_ip() from installadm-common rather than call 
>>>>>> geteng myself on line 165.
>>>>>>
>>>>>> I webrevs updated with these changes.  Please bless.
>>>>>>
>>>>>> Delta: http://cr.opensolaris.org/~schwartz/090405.1/webrev.incr_2_3/
>>>>>>
>>>>>> Vs slim_source: http://cr.opensolaris.org/~schwartz/090405.1/webrev/
>>>>>>
>>>>>>    Thanks,
>>>>>>    Jack
>>>>>>>
>>>>>>> Other changes are fine.
>>>>>>>
>>>>>>> Dave
>>>>>>>
>>>>>>
>>>>
>>>>
>>


Reply via email to