module Rundeck::Client::Project

Defines methods related to projects.

Public Instance Methods

create_project(content, format = 'json', options = {}) click to toggle source

Create a project

@see rundeck.org/docs/api/index.html#project-creation

Rundeck API documentation for 'POST /api/11/projects' endpoint

@example

Rundeck.create_project('{ "name": "json_project" }', 'json')

@example

Rundeck.create_project('<project><name>xml_project</name></project>', 'xml')

@param [String] content The job definition(s) as yaml or xml @param [String] format The project creation format. ‘json|xml’,

defaults to 'json'

@!macro options @return [Rundeck::ObjectifiedHash] @!macro exceptions

# File lib/rundeck/client/project.rb, line 37
def create_project(content, format = 'json', options = {})
  options[:headers] = {} if options[:headers].nil?
  options[:headers] = if format == 'json'
                        options[:headers].merge!(
                          'Content-Type' => 'application/json')
                      elsif format == 'xml'
                        options[:headers].merge!(
                          'Content-Type' => 'application/xml')
                      else
                        fail Error::InvalidAttributes,
                             'format must be json or xml'
                      end
  options[:body] = content

  objectify post('/projects', options)['project']
end
delete_project(name, options = {}) click to toggle source

Delete a project

@see rundeck.org/docs/api/index.html#project-deletion

Rundeck API documentation for 'DELETE /api/11/project/[NAME]' endpoint

@example

Rundeck.delete_project('my_project')

@param [String] name The project name @!macro options @return nil @!macro exceptions

# File lib/rundeck/client/project.rb, line 82
def delete_project(name, options = {})
  objectify delete("/project/#{name}", options)
end
project(name, options = {}) click to toggle source

Get a project by name

@see rundeck.org/docs/api/index.html#getting-project-info

Rundeck API documentation for 'GET /api/1/project/[NAME]' endpoint

@example

Rundeck.project('anvils')

@param [String] name The project name @!macro options @return [Rundeck::ObjectifiedHash] @!macro exceptions

# File lib/rundeck/client/project.rb, line 66
def project(name, options = {})
  objectify get("/project/#{name}", options)['project']
end
projects(options = {}) click to toggle source

Get all projects

@see rundeck.org/docs/api/index.html#listing-projects

Rundeck API documentation for 'GET /api/1/projects' endpoint

@example

Rundeck.projects

@!macro options @return [Rundeck::ObjectifiedHash] @!macro exceptions

# File lib/rundeck/client/project.rb, line 16
def projects(options = {})
  objectify get('/projects', options)['projects']
end