Jack,

The changes look okay.


thanks,
-ethan


Jack Schwartz wrote:
> 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