I've tested it and it doesn't seem to work. I provided my comment pointing
out the issues with the patch and my vision of how it should work. Could
you verify and confirm whether it matches your expectations:
···
===================================
Hi Dmitry,
Thanks for working on this. There’s a number of issues with this patch that
I picked up during test:
-
SPARC build test case fails with the error in smart-proxy logfile
E, [2013-12-04T11:56:38.732935 #3807] ERROR – : DHCP implementation
does not support Vendor Options
This can be fixed by working out the conditional in
lib/proxy/dhcp/server.rb that makes assumption of unsupported vendor
options in ISC DHCP
2.
“if options[:vendor] =~ /sun|solar/i” conditional in the patch never
gets validated
I think conditional should be based on the architecture of the Host that
we are provisioning
3.
Working around issues 2 and 3 above, the code populates following lease
object, which is missing all SUNW.* options as in described issue
http://projects.theforeman.org/issues/3067
host sparc-host.fqdn {
dynamic;
hardware ethernet 00:21:28:6d:62:e8;
fixed-address 10.229.11.38;
supersede server.filename = “Solaris-5.10-hw0811-sun4v-inetboot”;
supersede server.next-server = 0a:e5:0b:18;
supersede host-name = “sparc-host.fqdn”;
supersede server.vendor-option-space = “SUNW”;
}
Options, specified in patch, are passed to OMAPI, however they contain
empty values, therefore they are ignored by OMAPI and are not added to the
lease object.
All SUNW.* option values must be derived from the Medium (Mirror) object
that we select for the SPARC Host that we are provisioning.
Please refer to the following OMAPI options below where examples are
given based on configured SPARC Medium (Mirror)
Name: Solaris Media
Path:
http://js-server/mrepo/Solaris/install/OS/Solaris_$major.$minor_$arch_$release
NFS media path:
js-server:/Solaris/install/Solaris_$major.$minor_$arch_$release
NFS configuration path: js-server:/Solaris/jumpstart
NFS image path: js-server:/Solaris/images/ (this is not used in my
testcase, as I don’t use Flash Archives)
Operating System Family: Solaris
option server.vendor-option-space = “SUNW”;
This is working already as it is hardcoded value, however please refer
to point 2 above in regards the conditional block.
option server.next-server = 0a:e5:0b:18;
This is working as this is the part of standard PXE. It points to
Smart-Proxy IP in hex (tftp)
option server.filename = “Solaris-5.10-hw0811-sun4v-inetboot”;
This is working as this is the part of standard PXE and specifies
network loader image name
option SUNW.JumpStart-server = " ";
This is not working. Value must be derived from “NFS configuration path”
in defined SPARC Medium (Mirror).
Value example: “js-server:/Solaris/jumpstart”
option SUNW.sysid-config-file-server = " ";
This is not working. Value must be the combination of
SUNW.JumpStart-server value and hardcoded path to sysidcfg.
Value example: “js-server:/Solaris/jumpstart/sysidcfg/sysidcfg_primary”
option SUNW.install-server-hostname = “”;
This is not working. Value must be derived from SPARC Medium (Mirror)
Media Path.
Value example: “js-server”
option SUNW.install-server-ip-address = ;
This is not working. Value must be derived from SPARC Medium (Mirror)
Media Path hostname part.
Value example: 10.229.11.24 (IP of js-server). It is then decoded to hex
by OMAPI.
option SUNW.install-path ="";
This is not working. Value must be derived from NFS Media Path based on
chosen minor/major release numbers for the host that we are provisioning.
Value example: “/Solaris/install/Solaris_5.10_sparc_hw0811”
option SUNW.root-server-hostname = “”;
This is not working. Value must be the same as the value of
SUNW.install-server-hostname.
option SUNW.root-server-ip-address = ;
This is not working. Value must be the same as the value of
SUNW.install-server-ip-address
option SUNW.root-path-name = “”;
This is nor working. Value must be the same as SUNW.install-path +
“/Solaris_10/Tools/Boot” directory
Value example:
“/Solaris/install/Solaris_5.10_sparc_hw0811/Solaris_10/Tools/Boot”
So for every SPARC host, that we are defining. OMAPI option values must be
populated from the selected SPARC Mirror.
Regards,
Alex Feltin
On Saturday, November 30, 2013 6:26:31 PM UTC+11, ohadlevy wrote:
On Nov 30, 2013 9:23 AM, “Aleksei Feltin” <aleksei...@gmail.com<javascript:>> > wrote:
Hi Ohad,
I am glad to submit a patch, my only concern is, if I submit it, will it
be supported in future versions? Is there a plan to further maintain ISC
OMAPI interface?
I would say this is probably the best way to ensure it get upstream 
I see no reason why we would not support it. The only question is about
defining the vendor options and if we should add it to our installer.
Ohad
Getting SPARC working is crucial and is the one of the main reasons why
I am looking to deploy foreman across our infrastructure.
Regards,
AF
On Thursday, November 28, 2013 12:45:57 AM UTC+11, ohadlevy wrote:
On Wed, Nov 27, 2013 at 2:08 PM, Aleksei Feltin > >> aleksei...@gmail.com wrote:
Hi,
I’d like to refer to the older post about the subject -
https://groups.google.com/forum/#!msg/foreman-users/CdqWH65-K3U/gcyKKZwVdzEJ
There was also an issue raised to track this -
http://projects.theforeman.org/issues/3067
it was commented that SPARC boot is currently impossible by ISC OMAPI
limitations, however I’d like to report that I got it working in my
environment.
I grouped all SPARC SUNW options into following OMAPI statement
object:
set statements="vendor-option-space SUNW; next-server=0a:e5:0b:18;
filename
“inetboot.sun4u.sol_10_0811_sparc.mbl”; option
SUNW.JumpStart-server
“js-server:/Solaris/jumpstart”; option
SUNW.sysid-config-file-server
“js-server:/Solaris/jumpstart/sysidcfg/sysidcfg_primary/sysidcfg”;
option
SUNW.install-server-hostname “js-server”; option
SUNW.install-server-ip-address 10.229.11.24; option SUNW.install-path
“/Solaris/install/Solaris_5.10_sparc_hw0811”; option
SUNW.root-server-hostname “js-server”; option
SUNW.root-server-ip-address
10.229.11.24; option SUNW.root-path-name
“/Solaris/install/Solaris_5.10_sparc_hw0811/Solaris_10/Tools/Boot”;"
This populated following lease:
host sparc-host{
dynamic;
hardware ethernet 00:21:28:6d:62:e8;
fixed-address 10.229.11.38;
supersede server.vendor-option-space = “SUNW”;
supersede server.next-server = 0a:e5:0b:18;
supersede server.filename = “inetboot.sun4u.sol_10_0811_sparc.mbl”;
supersede SUNW.JumpStart-server = “js-server:/Solaris/jumpstart”;
supersede SUNW.sysid-config-file-server =
“js-server:/Solaris/jumpstart/sysidcfg/sysidcfg_primary/sysidcfg”;
supersede SUNW.install-server-hostname = “js-server”;
supersede SUNW.install-server-ip-address = 0a:e5:0b:18;
supersede SUNW.install-path =
“/Solaris/install/Solaris_5.10_sparc_hw0811”;
supersede SUNW.root-server-hostname = “js-server”;
supersede SUNW.root-server-ip-address = 0a:e5:0b:18;
supersede SUNW.root-path-name =
“/Solaris/install/Solaris_5.10_sparc_hw0811/Solaris_10/Tools/Boot”;
}
On the SPARC client side I’ve verified all vendor option values with
dhcpinfo and they were set up properly. I was able to jumpstart and
build
Solaris SPARC.
Given that the above worked and that SPARC support in ISC DHCP via
OMAPI has
been already requested by a number of people, could we implement it
in
Foreman?
This will, in my opinion, drive product popularity even more higher.
Wonderful, thank you!
Would you consider sending us a patch to the proxy? AFAIR, its just a
parsing of the options and formatting them in the format ISC expects:
see [1] for examples.
thanks!
Ohad
[1]
https://github.com/theforeman/smart-proxy/blob/develop/lib/proxy/dhcp/server/isc.rb#L34
Regards,
AF
–
You received this message because you are subscribed to the Google
Groups
“foreman-dev” group.
To unsubscribe from this group and stop receiving emails from it,
send an
email to foreman-dev...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
–
You received this message because you are subscribed to the Google
Groups “foreman-dev” group.
To unsubscribe from this group and stop receiving emails from it, send
an email to foreman-dev...@googlegroups.com <javascript:>.
For more options, visit https://groups.google.com/groups/opt_out.