Hello community,

here is the log from the commit of package autoyast2 for openSUSE:Factory 
checked in at 2015-04-02 16:01:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/autoyast2 (Old)
 and      /work/SRC/openSUSE:Factory/.autoyast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "autoyast2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/autoyast2/autoyast2.changes      2015-02-03 
11:38:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.autoyast2.new/autoyast2.changes 2015-04-02 
16:01:23.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Mar 26 17:00:32 CET 2015 - [email protected]
+
+- New autoinst flag in general/mode section: final_restart_services.
+  Restarting all services after finishing the installation.
+  The default is "true" which is a backward compatible value.
+  (bnc#923992)
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ autoyast2-3.1.72.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.72/package/autoyast2.changes 
new/autoyast2-3.1.72/package/autoyast2.changes
--- old/autoyast2-3.1.72/package/autoyast2.changes      2015-01-30 
10:39:49.000000000 +0100
+++ new/autoyast2-3.1.72/package/autoyast2.changes      2015-03-27 
09:54:14.000000000 +0100
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Thu Mar 26 17:00:32 CET 2015 - [email protected]
+
+- New autoinst flag in general/mode section: final_restart_services.
+  Restarting all services after finishing the installation.
+  The default is "true" which is a backward compatible value.
+  (bnc#923992)
+
+-------------------------------------------------------------------
 Fri Jan 30 07:43:13 UTC 2015 - [email protected]
 
 - load release notes of extensions also during AutoYaST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.72/src/clients/inst_autoconfigure.rb 
new/autoyast2-3.1.72/src/clients/inst_autoconfigure.rb
--- old/autoyast2-3.1.72/src/clients/inst_autoconfigure.rb      2015-01-30 
10:39:50.000000000 +0100
+++ new/autoyast2-3.1.72/src/clients/inst_autoconfigure.rb      2015-03-27 
09:54:15.000000000 +0100
@@ -40,8 +40,11 @@
         Ops.get_map(Profile.current, ["general", "mode"], {})
       )
       @need_systemd_isolate = true
-      @max_steps = Ops.add(Builtins.size(Y2ModuleConfig.ModuleMap), 4)
+      final_restart_services = Ops.get_boolean(
+        Profile.current,["general", "mode", "final_restart_services"], true)
+      @max_steps = Y2ModuleConfig.ModuleMap.size + 3 # additional for 
scripting and finished message
       @max_steps = Ops.add(@max_steps, 1) if @need_systemd_isolate
+      @max_steps += 1 if final_restart_services
       Builtins.y2milestone(
         "max steps: %1 need_isolate:%2",
         @max_steps,
@@ -264,26 +267,29 @@
         "YaST2-Second-Stage.service",
         "autoyast-initscripts.service"
       ]
-
-      logStep(_("Restarting all running services"))
-      @cmd = "systemctl --type=service list-units | grep \" running \" | sed 
s/[[:space:]].*//"
-      @out = Convert.to_map(SCR.Execute(path(".target.bash_output"), @cmd))
-      @sl = Builtins.filter(
-        Builtins.splitstring(Ops.get_string(@out, "stdout", ""), "\n")
-      ) { |s| Ops.greater_than(Builtins.size(s), 0) }
-      Builtins.y2milestone("running services \"%1\"", @sl)
-      @sl = Builtins.filter(@sl) do |s|
-        !Builtins.contains(@ser_ignore, s)
+      if final_restart_services
+        logStep(_("Restarting all running services"))
+        @cmd = "systemctl --type=service list-units | grep \" running \" | sed 
s/[[:space:]].*//"
+        @out = Convert.to_map(SCR.Execute(path(".target.bash_output"), @cmd))
+        @sl = Builtins.filter(
+          Builtins.splitstring(Ops.get_string(@out, "stdout", ""), "\n")
+        ) { |s| Ops.greater_than(Builtins.size(s), 0) }
+        Builtins.y2milestone("running services \"%1\"", @sl)
+        @sl = Builtins.filter(@sl) do |s|
+          !Builtins.contains(@ser_ignore, s)
+        end
+        Builtins.y2milestone("restarting services \"%1\"", @sl)
+        @cmd = Ops.add(
+          "systemctl --no-block restart ",
+          Builtins.mergestring(@sl, " ")
+        )
+        Builtins.y2milestone("before calling \"%1\"", @cmd)
+        @out = Convert.to_map(SCR.Execute(path(".target.bash_output"), @cmd))
+        Builtins.y2milestone("after  calling \"%1\"", @cmd)
+        wait_systemd_finished(@max_wait, @ser_ignore)
+      else
+        Builtins.y2milestone("Do not restart all services (defined in 
autoyast.xml)")
       end
-      Builtins.y2milestone("restarting services \"%1\"", @sl)
-      @cmd = Ops.add(
-        "systemctl --no-block restart ",
-        Builtins.mergestring(@sl, " ")
-      )
-      Builtins.y2milestone("before calling \"%1\"", @cmd)
-      @out = Convert.to_map(SCR.Execute(path(".target.bash_output"), @cmd))
-      Builtins.y2milestone("after  calling \"%1\"", @cmd)
-      wait_systemd_finished(@max_wait, @ser_ignore)
       if @need_systemd_isolate
         logStep(_("Activating systemd default target"))
         #string cmd = "systemctl disable YaST2-Second-Stage.service; systemctl 
--ignore-dependencies isolate default.target";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.72/src/modules/AutoinstClass.rb 
new/autoyast2-3.1.72/src/modules/AutoinstClass.rb
--- old/autoyast2-3.1.72/src/modules/AutoinstClass.rb   2015-01-30 
10:39:50.000000000 +0100
+++ new/autoyast2-3.1.72/src/modules/AutoinstClass.rb   2015-03-27 
09:54:15.000000000 +0100
@@ -17,133 +17,87 @@
 
 module Yast
   class AutoinstClassClass < Module
-    def main
+    include Yast::Logger
 
+    def main
       Yast.import "AutoinstConfig"
       Yast.import "XML"
       Yast.import "Summary"
       Yast.include self, "autoinstall/xml.rb"
 
-
-
-
       @classDir = AutoinstConfig.classDir
-
       @ClassConf = "/etc/autoinstall"
-
       @profile_conf = []
-
       @Profiles = []
-
       @Classes = []
       @deletedClasses = []
       @confs = []
-
       @class_file = "classes.xml"
+      @classPath = File.join(@classDir, @class_file)
 
-      #string classPath = sformat("%1/%2", ClassConf, class_file);
-      @classPath = Builtins.sformat(
-        "%1/%2",
-        AutoinstConfig.classDir,
-        @class_file
-      )
       AutoinstClass()
     end
 
     # find a profile path
     # @param string profile name
     # @return [String] profile Path
-    #
-    def findPath(name, _class)
-      result = Ops.get(Builtins.filter(@confs) do |c|
-        Ops.get_string(c, "name", "") == name &&
-          Ops.get_string(c, "class", "") == _class
-      end, 0, {})
-
-      profile_path = Builtins.sformat(
-        "%1/%2/%3",
-        AutoinstConfig.classDir,
-        Ops.get_string(result, "class", ""),
-        Ops.get_string(result, "name", "default")
-      )
-      profile_path
+    def findPath(name, class_)
+      result = @confs.find { |c| c['name'] == name && c['class'] == class_ }
+      result ||= { 'class' => '', 'name' => 'default' }
+      File.join(@classDir, result['class'], result['name'])
     end
 
-
     # Read classes
     def Read
       if SCR.Read(path(".target.size"), @classPath) != -1
         # TODO: use XML module
-        tmp = Convert.to_map(SCR.Read(path(".xml"), @classPath))
-        @Classes = Ops.get_list(tmp, "classes", [])
+        classes_map = Convert.to_map(SCR.Read(path(".xml"), @classPath))
+        @Classes = (classes_map && classes_map['classes']) || []
       else
         @Classes = []
       end
       nil
     end
 
-
     #     we are doing some compatibility fixes here and move
     #     from one /etc/autoinstall/classes.xml to multiple
     #     classes.xml files, one for each repository
     def Compat
-      if Ops.less_or_equal(SCR.Read(path(".target.size"), @classPath), 0) &&
-          Ops.greater_than(
-            SCR.Read(
-              path(".target.size"),
-              Ops.add(Ops.add(@ClassConf, "/"), @class_file)
-            ),
-            0
-          )
-        Builtins.y2milestone(
-          "Compat: %1 not found but %2 exists",
-          @classPath,
-          Ops.add(Ops.add(@ClassConf, "/"), @class_file)
-        )
-        tmp = Convert.to_map(
-          SCR.Read(path(".xml"), Ops.add(Ops.add(@ClassConf, "/"), 
@class_file))
-        )
-        oldClasses = Ops.get_list(tmp, "classes", [])
-        newClasses = []
-        Builtins.foreach(oldClasses) do |_class|
-          Builtins.y2milestone(
-            "looking for %1",
-            Ops.add(
-              Ops.add(AutoinstConfig.classDir, "/"),
-              Ops.get_string(_class, "name", "")
-            )
-          )
-          if SCR.Read(
-              path(".target.dir"),
-              Ops.add(
-                Ops.add(AutoinstConfig.classDir, "/"),
-                Ops.get_string(_class, "name", "")
-              )
-            ) != nil
-            newClasses = Builtins.add(newClasses, _class)
-          end
-        end
-        tmp2 = { "classes" => newClasses }
-        Builtins.y2milestone("creating %1", tmp2)
-        XML.YCPToXMLFile(:class, tmp2, @classPath)
+      if !class_file_exists? && compat_class_file_exists?
+        log.info "Compat: #{@classPath} no found but #{compat_class_file} 
exists"
+        new_classes_map = { 'classes' => read_old_classes }
+        log.info "creating #{new_classes_map}"
+        XML.YCPToXMLFile(:class, new_classes_map, @classPath)
       end
-
       nil
     end
 
+    # Change the directory and read the class definitions
+    #
+    # @param [String] Path of the new directory
+    # @return nil
+    # @see class_dir=
     def classDirChanged(newdir)
-      AutoinstConfig.classDir = newdir
-      @classDir = newdir
-      @classPath = Builtins.sformat(
-        "%1/%2",
-        AutoinstConfig.classDir,
-        @class_file
-      )
+      self.class_dir = newdir
       Compat()
       Read()
       nil
     end
 
+    # Change the directory of classes definitions.
+    #
+    # AutoinstConfig#classDir= is called to set the new value
+    # in the configuration. It does not check if the directory
+    # exists or is accessible.
+    #
+    # @return [String] path of the new directory.
+    def class_dir=(newdir)
+      AutoinstConfig.classDir = newdir
+      @classDir = newdir
+      @classPath = File.join(@classDir, @class_file)
+      newdir
+    end
+
     # Constructor
     # @return void
 
@@ -154,13 +108,8 @@
       nil
     end
 
-
-
-
-
     # Merge Classes
     #
-
     def MergeClasses(configuration, base_profile, resultFileName)
       configuration = deep_copy(configuration)
       dontmerge_str = ""
@@ -215,54 +164,28 @@
       deep_copy(out)
     end
 
-
-
-
-
     # Read files from class directories
     # @return [void]
     def Files
       @confs = []
-      Builtins.foreach(@Classes) do |_class|
-        files = Convert.convert(
-          SCR.Read(
-            path(".target.dir"),
-            Ops.add(
-              Ops.add(@classDir, "/"),
-              Ops.get_string(_class, "name", "xxx")
-            )
-          ),
-          :from => "any",
-          :to   => "list <string>"
-        )
-        if files != nil
-          Builtins.y2milestone(
-            "Files in class %1: %2",
-            Ops.get_string(_class, "name", "xxx"),
-            files
-          )
-          tmp_confs = Builtins.maplist(files) do |file|
-            conf = {}
-            Ops.set(conf, "class", Ops.get_string(_class, "name", "xxx"))
-            Ops.set(conf, "name", file)
-            deep_copy(conf)
-          end
-          Builtins.y2milestone("Configurations: %1", tmp_confs)
-          @confs = Convert.convert(
-            Builtins.union(@confs, tmp_confs),
-            :from => "list",
-            :to   => "list <map>"
-          )
-        end
+      @Classes.each do |class_|
+        class_name_ = class_['name'] || 'xxx'
+        files_path = File.join(@classDir, class_name_)
+        files = Convert.convert(SCR.Read(path('.target.dir'), files_path),
+          :from => "any", :to   => "list <string>")
+
+        next if files.nil?
+
+        log.info "Files in class #{class_name_}: #{files}"
+        new_confs = files.map { |f| { 'class' => class_name_, 'name' => f  }  }
+        log.info "Configurations: #{new_confs}"
+        @confs.concat(new_confs)
       end
-      Builtins.y2milestone("Configurations: %1", @confs)
+      log.info "Configurations: #{@confs}"
       nil
     end
 
-
-
     # Save Class definitions
-
     def Save
       Builtins.foreach(@deletedClasses) do |c|
         toDel = Builtins.sformat(
@@ -274,14 +197,12 @@
       end
       @deletedClasses = []
       tmp = { "classes" => @Classes }
-      Builtins.y2debug("saving classes: %1", @classPath)
+      log.debug "saving classes: #{@classPath}"
       XML.YCPToXMLFile(:class, tmp, @classPath)
     end
 
 
-
     # Import configuration
-
     def Import(settings)
       settings = deep_copy(settings)
       @profile_conf = deep_copy(settings)
@@ -289,13 +210,11 @@
     end
 
     # Export configuration
-
     def Export
       deep_copy(@profile_conf)
     end
 
     # Configuration Summary
-
     def Summary
       summary = ""
 
@@ -331,6 +250,40 @@
     publish :function => :Import, :type => "boolean (list <map>)"
     publish :function => :Export, :type => "list <map> ()"
     publish :function => :Summary, :type => "string ()"
+
+    private
+
+    # Checks if a classes.xml exists
+    # @return [true,false] Returns true when present (false otherwise).
+    def class_file_exists?
+      SCR.Read(path(".target.size"), @classPath) > 0
+    end
+
+    # Checks if an old classes.xml exists
+    # @return [true,false] Returns true when present (false otherwise).
+    # @see compat_class_file
+    def compat_class_file_exists?
+      SCR.Read(path(".target.size"), compat_class_file) > 0
+    end
+
+    # Returns the path of the old classes.xml file
+    # By default, it is called /etc/autoinstall/classes.xml.
+    # @return [String] Path to the old classes.xml file.
+    def compat_class_file
+      File.join(@ClassConf, @class_file)
+    end
+
+    # Builds a map of classes to import from /etc/autoinstall/classes.xml
+    # @return [Array<Hash>] Classes defined in the file.
+    def read_old_classes
+      old_classes_map = Convert.to_map(SCR.Read(path('.xml'), 
compat_class_file))
+      old_classes = old_classes_map['classes'] || []
+      old_classes.each_with_object([]) do |class_, new_classes|
+        class_path_ = File.join(@classDir, class_['name'] || '')
+        log.info "looking for #{class_path_}"
+        new_classes << class_ unless SCR.Read(path(".target.dir"), 
class_path_).nil?
+      end
+    end
   end
 
   AutoinstClass = AutoinstClassClass.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.72/test/AutoinstClass_test.rb 
new/autoyast2-3.1.72/test/AutoinstClass_test.rb
--- old/autoyast2-3.1.72/test/AutoinstClass_test.rb     1970-01-01 
01:00:00.000000000 +0100
+++ new/autoyast2-3.1.72/test/AutoinstClass_test.rb     2015-03-27 
09:54:15.000000000 +0100
@@ -0,0 +1,201 @@
+#!/usr/bin/env rspec
+
+root_path = File.expand_path('../..', __FILE__)
+ENV["Y2DIR"] = File.join(root_path, 'src')
+
+require "yast"
+
+Yast.import "AutoinstClass"
+
+describe Yast::AutoinstClass do
+  subject { Yast::AutoinstClass }
+
+  let(:test_xml_dir) { File.join(root_path, 'test', 'fixtures')  }
+  let(:class_dir) { File.join(test_xml_dir, 'classes') }
+  let(:class_path) { File.join(class_dir, 'classes.xml') }
+  let(:faked_autoinstall_dir) { File.join(test_xml_dir, 'etc', 'autoinstall') }
+
+  before(:each) do
+    subject.class_dir = class_dir
+  end
+
+  describe '#Read' do
+    context 'when some class definition exists' do
+      it 'read content into @Classes' do
+        subject.Read
+        expect(subject.Classes).to_not be_empty
+      end
+
+      it 'returns nil' do
+        expect(subject.Read).to be_nil
+      end
+    end
+
+    context 'when classes definition file does not exist' do
+      before(:each) do
+        allow(Yast::SCR).to 
receive(:Read).with(Yast::Path.new('.target.size'), class_path).and_return(-1)
+      end
+
+      it 'sets Classes to []' do
+        subject.Read
+        expect(subject.Classes).to eq([])
+      end
+
+      it 'returns nil' do
+        expect(subject.Read).to be_nil
+      end
+    end
+
+    context 'when classes definition is empty or not valid XML' do
+      before(:each) do
+        allow(Yast::SCR).to receive(:Read).and_call_original
+        allow(Yast::SCR).to receive(:Read).with(Yast::Path.new('.xml'), 
class_path).and_return(nil)
+      end
+
+      it 'set Classes to []' do
+        subject.Read
+        expect(subject.Classes).to eq([])
+      end
+
+      it 'returns nil' do
+        expect(subject.Read).to be_nil
+      end
+    end
+  end
+
+  describe '#Files' do
+    before(:each) do
+      subject.Read
+    end
+
+    context 'when some class definition exists' do
+      it 'sets confs to an array containing classes configurations' do
+        subject.Files
+        expect(subject.confs).to match_array([
+          { "class" => "swap", "name" => "largeswap.xml" },
+          { "class" => "swap", "name" => "largeswap_noroot.xml" }
+        ])
+      end
+    end
+
+    context 'when classes definitions are not found' do
+      let(:swap_class_dir) { File.join(class_dir, 'swap') }
+
+      before(:each) do
+        allow(Yast::SCR).to receive(:Read).
+          with(Yast::Path.new('.target.dir'), 
swap_class_dir).and_return(directory_content)
+      end
+
+      context 'when directory does not exist' do
+        let(:directory_content) { nil }
+
+        it 'sets confs to an empty array' do
+          subject.Files
+          expect(subject.confs).to be_kind_of(Array)
+          expect(subject.confs).to be_empty
+        end
+      end
+
+      context 'when directory is empty' do
+        let(:directory_content) { [] }
+
+        it 'sets confs to an empty array' do
+          subject.Files
+          expect(subject.confs).to be_kind_of(Array)
+          expect(subject.confs).to be_empty
+        end
+      end
+    end
+  end
+
+  describe '#classDirChanged' do
+    let(:new_class_dir) { File.join(test_xml_dir, 'new_classes') }
+
+    after(:each) do
+      # Restore original configuration after the test
+      allow(Yast::AutoinstConfig).to 
receive(:classDir=).with(class_dir).and_call_original
+      allow(subject).to receive(:Read)
+      subject.classDirChanged(class_dir)
+    end
+
+    it 'reads again the classes definitions' do
+      expect(Yast::AutoinstConfig).to 
receive(:classDir=).with(new_class_dir).and_call_original
+      expect(subject).to receive(:Read)
+      subject.classDirChanged(new_class_dir)
+    end
+  end
+
+  describe '#findPath' do
+    let(:_class) { 'swap' }
+    let(:name) { 'largeswap.xml' }
+
+    before(:each) do |example|
+      subject.Files
+    end
+
+    context 'when class and configuration exists' do
+      it 'returns string with path to classes directory, class name and 
configuration' do
+        expect(subject.findPath(name, _class)).to eq(File.join(class_dir, 
_class, name))
+      end
+    end
+
+    context 'when class does not exist' do
+      let(:_class) { 'not-existent-class' }
+
+      it 'returns string with path to a default directory below the classes 
directory' do
+        expect(subject.findPath(name, _class)).to eq(File.join(class_dir, 
'default'))
+      end
+    end
+
+    context 'when name does not exist' do
+      let(:name) { 'not-existent-name' }
+
+      it 'returns string with path to a default directory below the classes 
directory' do
+        expect(subject.findPath(name, _class)).to eq(File.join(class_dir, 
'default'))
+      end
+    end
+  end
+
+  describe '#Compat' do
+    let(:faked_autoinstall_dir) { File.join(test_xml_dir, 'etc', 
'autoinstall') }
+
+    context 'when /etc/autoinstall/classes.xml exists' do
+      around(:each) do |example|
+        subject.ClassConf = faked_autoinstall_dir
+        example.call
+        subject.ClassConf = '/etc/autoinstall'
+      end
+
+      context 'and a classes.xml file does not exist in the new location' do
+        before(:each) do
+          allow(Yast::SCR).to receive(:Read).and_call_original
+          allow(Yast::SCR).to receive(:Read).
+            with(Yast::Path.new('.target.size'), class_path).and_return(-1)
+        end
+
+        it 'creates a classes.xml file in the new location' do
+          expect(Yast::XML).to receive(:YCPToXMLFile) do |type, data, path|
+            expect(type).to eq(:class)
+            expect(data['classes']).to be_kind_of(Array)
+            expect(path).to eq(File.join(class_dir, 'classes.xml'))
+          end
+          subject.Compat
+        end
+      end
+
+      context 'and a classes.xml file exists in the new location' do
+        it 'does not create a classes.xml file' do
+          expect(Yast::XML).to_not receive(:YCPToXMLFile)
+          subject.Compat
+        end
+      end
+    end
+  end
+
+  describe '#class_dir=' do
+    it 'sets the classes definitions directory' do
+      subject.class_dir = test_xml_dir
+      expect(subject.classDir).to eq(test_xml_dir)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/autoyast2-3.1.72/test/fixtures/classes/classes.xml 
new/autoyast2-3.1.72/test/fixtures/classes/classes.xml
--- old/autoyast2-3.1.72/test/fixtures/classes/classes.xml      1970-01-01 
01:00:00.000000000 +0100
+++ new/autoyast2-3.1.72/test/fixtures/classes/classes.xml      2015-03-27 
09:54:15.000000000 +0100
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<profile xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+  <general>
+    <mode>
+      <confirm xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">true</confirm>
+    </mode>
+  </general>
+  <networking>
+    <dns>
+      <dhcp_hostname xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</dhcp_hostname>
+      <domain>ltc.austin.ibm.com</domain>
+      <hostname>io-ravens</hostname>
+      <nameservers xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+        <nameserver>9.3.191.2</nameserver>
+      </nameservers>
+      <resolf_conf_policy>auto</resolf_conf_policy>
+      <searchlist>
+        <search>ltc.austin.ibm.com</search>
+      </searchlist>
+    </dns>
+    <interfaces xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+      <interface>
+        <bootproto>static</bootproto>
+        <device>eth-id-00:02:55:90:01:4E</device>
+        <ipaddr>9.3.191.71</ipaddr>
+        <netmask>255.255.255.0</netmask>
+        <startmode>boot</startmode>
+      </interface>
+      <interface>
+        <bootproto>static</bootproto>
+        <device>eth-id-00:0D:60:0A:7C:DE</device>
+        <ipaddr>10.1.191.71</ipaddr>
+        <netmask>255.0.0.0</netmask>
+        <startmode>boot</startmode>
+      </interface>
+    </interfaces>
+    <managed xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</managed>
+    <routing>
+      <ipforward xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</ipforward>
+      <routes xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+        <destination>default</destination>
+        <device>-</device>
+        <gateway>9.3.191.1</gateway>
+        <netmask/>
+      </routes>
+    </routing>
+  </networking>
+<classes xmlns:config="http://www.suse.com/1.0/configns"; config:type="list">
+    <class>
+        <name>swap</name>
+            <configuration>largeswap.xml</configuration>
+
+<!--
+            <dont_merge config:type="list">
+              <element>partition</element>
+            </dont_merge>
+        <configuration>largeswap_noroot.xml</configuration> -->
+    </class>
+</classes>
+<!--
+   <partitioning config:type="list">
+    <drive>
+      <initialize config:type="boolean">false</initialize>
+       <partitions config:type="list">
+          <partition>
+            <create config:type="boolean">true</create>
+            <format config:type="boolean">true</format>
+            <mount>/</mount>
+            <partition_id config:type="integer">131</partition_id>
+          </partition>
+      </partitions>
+      <use>all</use>
+    </drive>
+  </partitioning>
+  -->
+ <users xmlns:config="http://www.suse.com/1.0/configns"; config:type="list">
+    <user>
+      <user_password>rootpw</user_password>
+      <username>root</username>
+    </user>
+  </users>
+</profile>
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap.xml 
new/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap.xml
--- old/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap.xml       
1970-01-01 01:00:00.000000000 +0100
+++ new/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap.xml       
2015-03-27 09:54:15.000000000 +0100
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE profile>
+<profile xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+        <partitioning config:type="list">
+            <drive>
+                <partitions config:type="list">
+                    <partition>
+                        <filesystem config:type="symbol">swap</filesystem>
+                        <format config:type="boolean">true</format>
+                        <mount>swap</mount>
+                        <partition_id config:type="integer">130</partition_id>
+                        <size>2000mb</size>
+                    </partition>
+                    <partition>
+                        <filesystem config:type="symbol">ext3</filesystem>
+                        <partition_type>primary</partition_type>
+                        <size>4Gb</size>
+                        <mount>/</mount>
+                    </partition>
+                </partitions>
+                <use>all</use>
+            </drive>
+        </partitioning>
+</profile>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap_noroot.xml 
new/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap_noroot.xml
--- old/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap_noroot.xml        
1970-01-01 01:00:00.000000000 +0100
+++ new/autoyast2-3.1.72/test/fixtures/classes/swap/largeswap_noroot.xml        
2015-03-27 09:54:15.000000000 +0100
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE profile>
+<profile xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+        <partitioning config:type="list">
+            <drive>
+                <partitions config:type="list">
+                    <partition>
+                        <filesystem config:type="symbol">swap</filesystem>
+                        <format config:type="boolean">true</format>
+                        <mount>swap</mount>
+                        <partition_id config:type="integer">130</partition_id>
+                        <size>2000mb</size>
+                    </partition>
+                    <partition>
+                        <filesystem config:type="symbol">ext3</filesystem>
+                        <partition_type>primary</partition_type>
+                        <size>1Gb</size>
+                        <mount>/supreme</mount>
+                    </partition>
+                </partitions>
+            </drive>
+        </partitioning>
+</profile>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/autoyast2-3.1.72/test/fixtures/etc/autoinstall/classes.xml 
new/autoyast2-3.1.72/test/fixtures/etc/autoinstall/classes.xml
--- old/autoyast2-3.1.72/test/fixtures/etc/autoinstall/classes.xml      
1970-01-01 01:00:00.000000000 +0100
+++ new/autoyast2-3.1.72/test/fixtures/etc/autoinstall/classes.xml      
2015-03-27 09:54:15.000000000 +0100
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<profile xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+  <general>
+    <mode>
+      <confirm xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">true</confirm>
+    </mode>
+  </general>
+  <networking>
+    <dns>
+      <dhcp_hostname xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</dhcp_hostname>
+      <domain>ltc.austin.ibm.com</domain>
+      <hostname>io-ravens</hostname>
+      <nameservers xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+        <nameserver>9.3.191.2</nameserver>
+      </nameservers>
+      <resolf_conf_policy>auto</resolf_conf_policy>
+      <searchlist>
+        <search>ltc.austin.ibm.com</search>
+      </searchlist>
+    </dns>
+    <interfaces xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+      <interface>
+        <bootproto>static</bootproto>
+        <device>eth-id-00:02:55:90:01:4E</device>
+        <ipaddr>9.3.191.71</ipaddr>
+        <netmask>255.255.255.0</netmask>
+        <startmode>boot</startmode>
+      </interface>
+      <interface>
+        <bootproto>static</bootproto>
+        <device>eth-id-00:0D:60:0A:7C:DE</device>
+        <ipaddr>10.1.191.71</ipaddr>
+        <netmask>255.0.0.0</netmask>
+        <startmode>boot</startmode>
+      </interface>
+    </interfaces>
+    <managed xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</managed>
+    <routing>
+      <ipforward xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="boolean">false</ipforward>
+      <routes xmlns:config="http://www.suse.com/1.0/configns"; 
config:type="list">
+        <destination>default</destination>
+        <device>-</device>
+        <gateway>9.3.191.1</gateway>
+        <netmask/>
+      </routes>
+    </routing>
+  </networking>
+<classes xmlns:config="http://www.suse.com/1.0/configns"; config:type="list">
+    <class>
+        <name>swap</name>
+            <configuration>largeswap.xml</configuration>
+
+<!--
+            <dont_merge config:type="list">
+              <element>partition</element>
+            </dont_merge>
+        <configuration>largeswap_noroot.xml</configuration> -->
+    </class>
+</classes>
+<!--
+   <partitioning config:type="list">
+    <drive>
+      <initialize config:type="boolean">false</initialize>
+       <partitions config:type="list">
+          <partition>
+            <create config:type="boolean">true</create>
+            <format config:type="boolean">true</format>
+            <mount>/</mount>
+            <partition_id config:type="integer">131</partition_id>
+          </partition>
+      </partitions>
+      <use>all</use>
+    </drive>
+  </partitioning>
+  -->
+ <users xmlns:config="http://www.suse.com/1.0/configns"; config:type="list">
+    <user>
+      <user_password>rootpw</user_password>
+      <username>root</username>
+    </user>
+  </users>
+</profile>
+


Reply via email to