Puppet Class: mistral::api

Inherits:
mistral::params
Defined in:
manifests/api.pp

Overview

Class: mistral::api

Installs & configure the Mistral API service

Parameters

allow_action_execution_deletion

(Optional) Enables the ability to delete action_execution which has no relationship with workflows. (boolean value). Defaults to $::os_service_default.

api_workers

(Optional) Number of workers for Mistral API service default is equal to the number of CPUs available if that can be determined, else a default worker count of 1 is returned. Defaults to $::os_workers

bind_host

(Optional) Address to bind the server. Useful when selecting a particular network interface. Defaults to $::os_service_default.

bind_port

(Optional) The port on which the server will listen. Defaults to $::os_service_default.

enabled

(optional) Should the service be enabled. Defaults to ‘true’.

manage_service

(optional) Whether the service should be managed by Puppet. Defaults to ‘true’.

package_ensure

(Optional) Ensure state for package. Defaults to present

service_name

(optional) Name of the service that will be providing the server functionality of mistral-api. If the value is ‘httpd’, this means mistral-api will be a web service, and you must use another class to configure that web service. For example, use class { ‘mistral::wsgi::apache’…} to make mistral-api be a web app using apache mod_wsgi. Defaults to ‘$::mistral::params::api_service_name’

enable_proxy_headers_parsing

(Optional) Enable paste middleware to handle SSL requests through HTTPProxyToWSGI middleware. Defaults to $::os_service_default.

max_request_body_size

(Optional) Set max request body size Defaults to $::os_service_default.

auth_strategy

(optional) Type of authentication to be used. Defaults to ‘keystone’

Parameters:

  • allow_action_execution_deletion (Any) (defaults to: $::os_service_default)
  • api_workers (Any) (defaults to: $::os_workers)
  • bind_host (Any) (defaults to: $::os_service_default)
  • bind_port (Any) (defaults to: $::os_service_default)
  • enabled (Any) (defaults to: true)
  • manage_service (Any) (defaults to: true)
  • package_ensure (Any) (defaults to: present)
  • service_name (Any) (defaults to: $::mistral::params::api_service_name)
  • enable_proxy_headers_parsing (Any) (defaults to: $::os_service_default)
  • max_request_body_size (Any) (defaults to: $::os_service_default)
  • auth_strategy (Any) (defaults to: 'keystone')


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'manifests/api.pp', line 61

class mistral::api (
  $allow_action_execution_deletion = $::os_service_default,
  $api_workers                     = $::os_workers,
  $bind_host                       = $::os_service_default,
  $bind_port                       = $::os_service_default,
  $enabled                         = true,
  $manage_service                  = true,
  $package_ensure                  = present,
  $service_name                    = $::mistral::params::api_service_name,
  $enable_proxy_headers_parsing    = $::os_service_default,
  $max_request_body_size           = $::os_service_default,
  $auth_strategy                   = 'keystone',
) inherits mistral::params {

  include mistral::deps
  include mistral::params
  include mistral::policy

  if $auth_strategy == 'keystone' {
    include mistral::keystone::authtoken
  }

  package { 'mistral-api':
    ensure => $package_ensure,
    name   => $::mistral::params::api_package_name,
    tag    => ['openstack', 'mistral-package'],
  }

  if $manage_service {
    if $enabled {
      $service_ensure = 'running'
    } else {
      $service_ensure = 'stopped'
    }

    if $service_name == $::mistral::params::api_service_name {
      service { 'mistral-api':
        ensure     => $service_ensure,
        name       => $::mistral::params::api_service_name,
        enable     => $enabled,
        hasstatus  => true,
        hasrestart => true,
        tag        => 'mistral-service',
      }
    } elsif $service_name == 'httpd' {
      service { 'mistral-api':
        ensure => 'stopped',
        name   => $::mistral::params::api_service_name,
        enable => false,
        tag    => 'mistral-service',
      }
      Service <| title == 'httpd' |> { tag +> 'mistral-service' }

      # we need to make sure mistral-api s stopped before trying to start apache
      Service['mistral-api'] -> Service[$service_name]
    } else {
      fail("Invalid service_name. Either mistral/openstack-mistral-api for running \
 as a standalone service, or httpd for being run by a httpd server")
    }
  }

  mistral_config {
    'api/api_workers'                      : value => $api_workers;
    'api/host'                             : value => $bind_host;
    'api/port'                             : value => $bind_port;
    'api/allow_action_execution_deletion'  : value => $allow_action_execution_deletion;
  }

  oslo::middleware { 'mistral_config':
    enable_proxy_headers_parsing => $enable_proxy_headers_parsing,
    max_request_body_size        => $max_request_body_size,
  }

}