Exemplo n.º 1
0
    def get_config(self, enable_api=True):

        #computers = project.job_set.buildcomputer_set.all()
        assignments = self.project.jobassignment_set.all()
#        computers = assignments.computers_set.all()

        db_info = get_database_info()

        #FIXME
        from cthulhubot.bbot import HttpApi

        builders = [
                {
                      'name': assignment.get_domain_object().get_identifier(),
                      'slavename': ProjectClient.objects.get(project=self.project, computer=assignment.computer).get_name(),
                      'builddir': assignment.get_domain_object().get_identifier(),
                      'factory': assignment.get_domain_object().get_factory()
                }
                for assignment in assignments
            ]

        schedulers = []
        if enable_api:
            schedulers.append(HttpApi(port=int(self.api_port), name="api", builders=[b['name'] for b in builders]))


        config = {
            'slavePortnum' : int(self.buildmaster_port),
            'slaves' : [BuildSlave(client.get_name(), client.password) for client in ProjectClient.objects.filter(project=self.project)],
            'change_source' : PBChangeSource(),
            'builders' : builders,
            'schedulers' : self.get_schedulers(assignments)+schedulers,
            'status' : [
                MongoDb(database = get_database_name(),
                        master_id = self.pk,
                        host = db_info['host'],
                        port = db_info['port'],
                        username = db_info['username'],
                        password = db_info['password'],
                ),
            ],
            'projectName' : self.project.name,
            'projectURL' : self.project.tracker_uri,
            'buildbotURL' : self.get_webstatus_uri(),

            'multiMaster' : True,
            'db_poll_interval' : getattr(settings, "BUILDBOT_DB_POLL_INTERVAL", 60),
            'db_url' : getattr(settings, "BUILDBOT_DB_URL", BUILDBOT_DEFAULT_DB),
        }
        return config
Exemplo n.º 2
0
 def _get_command_skeleton(self):
     
     command = [
             "python", "setup.py", "save_repository_information_git",
             "--mongodb-host=%s" % getattr(settings, "MONGODB_HOST", "localhost"),
             "--mongodb-port=%s" % getattr(settings, "MONGODB_PORT", 27017),
             "--mongodb-database=%s" % get_database_name(),
             "--mongodb-collection=repository",
             
     ]
     if getattr(settings, "MONGODB_USERNAME", None):
             command.append("--mongodb-username=%s" % getattr(settings, "MONGODB_USERNAME", None))
     if getattr(settings, "MONGODB_PASSWORD", None):
             command.append("--mongodb-password=%s" % getattr(settings, "MONGODB_PASSWORD", None))
     return command