Exemplo n.º 1
0
 def _execute(self, command):
     if self.verboseLevel <= Util.VERBOSE_LEVEL_NORMAL:
         devNull = open(os.path.devnull, 'w')
         ret = Util.execute(command, stdout=devNull, stderr=devNull)
         devNull.close()
     else:
         ret = Util.execute(command)
     return ret
Exemplo n.º 2
0
    def _configure(self):
        Util.printStep('Configuring OpenLDAP server')

        Util.printStep('Updating sysconfig')
        shutil.copyfile(self._sysconfigLdapTemplate, self._sysconfigLdap)
        Util.appendOrReplaceInFile(self._sysconfigLdap, 'SLAPD_LDAP=', 'SLAPD_LDAP=yes')

        Util.printStep('Setting root account access')
        Util.appendOrReplaceMultilineBlockInFile(self._openLdapConfig, 
                                                 self._accessValue, 
                                                 start='olcAccess: {0}to *', 
                                                 until='olcAddContentAcl:')

        Util.printStep('(Re-)starting slapd')
        cmd = 'service %s restart' % self._serviceName
        self._executeExitOnError(cmd)

        Util.printStep('Generating test certificate and moving into place')
        self._executeExitOnError(self._testCertCmd)

        self._executeExitOnError('mkdir -p /etc/openldap/cacerts')
        self._executeExitOnError('mv -f cacrt.jks /etc/openldap/cacerts/cacrt.jks')
        self._executeExitOnError('mv -f cacrt.pem /etc/openldap/cacerts/cacrt.pem')
        self._executeExitOnError('mv -f serverkey.pem /etc/openldap/serverkey.pem')
        self._executeExitOnError('mv -f servercrt.pem /etc/openldap/servercrt.pem')

        os.chmod('/etc/openldap/serverkey.pem', stat.S_IRUSR | stat.S_IWUSR)
        self._executeExitOnError('chown ldap:ldap /etc/openldap/serverkey.pem')

        Util.printStep('Updating server config. for generated certs')
        cmd = "ldapmodify -Y EXTERNAL -H ldapi:/// -f %s" % self._certConfigLdif
        Util.execute(cmd.split(' '))

        Util.printStep('Updating client config. for generated certs')
        Util.appendOrReplaceInFile(self._ldapClientConfig,
                                   'TLS_CACERT', 
                                   'TLS_CACERT /etc/openldap/cacerts/cacrt.pem')

        Util.printStep('Creating o=cloud database')
        Util.filePutContent(self._completeDatabaseTemplate,
                            Util.fileGetContent(self._databaseTemplate) % self.__dict__)

        cmd = "ldapadd -Y EXTERNAL -H ldapi:/// -f %s" % self._completeDatabaseTemplate
        Util.execute(cmd.split(' '))

        Util.printStep('Adding cloud database entries')
        cmd = "ldapadd -x -H ldaps://%s -D %s -w %s -f %s" % (self._nodename,
                                                              self._openLdapAdminDn, 
                                                              self.openldapPassword, 
                                                              self._cloudDatabaseSkeleton)
        self._executeExitOnError(cmd)
Exemplo n.º 3
0
 def _executeExitOnError(self, cmd_str):
     rc, output = Util.execute(cmd_str.split(' '),
                               withOutput=True,
                               verboseLevel=self.verboseLevel,
                               verboseThreshold=Util.VERBOSE_LEVEL_DETAILED)
     if rc != 0:
         printError('Failed running: %s\n%s' % (cmd_str, output))
Exemplo n.º 4
0
 def validate(self):
     jarLocation = self._findJar()
     javaMainArgs = ' ' + self.manifestFile
     cmd = os.path.join('java -cp %s %s' % (jarLocation, 'eu.stratuslab.marketplace.metadata.CheckMetadata'))
     cmd += javaMainArgs
     self._printCalling(cmd)
     return Util.execute(cmd.split(' '))
Exemplo n.º 5
0
    def testExecuteWithOutput(self):
        output = Util.execute('ls -l'.split(), withOutput=True)

        self.assertEqual(type(output), tuple)
        self.assertEqual(len(output), 2)
        self.assertTrue(isinstance(output[1], basestring))
        assert len(output[1]) >= 1
Exemplo n.º 6
0
 def _sign(self):
     jarLocation = self._findJar()
     self.printDetail('Signature jar file: %s' % jarLocation)
     javaMainArgs = ' ' + self.manifestFile + ' ' + self.tempManifestFile + \
                    ' ' + self.p12Certificate + ' ' + self.p12Password + \
                    ' ' + self.email
     cmd = os.path.join('java -cp %s %s' % (jarLocation, 'eu.stratuslab.marketplace.metadata.SignMetadata'))
     cmd += javaMainArgs
     self._printCalling(cmd)
     return Util.execute(cmd.split(' '),withOutput=True)
Exemplo n.º 7
0
    def _installPackages(self):
        Util.printStep('Setting up Couchbase yum repository')
        cmd = 'curl --output %s %s' % (self._repofile, self._repourl)
        self._executeExitOnError(cmd)

        Util.printStep('Removing Couchbase python client')
        try:
            cmd = 'pip uninstall -y couchbase'
            rc, output = Util.execute(cmd.split(' '),
                                      withOutput=True,
                                      verboseLevel=self.verboseLevel,
                                      verboseThreshold=Util.VERBOSE_LEVEL_DETAILED)
            if rc != 0:
                Util.printInfo('Couchbase python client NOT removed')
            else:
                Util.printInfo('Couchbase python client removed')
        except:
            Util.printInfo("Couchbase python client NOT removed")

        Util.printStep('Removing Couchbase C client')
        cmd = 'yum erase -y %s' % ' '.join(self._pkgs)
        self._executeExitOnError(cmd)

        Util.printStep('Installing Couchbase C client')
        cmd = 'yum install -y %s' % ' '.join(self._pkgs)
        self._executeExitOnError(cmd)

        Util.printStep('Installing Couchbase python client dependencies')
        cmd = 'yum install -y %s' % ' '.join(self._deps)
        self._executeExitOnError(cmd)

        Util.printStep('Upgrading pip for Couchbase python client')
        cmd = 'pip install --upgrade pip'
        self._executeExitOnError(cmd)

        Util.printStep('Installing Couchbase python client')
        cmd = 'pip install couchbase'
        self._executeExitOnError(cmd)
Exemplo n.º 8
0
    def _installPackages(self):
        Util.printStep("Setting up Couchbase yum repository")
        cmd = "curl --output %s %s" % (self._repofile, self._repourl)
        self._executeExitOnError(cmd)

        Util.printStep("Removing Couchbase python client")
        try:
            cmd = "pip uninstall -y couchbase"
            rc, output = Util.execute(
                cmd.split(" "),
                withOutput=True,
                verboseLevel=self.verboseLevel,
                verboseThreshold=Util.VERBOSE_LEVEL_DETAILED,
            )
            if rc != 0:
                Util.printInfo("Couchbase python client NOT removed")
            else:
                Util.printInfo("Couchbase python client removed")
        except:
            Util.printInfo("Couchbase python client NOT removed")

        Util.printStep("Removing Couchbase C client")
        cmd = "yum erase -y %s" % " ".join(self._pkgs)
        self._executeExitOnError(cmd)

        Util.printStep("Installing Couchbase C client")
        cmd = "yum install -y %s" % " ".join(self._pkgs)
        self._executeExitOnError(cmd)

        Util.printStep("Installing Couchbase python client dependencies")
        cmd = "yum install -y %s" % " ".join(self._deps)
        self._executeExitOnError(cmd)

        Util.printStep("Installing Couchbase python client")
        cmd = "pip install couchbase"
        self._executeExitOnError(cmd)
Exemplo n.º 9
0
 def _localCleanUp(self):
     Util.execute(['rm', '-rf', self.manifestLocalFileName])
Exemplo n.º 10
0
 def _restartService(self):
     Util.printStep('Adding %s to chkconfig and restarting' % self._serviceName)
     cmd = 'chkconfig --add %s' % self._serviceName
     Util.execute(cmd.split(' '))
     cmd = 'service %s restart' % self._serviceName
     Util.execute(cmd.split(' '))
Exemplo n.º 11
0
    def _getVnetInfoXml(vnet_name):
        rc, output = Util.execute(["onevnet", "show", "--xml", vnet_name], withOutput=True)
        if rc != 0:
            raise ExecutionException("Couldn't get network info for network '%s'." % vnet_name)

        return output
Exemplo n.º 12
0
 def _restartService(self, service):
     Util.printStep("Adding registration service to chkconfig and restarting")
     cmd = 'chkconfig --add %s' % service
     Util.execute(cmd.split(' '))
     cmd = 'service %s restart' % service
     Util.execute(cmd.split(' '))
Exemplo n.º 13
0
 def _localCleanUp(self):
     Util.execute(["rm", "-rf", self.manifestLocalFileName])