heat_template_version: pike description: > Openstack Mistral API service configured with Puppet parameters: ServiceData: default: {} description: Dictionary packing service data type: json ServiceNetMap: default: {} description: Mapping of service_name -> network name. Typically set via parameter_defaults in the resource registry. This mapping overrides those in ServiceNetMapDefaults. type: json DefaultPasswords: default: {} type: json RoleName: default: '' description: Role name on which the service is applied type: string RoleParameters: default: {} description: Parameters specific to the role type: json EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json MistralWorkers: default: 1 description: The number of workers for the mistral-api. type: number MistralApiPolicies: description: | A hash of policies to configure for Mistral API. e.g. { mistral-context_is_admin: { key: context_is_admin, value: 'role:admin' } } default: {} type: json EnableInternalTLS: type: boolean default: false conditions: mistral_workers_zero: {equals : [{get_param: MistralWorkers}, 0]} resources: ApacheServiceBase: type: ./apache.yaml properties: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} DefaultPasswords: {get_param: DefaultPasswords} EndpointMap: {get_param: EndpointMap} EnableInternalTLS: {get_param: EnableInternalTLS} MistralBase: type: ./mistral-base.yaml properties: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} DefaultPasswords: {get_param: DefaultPasswords} EndpointMap: {get_param: EndpointMap} RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} outputs: role_data: description: Role data for the Mistral API role. value: service_name: mistral_api config_settings: map_merge: - get_attr: [MistralBase, role_data, config_settings] - mistral::api::api_workers: {get_param: MistralWorkers} mistral::api::bind_host: {get_param: [ServiceNetMap, MistralApiNetwork]} mistral::wsgi::apache::ssl: {get_param: EnableInternalTLS} mistral::policy::policies: {get_param: MistralApiPolicies} tripleo.mistral_api.firewall_rules: '133 mistral': dport: - 8989 - 13989 mistral::api::service_name: 'httpd' mistral::wsgi::apache::bind_host: {get_param: [ServiceNetMap, MistralApiNetwork]} mistral::wsgi::apache::servername: str_replace: template: "%{hiera('fqdn_$NETWORK')}" params: $NETWORK: {get_param: [ServiceNetMap, MistralApiNetwork]} - if: - mistral_workers_zero - {} - mistral::wsgi::apache::workers: {get_param: MistralWorkers} service_config_settings: get_attr: [MistralBase, role_data, service_config_settings] step_config: | include ::tripleo::profile::base::mistral::api upgrade_tasks: - name: Check if mistral api is deployed command: systemctl is-enabled openstack-mistral-api tags: common ignore_errors: True register: mistral_api_enabled - name: "PreUpgrade step0,validation: Check if openstack-mistral-api is running" shell: > /usr/bin/systemctl show 'openstack-mistral-api' --property ActiveState | grep '\bactive\b' when: mistral_api_enabled.rc == 0 tags: step0,validation - name: check for mistral_api running under apache (post upgrade) tags: step1 shell: "httpd -t -D DUMP_VHOSTS | grep -q mistral_api_wsgi" register: mistral_api_apache ignore_errors: true - name: Stop mistral_api service (running under httpd) tags: step1 service: name=httpd state=stopped when: mistral_api_apache.rc == 0 - name: Stop and disable mistral_api service (pre-upgrade not under httpd) tags: step1 when: mistral_api_enabled.rc == 0 service: name=openstack-mistral-api state=stopped enabled=no