Пример #1
0
    def _saveFirewallRules(self, filename):
        # back-up
        self.executeCmd(('cp -fp %s %s.LAST'%((filename,)*2)).split(' '))

        _,output = self.executeCmdWithOutput(['iptables-save'])
        Util.printDetail('Saving firewall rules to %s.' % filename)
        filePutContent(filename, output)
        os.chmod(filename, 0600)
Пример #2
0
    def _setupSslProxyCert(self):
        if self.sunstoneSslProxyCert:
            self.lighttpd_cert = self.sunstoneSslProxyCert
        else:
            dummy_cert = """
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDQCc1NmyEZgk6u
NsZo2o8gSEGG3uANugp/TPX5BRQ/sxzPaU7tMZ9Ige567icPUWQjQG8lZiGbIL+q
m8zt3ezBNwS4LH+7OfzjISeJ8y2lo/Xdk9UUlVcBnibPYJdzh25pBXNSHBp9FAzu
GFvv2XKpY1RzGLGuE0kr4EC6Sou/Jch/NnryCEQUt5OCrzqd+qGEJxDuuTnx0uqt
8XoTULXnZuSz+v1iz31QRRomofk7POQFBLkcU1TCAfX7q1qM6/sYDxppyZHUr8PA
PAEn6M+j33HnotzyR3AkcQV+HL1XO3sC8ZM5Q7WG5md3mflgJq364wSWFPhnyt9v
y53gxtHbAgMBAAECggEAAYyRIsrM7Eu0Gkf+Ijm+ZxcipcZzFKcV/OytyDTpea/z
vvehxtJfxUJybCfp0otgm4KXUUf5aBZOVw7h78N/R9EJD/YE3XgJEgflK3nMFTer
VQMMyyJxi2mKEHE/r3SKte18dlgPOm8zyXIU/Sw5VlmO/2xnpkwud00sLjbv43R5
IeMQlptho5g+Nqo6VGODLC7xp6GXI2gBDMF89R5tgtbT9RvzpkyHyfBuW5M18k+P
PqCaY7rB3a+WCK7PJrd6pawo3RMzzTmglIl0TJCIcT25aRK1DC97utN2YdwSIuNo
RehwxsdC1KHF+Gj21BaBXRyj9IdVH26D1T5bp/6ggQKBgQDnOOF2cbrfjNeC+yyR
ooB/7xyuPmUW0XPyrKqp5LOKaOnHEhe7CrU/o3ZDdZ9NFzvsM+gFNq7E0aF07Xjq
xmkPjUZuub4SGABW9jr7DwW9FqZGoTtbDdL7TBP+ogEzJshTFH6bXNidO0SxfTUp
V7k1jpvPJdQZpXoXKdEHPow9YwKBgQDmVOrNERrnKo9g1wQ8l+NHgySzLIcks7TD
Jbc51LT4eAQKx7SyeZTy79cTimrK0WCtOhwrVEEaMsNGKQiOc0ulsS4o8Q88XYJp
ji6/ys+os/ShagPFnu40rtHmsNp+JSX04XwNQR61uocqV0fVxq3CEP9OAWn4lnCk
ulZxujYfKQKBgQCGK7aA8Xu7rtF7mt6A36frFMgyv9gPBplejx01GpWoUjqdnn0Q
tyT3eZXtjTpUFJBb/r67D8EYSoCDBi2tJlbehF8Db1rAyxafX6BYAJ6W26a+w15a
9smfssTDdCR4FyAVPYY+BwFXM4Yn6/zGMbYyQr9c05mhDCmteUFnD792+wKBgQDD
kORQO67JCkT053vMavZqOLqHe04/5mmbrEFXU/hYY6ai9I/DXiIO53+JMuSb0o0w
Z/+U9pPUR7evsZV3RgO76qWT06GpEohxUWz2IaCR0EHsb5RGTjxY9Pp50j2iD66b
rnxi0KDfkkHDvJnctDXCaiYruF2e2TVJWIGfTIk5iQKBgQDJkPpctI3IhltSIOVL
1wpv91/4m2JO59lfesTTCsMMW/lU4ayPJrELYdfrIog3hXuWPFF87VQyO5veiJwy
ne55hCx/OA5aubHO7w5fXaoO65BbusVLoK0W9NlIzuNXpK+v69b/eb2xofgkbgy9
oFBWR9WnQVZpbC4FR6QsKNY0Qw==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICvjCCAaYCCQDLhOmFHE0zYDANBgkqhkiG9w0BAQUFADAhMR8wHQYDVQQDExZv
bmV2bS05Ni5zdHJhdHVzbGFiLmV1MB4XDTEyMDQxMDIyMTAxMFoXDTIyMDQwODIy
MTAxMFowITEfMB0GA1UEAxMWb25ldm0tOTYuc3RyYXR1c2xhYi5ldTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBANAJzU2bIRmCTq42xmjajyBIQYbe4A26
Cn9M9fkFFD+zHM9pTu0xn0iB7nruJw9RZCNAbyVmIZsgv6qbzO3d7ME3BLgsf7s5
/OMhJ4nzLaWj9d2T1RSVVwGeJs9gl3OHbmkFc1IcGn0UDO4YW+/ZcqljVHMYsa4T
SSvgQLpKi78lyH82evIIRBS3k4KvOp36oYQnEO65OfHS6q3xehNQtedm5LP6/WLP
fVBFGiah+Ts85AUEuRxTVMIB9furWozr+xgPGmnJkdSvw8A8ASfoz6Pfceei3PJH
cCRxBX4cvVc7ewLxkzlDtYbmZ3eZ+WAmrfrjBJYU+GfK32/LneDG0dsCAwEAATAN
BgkqhkiG9w0BAQUFAAOCAQEAwTIyerWZXfcDTaNwqxy59JzHm+v0UqZqKxQ2wYh2
PHGx19qA41W7trm7BlxaSwaq7iskcwgfhmmd2kXur9rs58rALDbAv7MRCQ7xfjb2
oAPTQTar2UVC4yxzeEYU7NGdqkPUC0/HeMstVdYX8W0B9UyuokjU0FAibPzFLaSu
eEIH1OTZu9Il2Co3X5ClDgc3Q/LjVQFNqhpJyUIu00tKB2nfDXrbco8L/7Q4NIJu
gxkHOHYxOMO7tclnJR3HX+8HogcWHSqPTMgJYX+ihM0E5X5lm9cWBUeAseNPasy6
3AxkYyyBEKMOcZTehs7kwvFWajUBFkvPgI3a6GsfCX5VpA==
-----END CERTIFICATE-----
"""
            filePutContent(self.lighttpd_cert, dummy_cert, neverShowData=True)
            os.chmod(self.lighttpd_cert, 0600)

        appendOrReplaceInFile(self.lighttpd_cfg, 'ssl.pemfile', 
                                   'ssl.pemfile = "%s"' % self.lighttpd_cert)
Пример #3
0
    def _enableSslProxy(self):
        appendOrReplaceInFile(self.lighttpd_cfg, 'ssl.engine',
                                   'ssl.engine = "enable"')

        appendOrReplaceInFile(self.lighttpd_cfg, 'server.port', 
                                   'server.port = %s' % self.sunstoneSslProxyPort)

        sunstone_proxy_cfg = '/etc/lighttpd/conf.d/sunstone-proxy.conf'
        conf = """
    server.modules += ("mod_alias")
    server.modules += ("mod_proxy")
    server.modules += ("mod_compress")
    proxy.server = ("" => ( "" => ( "host" => "127.0.0.1", "port" => %s ) ) )
    """ % self.sunstonePort
        filePutContent(sunstone_proxy_cfg, conf)
Пример #4
0
    def persistentDiskStorageDownloadTest(self):
        """Check that an image can be downloaded correctly"""
        pdiskDevice = "/dev/hdc"  # !!!! Configured for the default image (ttylinux)
        pdiskMountPoint = "/mnt/pdisk-test"
        testFile = "%s/pdisk.txt"
        testString = "pdiskTest"
        downloadedCompressedDisk = "/var/tmp/pdisk-img.gz"
        localMountPoint = "/mnt/pdisk-check"
        localTestFile = "/tmp/pdiskGzip.tmp"

        configHolder = Testor.configHolder.copy()
        configHolder.pdiskUsername = Testor.configHolder.testUsername
        configHolder.pdiskPassword = Testor.configHolder.testPassword
        pdisk = VolumeManagerFactory.create(configHolder)

        Util.printAction("Creating a new persistent disk")
        diskUUID = pdisk.createVolume(1, "test %s" % datetime.datetime.today(), False)

        Util.printAction("Checking persistent disk exists")
        if not pdisk.volumeExists(diskUUID):
            self.fail("An error occurred while creating a persistent disk")

        Util.printAction("Starting machine with persistent disk")
        runner = self._startVmWithPDiskAndWaitUntilUp(diskUUID)

        self._formatDisk(runner, pdiskDevice)
        self._mountDisk(runner, pdiskDevice, pdiskMountPoint)
        self._writeToFile(runner, testFile % pdiskMountPoint, testString)
        self._umountPDiskAndStopVm(runner, pdiskDevice)

        try:
            Util.printAction("Downloading volume...")
            # compressed disk comes in HTTP response - don't print it from HTTP client!
            verb_save = pdisk.client.verboseLevel
            pdisk.client.verboseLevel = 0
            pdisk.downloadVolume(diskUUID, downloadedCompressedDisk)
            pdisk.client.verboseLevel = verb_save
            volume = self._gunzip(downloadedCompressedDisk)
        finally:
            try:
                remove(downloadedCompressedDisk)
            except:
                pass

        try:
            if not self._localMount(volume, localMountPoint, ["loop"]):
                self.fail("Error mounting downloaded image, corrupted?")

            filePutContent(localTestFile, testString)

            fileEquals = self._compareLocalFiles(localTestFile, testFile % localMountPoint)

            if not fileEquals:
                self.fail("Downloaded volume is corrupted")

            self._localUmount(localMountPoint)
        finally:
            Util.printAction("Post test clean-up...")
            try:
                remove(volume)
            except:
                pass
            try:
                rmdir(localMountPoint)
            except:
                pass
Пример #5
0
 def _writeConfigFromTemplate(self, config, tpl):
     filePutContent(config,
                    fileGetContent(tpl) % self.__dict__)
Пример #6
0
 def _writeConfigFromTemplate(self):
     filePutContent(PolicyValidator.CONFIG,
                     fileGetContent(PolicyValidator.TEMPLATE_CFG) % self.__dict__)