Change "domains" directory name to "containers" 55/23755/1
authorMichal Witanowski <m.witanowski@samsung.com>
Mon, 28 Apr 2014 14:43:06 +0000 (16:43 +0200)
committerLukasz Kostyra <l.kostyra@samsung.com>
Wed, 2 Jul 2014 09:54:52 +0000 (11:54 +0200)
[Bug/Feature]   N/A
[Cause]         Security-containers-server uses /opt/usr/containers/ path.
[Solution]      Change temporary directories names.
[Verification]  Install, build image, check if containers file systems
                are located in /opt/usr/containers/, run SCS without
                any paths modiffications.

Change-Id: I1f0aea4d5fcd1cdfd3ccb7e566c1f79d6d2a248e
Signed-off-by: Lukasz Kostyra <l.kostyra@samsung.com>
data/conf.xml
modules/image_builder.py
modules/xml_parser.py
tools/create_image

index 35d4d23..5674d54 100644 (file)
@@ -1,25 +1,25 @@
 <image>
-    <domain name="host">
+    <container name="host">
         <rebuild>no</rebuild> <!-- yes/no -->
-        <ks-file>input/domains/host/host.ks</ks-file>
-        <local-pkgs>input/domains/host/local-pkgs</local-pkgs>
-        <scripts>input/domains/host/scripts</scripts>
-    </domain>
+        <ks-file>input/containers/host/host.ks</ks-file>
+        <local-pkgs>input/containers/host/local-pkgs</local-pkgs>
+        <scripts>input/containers/host/scripts</scripts>
+    </container>
 
-    <domain name="business">
+    <container name="business">
         <add-to-image>yes_without_rebuild</add-to-image> <!-- yes_with_rebuild/yes_without_rebuild/no -->
-        <ks-file>input/domains/business/business.ks</ks-file>
-        <local-pkgs>input/domains/business/local-pkgs</local-pkgs>
-        <scripts>input/domains/business/scripts</scripts>
-        <shift-ids>20000</shift-ids> <!-- value by which uid/gid values of all domain's files are shifted -->
-    </domain>
+        <ks-file>input/containers/business/business.ks</ks-file>
+        <local-pkgs>input/containers/business/local-pkgs</local-pkgs>
+        <scripts>input/containers/business/scripts</scripts>
+        <shift-ids>20000</shift-ids> <!-- value by which uid/gid values of all container's files are shifted -->
+    </container>
 
-    <domain name="private">
+    <container name="private">
         <add-to-image>yes_without_rebuild</add-to-image> <!-- yes_with_rebuild/yes_without_rebuild/no -->
-        <ks-file>input/domains/private/private.ks</ks-file>
-        <local-pkgs>input/domains/private/local-pkgs</local-pkgs>
-        <scripts>input/domains/private/scripts</scripts>
-        <shift-ids>40000</shift-ids> <!-- value by which uid/gid values of all domain's files are shifted -->
-    </domain>
+        <ks-file>input/containers/private/private.ks</ks-file>
+        <local-pkgs>input/containers/private/local-pkgs</local-pkgs>
+        <scripts>input/containers/private/scripts</scripts>
+        <shift-ids>40000</shift-ids> <!-- value by which uid/gid values of all container's files are shifted -->
+    </container>
 </image>
 
index 7cae202..54b6215 100644 (file)
@@ -33,7 +33,7 @@ from diutils.logger import log
 from diutils.cmd_wrapper import *
 from diutils.uidmapshift import Shifter
 
-HOST_IMAGE_DIR = "tmp/domains/host/mic-output/"
+HOST_IMAGE_DIR = "tmp/containers/host/mic-output/"
 
 
 class ImageBuilder(object):
@@ -79,30 +79,30 @@ class ImageBuilder(object):
         self.__cmd_wrap('if [ -e tmp/full/*.img ]; then rm -rf tmp/full/*.img; fi')
 
     def __buildImages(self):
-        for domain_name in self.__configData.keys():
-            if domain_name == "host":
-                if self.__configData[domain_name]["rebuild"] != "yes":
+        for container_name in self.__configData.keys():
+            if container_name == "host":
+                if self.__configData[container_name]["rebuild"] != "yes":
                     log.INFO("Using previously built host images")
                     continue
 
-            elif self.__configData[domain_name]["add-to-image"] != "yes_with_rebuild":
-                    log.INFO("Using previously built " + domain_name + " image")
+            elif self.__configData[container_name]["add-to-image"] != "yes_with_rebuild":
+                    log.INFO("Using previously built " + container_name + " image")
                     continue
 
             # include local packages if specified
             includeLocalPkgs = ''
-            if 'local-pkgs' in self.__configData[domain_name].keys():
+            if 'local-pkgs' in self.__configData[container_name].keys():
                 # check if given directory is present
-                if not os.path.isdir(self.__configData[domain_name]["local-pkgs"]):
-                    log.ERROR("dir specified in .xml config file not found: " + self.__configData[domain_name]["local-pkgs"])
+                if not os.path.isdir(self.__configData[container_name]["local-pkgs"]):
+                    log.ERROR("dir specified in .xml config file not found: " + self.__configData[container_name]["local-pkgs"])
                     sys.exit(1)
 
-                includeLocalPkgs = ' --local-pkgs-path=' + self.__configData[domain_name]['local-pkgs'] + ' '
+                includeLocalPkgs = ' --local-pkgs-path=' + self.__configData[container_name]['local-pkgs'] + ' '
 
             # build image with mic
             self.__cmd_wrap('mic create loop ' +
-                          self.__configData[domain_name]['ks-file'] +
-                          ' --outdir=tmp/domains/' + domain_name + '/mic-output/' +
+                          self.__configData[container_name]['ks-file'] +
+                          ' --outdir=tmp/containers/' + container_name + '/mic-output/' +
                           includeLocalPkgs)
 
     def __checkAfterBuild(self):
@@ -110,8 +110,8 @@ class ImageBuilder(object):
         if self.__dryRun == True:
             log.INFO("[Assuming, that all *.img files were successfully created]")
         else:
-            for domain_name in self.__configData.keys():
-                if domain_name == "host":
+            for container_name in self.__configData.keys():
+                if container_name == "host":
                     if not os.path.isfile(HOST_IMAGE_DIR + "data.img"):
                         log.ERROR("image not created: " + HOST_IMAGE_DIR + "data.img")
                         sys.exit(1)
@@ -122,9 +122,9 @@ class ImageBuilder(object):
                         log.ERROR("image not created: " + HOST_IMAGE_DIR + "ums.img")
                         sys.exit(1)
                 else:
-                    if not os.path.isfile("tmp/domains/" + domain_name + "/mic-output/image.img"):
+                    if not os.path.isfile("tmp/containers/" + container_name + "/mic-output/image.img"):
                         log.ERROR("\image not created: " +
-                            "tmp/domains/" + domain_name + "/mic-output/image.img")
+                            "tmp/containers/" + container_name + "/mic-output/image.img")
                         sys.exit(1)
 
     def __resizeImages(self):
@@ -136,7 +136,7 @@ class ImageBuilder(object):
         self.__cmd_wrap('mkdir -p tmp/full/')
         self.__cmd_wrap('cp -a ' + HOST_IMAGE_DIR + '*.img tmp/full/')
 
-        # resize host ums image to prepare space for domain images
+        # resize host ums image to prepare space for container images
         self.__cmd_wrap('e2fsck -f tmp/full/ums.img')
         self.__cmd_wrap('resize2fs -f tmp/full/ums.img 4000M')
 
@@ -152,21 +152,18 @@ class ImageBuilder(object):
         self.__cmd_wrap('mount tmp/full/ums.img tmp/mp_full_ums')
 
         # mount non-host images
-        for domain_name in self.__configData.keys():
-            if domain_name != "host":
-                self.__cmd_wrap('mkdir -p tmp/mp_' + domain_name)
-                self.__cmd_wrap('mount tmp/domains/' + domain_name + '/mic-output/image.img tmp/mp_' + domain_name)
-
-                # temporary solution (not enough free space on 05 partition)
-                self.__cmd_wrap('mkdir -p tmp/mp_full_platform/domains/' + domain_name)
-                self.__cmd_wrap('mkdir -p tmp/mp_full_ums/domains/' + domain_name)
+        for container_name in self.__configData.keys():
+            if container_name != "host":
+                self.__cmd_wrap('mkdir -p tmp/mp_' + container_name)
+                self.__cmd_wrap('mount tmp/containers/' + container_name + '/mic-output/image.img tmp/mp_' + container_name)
+                self.__cmd_wrap('mkdir -p tmp/mp_full_ums/containers/' + container_name)
 
     def __copyFiles(self):
         # copy non-host images onto host
-        for domain_name in self.__configData.keys():
-            if domain_name != "host":
-                self.__cmd_wrap('(cd ' + 'tmp/mp_' + domain_name + '; tar cf - .) | ' +
-                             '(cd tmp/mp_full_ums/domains/' + domain_name + '/; tar pxf -)')
+        for container_name in self.__configData.keys():
+            if container_name != "host":
+                self.__cmd_wrap('(cd ' + 'tmp/mp_' + container_name + '; tar cf - .) | ' +
+                             '(cd tmp/mp_full_ums/containers/' + container_name + '/; tar pxf -)')
 
         # copy host scripts
         if 'scripts' in self.__configData['host'].keys():
@@ -180,31 +177,31 @@ class ImageBuilder(object):
                         'tmp/mp_full_platform/root/.scripts/')
 
         # copy non-host scripts
-        for domain_name in self.__configData.keys():
-            if domain_name != "host":
-                if 'scripts' in self.__configData[domain_name].keys():
+        for container_name in self.__configData.keys():
+            if container_name != "host":
+                if 'scripts' in self.__configData[container_name].keys():
                     # check if given directory is present
-                    if not os.path.isdir(self.__configData[domain_name]['scripts']):
-                        log.ERROR("dir specified in .xml config file not found: " + self.__configData[domain_name]['scripts'])
+                    if not os.path.isdir(self.__configData[container_name]['scripts']):
+                        log.ERROR("dir specified in .xml config file not found: " + self.__configData[container_name]['scripts'])
                         sys.exit(1)
 
-                    self.__cmd_wrap('mkdir -p tmp/mp_full_ums/domains/' + domain_name + '/root/.scripts/')
-                    self.__cmd_wrap('cp ' + self.__configData[domain_name]['scripts'] + '/* ' +
-                                'tmp/mp_full_ums/domains/' + domain_name + '/root/.scripts/')
+                    self.__cmd_wrap('mkdir -p tmp/mp_full_ums/containers/' + container_name + '/root/.scripts/')
+                    self.__cmd_wrap('cp ' + self.__configData[container_name]['scripts'] + '/* ' +
+                                'tmp/mp_full_ums/containers/' + container_name + '/root/.scripts/')
 
     def __shiftIds(self):
-        # shift uid and gid values within domains
-        for domain_name in self.__configData.keys():
-            if domain_name != "host":
-                if 'shift-ids' in self.__configData[domain_name].keys():
-                    # shift uid/gid of files in this domain
-                    shift = int(self.__configData[domain_name]['shift-ids'])
-                    log.CMD('[shifting uid/gid values within {0} domain by {1}]'.format(domain_name, shift))
+        # shift uid and gid values within containers
+        for container_name in self.__configData.keys():
+            if container_name != "host":
+                if 'shift-ids' in self.__configData[container_name].keys():
+                    # shift uid/gid of files in this container
+                    shift = int(self.__configData[container_name]['shift-ids'])
+                    log.CMD('[shifting uid/gid values within {0} container by {1}]'.format(container_name, shift))
                     if self.__dryRun == False:
-                        shifter = Shifter('tmp/mp_full_ums/domains/' + domain_name)
+                        shifter = Shifter('tmp/mp_full_ums/containers/' + container_name)
                         shifter.shift(shift)
                 else:
-                    log.WARN("no shift-ids value specified for {0} domain".format(domain_name))
+                    log.WARN("no shift-ids value specified for {0} container".format(container_name))
 
     def __umountImages(self):
         # umount and remove mounting points
@@ -216,10 +213,10 @@ class ImageBuilder(object):
         self.__cmd_wrap('rmdir tmp/mp_full_platform')
         self.__cmd_wrap('rmdir tmp/mp_full_ums')
 
-        for domain_name in self.__configData.keys():
-            if domain_name != "host":
-                self.__cmd_wrap('umount tmp/mp_' + domain_name)
-                self.__cmd_wrap('rmdir tmp/mp_' + domain_name)
+        for container_name in self.__configData.keys():
+            if container_name != "host":
+                self.__cmd_wrap('umount tmp/mp_' + container_name)
+                self.__cmd_wrap('rmdir tmp/mp_' + container_name)
 
     def __packImages(self):
         # resize images before tar
index edac979..0972b8f 100644 (file)
@@ -52,10 +52,10 @@ class XMLParser(object):
         tree = ET.parse(self.__configFile)
         img_root = tree.getroot()
 
-        for domain in img_root:
-            self.__configData[domain.attrib["name"]] = {}
-            for param in domain:
-                self.__configData[domain.attrib["name"]][param.tag] = \
+        for container in img_root:
+            self.__configData[container.attrib["name"]] = {}
+            for param in container:
+                self.__configData[container.attrib["name"]][param.tag] = \
                     param.text
 
     def __checkXMLData(self):
@@ -64,38 +64,38 @@ class XMLParser(object):
 
         if not "host" in self.__configData.keys():
             self.__configData_OK = False
-            log.ERROR("No domain \"host\" found in .xml config file")
+            log.ERROR("No container \"host\" found in .xml config file")
             return
 
-        for domain_name in self.__configData.keys():
-            if not os.path.isfile(self.__configData[domain_name]["ks-file"]):
+        for container_name in self.__configData.keys():
+            if not os.path.isfile(self.__configData[container_name]["ks-file"]):
                 data_ERROR = True
-                log.ERROR("ERROR: file not found: " + self.__configData[domain_name]["ks-file"])
+                log.ERROR("ERROR: file not found: " + self.__configData[container_name]["ks-file"])
 
-            if domain_name == "host":
-                if self.__configData[domain_name]["rebuild"] == "no":
-                    if not os.path.isfile("tmp/domains/host/mic-output/data.img"):
-                        log.WARN("file not found: tmp/domains/host/mic-output/data.img")
+            if container_name == "host":
+                if self.__configData[container_name]["rebuild"] == "no":
+                    if not os.path.isfile("tmp/containers/host/mic-output/data.img"):
+                        log.WARN("file not found: tmp/containers/host/mic-output/data.img")
                         log.WARN("- all host image files will be rebuilt")
-                        self.__configData[domain_name]["rebuild"] = "yes"
+                        self.__configData[container_name]["rebuild"] = "yes"
                         data_WARNING = True
-                    if not os.path.isfile("tmp/domains/host/mic-output/platform.img"):
-                        log.WARN("tmp/domains/host/mic-output/platform.img")
+                    if not os.path.isfile("tmp/containers/host/mic-output/platform.img"):
+                        log.WARN("tmp/containers/host/mic-output/platform.img")
                         log.WARN("- all host image files will be rebuilt")
-                        self.__configData[domain_name]["rebuild"] = "yes"
+                        self.__configData[container_name]["rebuild"] = "yes"
                         data_WARNING = True
-                    if not os.path.isfile("tmp/domains/host/mic-output/ums.img"):
-                        log.WARN("file not found: tmp/domains/host/mic-output/ums.img")
+                    if not os.path.isfile("tmp/containers/host/mic-output/ums.img"):
+                        log.WARN("file not found: tmp/containers/host/mic-output/ums.img")
                         log.WARN("- all host image files will be rebuilt")
-                        self.__configData[domain_name]["rebuild"] = "yes"
+                        self.__configData[container_name]["rebuild"] = "yes"
                         data_WARNING = True
 
             else:
-                if self.__configData[domain_name]["add-to-image"] == "yes_without_rebuild":
-                    if not os.path.isfile("tmp/domains/" + domain_name + "/mic-output/image.img"):
-                        log.WARN("file not found: " + "tmp/" + domain_name + "/mic-output/image.img")
+                if self.__configData[container_name]["add-to-image"] == "yes_without_rebuild":
+                    if not os.path.isfile("tmp/containers/" + container_name + "/mic-output/image.img"):
+                        log.WARN("file not found: " + "tmp/" + container_name + "/mic-output/image.img")
                         log.WARN("- image file will be rebuilt")
-                        self.__configData[domain_name]["add-to-image"] = "yes_with_rebuild"
+                        self.__configData[container_name]["add-to-image"] = "yes_with_rebuild"
                         data_WARNING = True
 
         if data_ERROR == True:
@@ -112,10 +112,10 @@ class XMLParser(object):
         log.INFO("/")
         log.INFO("/root/.scripts/")
 
-        for domain_name in self.__configData:
-            if domain_name != "host":
+        for container_name in self.__configData:
+            if container_name != "host":
                 log.INFO("...")
-                log.INFO("/domains/" + domain_name + " -> /opt/usr/domains/" + domain_name + "/")
-                log.INFO("/opt/usr/domains/" + domain_name + "/root/.scripts/")
+                log.INFO("/opt/usr/containers/" + container_name + "/")
+                log.INFO("/opt/usr/containers/" + container_name + "/root/.scripts/")
 
         log.EMPTY_LINES(2)
index 6a92ba7..287595a 100755 (executable)
@@ -82,18 +82,18 @@ def main(argv):
             if userChoice in ['', 'b', 'c']:
                 # create dir structure
                 launch_cmd('mkdir ./{input,tmp,output}')
-                launch_cmd('mkdir -p ./input/domains/{host,private,business}')
+                launch_cmd('mkdir -p ./input/containers/{host,private,business}')
 
-                launch_cmd('mkdir -p ./input/domains/host/{scripts,local-pkgs}')
-                launch_cmd('mkdir -p ./input/domains/private/{scripts,local-pkgs}')
-                launch_cmd('mkdir -p ./input/domains/business/{scripts,local-pkgs}')
+                launch_cmd('mkdir -p ./input/containers/host/{scripts,local-pkgs}')
+                launch_cmd('mkdir -p ./input/containers/private/{scripts,local-pkgs}')
+                launch_cmd('mkdir -p ./input/containers/business/{scripts,local-pkgs}')
 
                 # copy files
                 launch_cmd('install -m 666 /usr/share/diudata/conf.xml ./conf.xml')
 
-                launch_cmd('install -m 666 /usr/share/diudata/host.ks ./input/domains/host/host.ks')
-                launch_cmd('install -m 666 /usr/share/diudata/business.ks ./input/domains/business/business.ks')
-                launch_cmd('install -m 666 /usr/share/diudata/private.ks ./input/domains/private/private.ks')
+                launch_cmd('install -m 666 /usr/share/diudata/host.ks ./input/containers/host/host.ks')
+                launch_cmd('install -m 666 /usr/share/diudata/business.ks ./input/containers/business/business.ks')
+                launch_cmd('install -m 666 /usr/share/diudata/private.ks ./input/containers/private/private.ks')
 
             if userChoice == 'c':
                 sys.exit(0)