On 06/20/2013 03:14 PM, Klaus Kaempf wrote:
This seems to add lots of complexity (and responsability) to
individual modules.

Instead of

   chroot.run Network.write(complex_map)

I'd rather see something like

   # global 'chroot' call, done by installer
   SCR.init("/mnt")
   ...
   Network.write(complex_map)

That's how it works now.

and

   module Network

     # SCR init still needed if Network is run stand-alone
     #   it's a no-op if SCR.init was called before
     SCR.init
     ...
     SCR.write ...
   end

Actually, if no SCR.init (different call name in use currently) SCR automatically uses "/" (no chroot).

It looks good except one thing: It doesn't solve running some Ruby code defined in the Yast library. I still have to create a special agent and call the agent.

What I wanted to solve was: There is a Yast library with some business logic and nice API. In this module, I want to use another Ruby libraries, such as File/Dir to read/modify the system. Right now, I have to use SCR for accessing the system.

Totally hackish solution for this:
--- cut ---
code = '$some_fancy_code_in_ruby'

SCR::Execute(
  path('.ruby'),
  code
)
--- cut ---

Agent .ruby would then eval() the code.

Sounds horrible but it would do the trick :) I'm not sure about proper testing though.

Lukas

--

Lukas Ocilka, Cloud & Systems Management Department
SUSE LINUX s.r.o., Praha
--
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to