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)
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)
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)
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...")
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...")
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)
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)
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)