OMAPI statements for SPARC vendor-options support in ISC DHCP

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.

Regards,
AF

> 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 -
> Feature #3067: Request Support for Oracle SPARC provisioning with ISC-DHCP server. - Smart Proxy - Foreman
>
> 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

··· On Wed, Nov 27, 2013 at 2:08 PM, Aleksei Feltin wrote: > 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+unsubscribe@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out.

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?
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. >

>
> 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 :slight_smile:

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
>
>
>
>>
>> > 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 -
>> > Feature #3067: Request Support for Oracle SPARC provisioning with ISC-DHCP server. - Smart Proxy - Foreman
>> >
>> > 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
>> > &quot;inetboot.sun4u.sol_10_0811_sparc.mbl&quot;; option SUNW.JumpStart-server
>> > &quot;js-server:/Solaris/jumpstart&quot;; option SUNW.sysid-config-file-server
>> > &quot;js-server:/Solaris/jumpstart/sysidcfg/sysidcfg_primary/sysidcfg&quot;;
option
>> > SUNW.install-server-hostname &quot;js-server&quot;; option
>> > SUNW.install-server-ip-address 10.229.11.24; option SUNW.install-path
>> > &quot;/Solaris/install/Solaris_5.10_sparc_hw0811&quot;; option
>> > SUNW.root-server-hostname &quot;js-server&quot;; option
SUNW.root-server-ip-address
>> > 10.229.11.24; option SUNW.root-path-name
>> > &quot;/Solaris/install/Solaris_5.10_sparc_hw0811/Solaris_10/Tools/Boot&quot;;"
>> >
>> > 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+unsubscribe@googlegroups.com.

··· On Nov 30, 2013 9:23 AM, "Aleksei Feltin" wrote: > On Thursday, November 28, 2013 12:45:57 AM UTC+11, ohadlevy wrote: >> On Wed, Nov 27, 2013 at 2:08 PM, Aleksei Feltin >> wrote: > For more options, visit https://groups.google.com/groups/opt_out.

Hi Ohad,

I noticed a pull request to add support for SUNW options in Smart-Proxy ISC
DHCP code:

https://github.com/theforeman/smart-proxy/pull/117

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:

pull request comments:

··· ===================================

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 :slight_smile:

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.

Hi Ohad,

Could you review the Pull request for adding SPARC vendor options support
to ISC DHCP - https://github.com/theforeman/smart-proxy/pull/117

I've tested this patch against 1.3.0-1 codebase and it works properly. It
would be cool to close Feature #3067: Request Support for Oracle SPARC provisioning with ISC-DHCP server. - Smart Proxy - Foreman off and
announce this feature support, as I know quite a few people from big
companies who have been patiently waiting for this (including myself).

Regards,
Alex

··· On Wednesday, December 4, 2013 2:30:51 PM UTC+11, Aleksei Feltin wrote: > > Hi Ohad, > > I noticed a pull request to add support for SUNW options in Smart-Proxy > ISC DHCP code: > > https://github.com/theforeman/smart-proxy/pull/117 > > 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: > > pull request comments: > =================================== > > Hi Dmitry, > > Thanks for working on this. There's a number of issues with this patch > that I picked up during test: > > 1. > > 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" 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 >> >> 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. >> > For more options, visit https://groups.google.com/groups/opt_out. >> >