Exemple #1
0
    def create_view(self):
        """Creates new empty view"""

        try:
            self.server.create_view(self.view_args.name,
                                    jenkins.EMPTY_VIEW_CONFIG_XML)
            logger.info("Created new view: {}".format(self.view_args.name))
        except Exception as e:
            raise errors.JcliException(e)
Exemple #2
0
    def copy_job(self):
        """Copies job"""

        try:
            self.server.copy_job(self.job_args.source_job_name,
                                 self.job_args.dest_job_name)
            logger.info("Done copying: {}. The new job is called: {}".format(
                self.job_args.source_job_name, self.job_args.dest_job_name))
        except Exception as e:
            raise errors.JcliException(e)
Exemple #3
0
    def enable_job(self):
        """Enables job"""

        try:
            self.server.enable_job(self.job_args.name)

        except Exception:
            raise errors.JcliException("No such job: {}".format(
                self.job_args.name))

        logger.info("Enabled job: %s", self.job_args.name)
Exemple #4
0
    def delete_node(self):
        """Removes node from the server"""

        if self.name:
            try:
                self.server.delete_node(self.node_args.name)
            except Exception:
                raise errors.JcliException("No such node: {}".format(
                    self.node_args.name))
            logger.info("Removed node: {}".format(self.node_args.name))
        else:
            logger.info("No name provided. Exiting...")
Exemple #5
0
    def delete_job(self):
        """Removes job from the server"""

        if self.job_args.name:
            try:
                for job in self.job_args.name:
                    self.server.delete_job(job)
                    logger.info("Removed job: {}".format(job))
            except Exception as e:
                raise errors.JcliException(e)

        else:
            logger.info("No name provided. Exiting...")
Exemple #6
0
    def build_job(self):
        """Starts job build"""

        try:
            if self.job_args.parameters:
                self.server.build_job(self.job_args.name,
                                      json.loads(self.job_args.parameters))
                logger.info("Starting job build with parameters: {}".format(
                    self.job_args.name))
            else:
                self.server.build_job(self.job_args.name)
                logger.info("Starting job build without params: {}".format(
                    self.job_args.name))
        except Exception as e:
            raise errors.JcliException(e)
Exemple #7
0
    def list_plugins(self):
        """Print list of plugins"""

        try:
            plugins = self.server.get_plugins()

            if self.plugin_args.name:
                for name, info in plugins.items():
                    if self.plugin_args.name in name[0]:
                        logger.info("Name: {}".format(info['longName']))
                        logger.info("Enabled?: {}".format(info['enabled']))
                        logger.info("Has update?: {}".format(
                            info['hasUpdate']))
                        logger.info("URL: {}".format(info['url']))
                        logger.info("Version: {}\n".format(info['version']))
            else:
                for name, info in plugins.items():
                    logger.info(name[0])

        except Exception as e:
            raise errors.JcliException(e)
Exemple #8
0
    def last_build(self):
        """Output information on last build"""

        try:
            last_build_number = self.server.get_job_info(
                self.job_args.name)['lastCompletedBuild']['number']
            build_info = self.server.get_job_info(self.job_args.name,
                                                  last_build_number)
            logger.info(
                "=================== Last build summary ===================\n")
            logger.info("Build Number: {}".format(last_build_number))

            # Log SCMs
            logger.info("\nSCMs:\n")
            for scm in build_info['scm']['configuredSCMs']:
                for info in scm['userRemoteConfigs']:
                    logger.info("  Url: {}".format(info['url']))
                    logger.info("  Refspec: {}\n  -----".format(
                        info['refspec']))

            # Log Parameters
            logger.info("\n\nParameters:\n")
            for param in build_info['property'][6]['parameterDefinitions']:
                logger.info("  Parameter: {}\n  Value: {}\n  -----".format(
                    param['defaultParameterValue']['name'],
                    param['defaultParameterValue']['value']))

            # Log general build info
            logger.info("\n\nBuild Duration: {}".format(
                build_info['lastBuild']['duration']))
            logger.info("Built on slave: {}".format(
                build_info['lastBuild']['builtOn']))
            logger.info("URL: {}".format(build_info['lastBuild']['url']))
            logger.info("\nResult: {}".format(
                build_info['lastBuild']['result']))

        except Exception as e:
            raise errors.JcliException(e)