953 lines
76 KiB
Plaintext
953 lines
76 KiB
Plaintext
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#">
|
|
<meta charset='utf-8'>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>openstack-resource-agents/ocf/heat-engine at master · madkiss/openstack-resource-agents · GitHub</title>
|
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
|
|
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
|
|
<link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png">
|
|
<meta name="hostname" content="github-fe130-cp1-prd.iad.github.net">
|
|
<meta name="ruby" content="ruby 1.9.3p194-tcs-github-tcmalloc (e1c0c3f392) [x86_64-linux]">
|
|
<link rel="assets" href="https://github.global.ssl.fastly.net/">
|
|
<link rel="conduit-xhr" href="https://ghconduit.com:25035/">
|
|
<link rel="xhr-socket" href="/_sockets" />
|
|
|
|
|
|
|
|
<meta name="msapplication-TileImage" content="/windows-tile.png" />
|
|
<meta name="msapplication-TileColor" content="#ffffff" />
|
|
<meta name="selected-link" value="repo_source" data-pjax-transient />
|
|
<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="5A28B1F7:643D:E259626:52C18631" name="octolytics-dimension-request_id" />
|
|
|
|
|
|
|
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
|
|
<meta content="authenticity_token" name="csrf-param" />
|
|
<meta content="sbg7VbN/siqAfKCdQsV50CsXL1IrMFx3tynCWnubLN8=" name="csrf-token" />
|
|
|
|
<link href="https://github.global.ssl.fastly.net/assets/github-3944f96c1c19f752fe766b332fb7716555c8296e.css" media="all" rel="stylesheet" type="text/css" />
|
|
<link href="https://github.global.ssl.fastly.net/assets/github2-b64d0ad5fa62a30a166145ae08b8c0a6d2f7dea7.css" media="all" rel="stylesheet" type="text/css" />
|
|
|
|
|
|
|
|
|
|
<script src="https://github.global.ssl.fastly.net/assets/frameworks-29a3fb0547e33bd8d4530bbad9bae3ef00d83293.js" type="text/javascript"></script>
|
|
<script src="https://github.global.ssl.fastly.net/assets/github-3fbe2841590c916eeba07af3fc626dd593d2f5ba.js" type="text/javascript"></script>
|
|
|
|
<meta http-equiv="x-pjax-version" content="8983adfc0294e4e53e92b27093d9e927">
|
|
|
|
<link data-pjax-transient rel='permalink' href='/madkiss/openstack-resource-agents/blob/64e633d8802b960d7d30d85b8b6793fb8d851363/ocf/heat-engine'>
|
|
<meta property="og:title" content="openstack-resource-agents"/>
|
|
<meta property="og:type" content="githubog:gitrepository"/>
|
|
<meta property="og:url" content="https://github.com/madkiss/openstack-resource-agents"/>
|
|
<meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/>
|
|
<meta property="og:site_name" content="GitHub"/>
|
|
<meta property="og:description" content="openstack-resource-agents - Pacemaker High Availability resource agents for OpenStack"/>
|
|
|
|
<meta name="description" content="openstack-resource-agents - Pacemaker High Availability resource agents for OpenStack" />
|
|
|
|
<meta content="1589554" name="octolytics-dimension-user_id" /><meta content="madkiss" name="octolytics-dimension-user_login" /><meta content="5594232" name="octolytics-dimension-repository_id" /><meta content="madkiss/openstack-resource-agents" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="5594232" name="octolytics-dimension-repository_network_root_id" /><meta content="madkiss/openstack-resource-agents" name="octolytics-dimension-repository_network_root_nwo" />
|
|
<link href="https://github.com/madkiss/openstack-resource-agents/commits/master.atom" rel="alternate" title="Recent Commits to openstack-resource-agents:master" type="application/atom+xml" />
|
|
|
|
</head>
|
|
|
|
|
|
<body class="logged_out env-production vis-public page-blob">
|
|
<div class="wrapper">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="header header-logged-out">
|
|
<div class="container clearfix">
|
|
|
|
<a class="header-logo-wordmark" href="https://github.com/">
|
|
<span class="mega-octicon octicon-logo-github"></span>
|
|
</a>
|
|
|
|
<div class="header-actions">
|
|
<a class="button primary" href="/join">Sign up</a>
|
|
<a class="button signin" href="/login?return_to=%2Fmadkiss%2Fopenstack-resource-agents%2Fblob%2Fmaster%2Focf%2Fheat-engine">Sign in</a>
|
|
</div>
|
|
|
|
<div class="command-bar js-command-bar in-repository">
|
|
|
|
<ul class="top-nav">
|
|
<li class="explore"><a href="/explore">Explore</a></li>
|
|
<li class="features"><a href="/features">Features</a></li>
|
|
<li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
|
|
<li class="blog"><a href="/blog">Blog</a></li>
|
|
</ul>
|
|
<form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">
|
|
|
|
<input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"
|
|
|
|
|
|
data-repo="madkiss/openstack-resource-agents"
|
|
data-branch="master"
|
|
data-sha="3dc8a0b7e173afbd9c1db3f1a6be2ef6f8e97e30"
|
|
>
|
|
|
|
<input type="hidden" name="nwo" value="madkiss/openstack-resource-agents" />
|
|
|
|
<div class="select-menu js-menu-container js-select-menu search-context-select-menu">
|
|
<span class="minibutton select-menu-button js-menu-target">
|
|
<span class="js-select-button">This repository</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container">
|
|
<div class="select-menu-modal">
|
|
|
|
<div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
|
|
<div class="select-menu-item-text js-select-button-text">This repository</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
<div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<input type="radio" name="search_target" value="global" />
|
|
<div class="select-menu-item-text js-select-button-text">All repositories</div>
|
|
</div> <!-- /.select-menu-item -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<span class="octicon help tooltipped downwards" title="Show command bar help">
|
|
<span class="octicon octicon-question"></span>
|
|
</span>
|
|
|
|
|
|
<input type="hidden" name="ref" value="cmdform">
|
|
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="site" itemscope itemtype="http://schema.org/WebPage">
|
|
|
|
<div class="pagehead repohead instapaper_ignore readability-menu">
|
|
<div class="container">
|
|
|
|
|
|
<ul class="pagehead-actions">
|
|
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fmadkiss%2Fopenstack-resource-agents"
|
|
class="minibutton with-count js-toggler-target star-button tooltipped upwards"
|
|
title="You must be signed in to use this feature" rel="nofollow">
|
|
<span class="octicon octicon-star"></span>Star
|
|
</a>
|
|
|
|
<a class="social-count js-social-count" href="/madkiss/openstack-resource-agents/stargazers">
|
|
25
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
<a href="/login?return_to=%2Fmadkiss%2Fopenstack-resource-agents"
|
|
class="minibutton with-count js-toggler-target fork-button tooltipped upwards"
|
|
title="You must be signed in to fork a repository" rel="nofollow">
|
|
<span class="octicon octicon-git-branch"></span>Fork
|
|
</a>
|
|
<a href="/madkiss/openstack-resource-agents/network" class="social-count">
|
|
18
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
|
|
<span class="repo-label"><span>public</span></span>
|
|
<span class="mega-octicon octicon-repo"></span>
|
|
<span class="author">
|
|
<a href="/madkiss" class="url fn" itemprop="url" rel="author"><span itemprop="title">madkiss</span></a>
|
|
</span>
|
|
<span class="repohead-name-divider">/</span>
|
|
<strong><a href="/madkiss/openstack-resource-agents" class="js-current-repository js-repo-home-link">openstack-resource-agents</a></strong>
|
|
|
|
<span class="page-context-loader">
|
|
<img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</span>
|
|
|
|
</h1>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.repohead -->
|
|
|
|
<div class="container">
|
|
|
|
|
|
<div class="repository-with-sidebar repo-container ">
|
|
|
|
<div class="repository-sidebar">
|
|
|
|
|
|
<div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders">
|
|
<div class="sunken-menu-contents">
|
|
<ul class="sunken-menu-group">
|
|
<li class="tooltipped leftwards" title="Code">
|
|
<a href="/madkiss/openstack-resource-agents" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /madkiss/openstack-resource-agents">
|
|
<span class="octicon octicon-code"></span> <span class="full-word">Code</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Issues">
|
|
<a href="/madkiss/openstack-resource-agents/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /madkiss/openstack-resource-agents/issues">
|
|
<span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
|
|
<span class='counter'>2</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Pull Requests">
|
|
<a href="/madkiss/openstack-resource-agents/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /madkiss/openstack-resource-agents/pulls">
|
|
<span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
|
|
<span class='counter'>2</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
|
|
</ul>
|
|
<div class="sunken-menu-separator"></div>
|
|
<ul class="sunken-menu-group">
|
|
|
|
<li class="tooltipped leftwards" title="Pulse">
|
|
<a href="/madkiss/openstack-resource-agents/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /madkiss/openstack-resource-agents/pulse">
|
|
<span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Graphs">
|
|
<a href="/madkiss/openstack-resource-agents/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /madkiss/openstack-resource-agents/graphs">
|
|
<span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
|
|
<li class="tooltipped leftwards" title="Network">
|
|
<a href="/madkiss/openstack-resource-agents/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /madkiss/openstack-resource-agents/network">
|
|
<span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
|
|
<img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
|
|
</a> </li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="only-with-full-nav">
|
|
|
|
|
|
|
|
|
|
<div class="clone-url open"
|
|
data-protocol-type="http"
|
|
data-url="/users/set_protocol?protocol_selector=http&protocol_type=clone">
|
|
<h3><strong>HTTPS</strong> clone URL</h3>
|
|
<div class="clone-url-box">
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/madkiss/openstack-resource-agents.git" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/madkiss/openstack-resource-agents.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="clone-url "
|
|
data-protocol-type="subversion"
|
|
data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=clone">
|
|
<h3><strong>Subversion</strong> checkout URL</h3>
|
|
<div class="clone-url-box">
|
|
<input type="text" class="clone js-url-field"
|
|
value="https://github.com/madkiss/openstack-resource-agents" readonly="readonly">
|
|
|
|
<span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/madkiss/openstack-resource-agents" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p class="clone-options">You can clone with
|
|
<a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
|
|
or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
|
|
<span class="octicon help tooltipped upwards" title="Get help on which URL is right for you.">
|
|
<a href="https://help.github.com/articles/which-remote-url-should-i-use">
|
|
<span class="octicon octicon-question"></span>
|
|
</a>
|
|
</span>
|
|
</p>
|
|
|
|
|
|
|
|
<a href="/madkiss/openstack-resource-agents/archive/master.zip"
|
|
class="minibutton sidebar-button"
|
|
title="Download this repository as a zip file"
|
|
rel="nofollow">
|
|
<span class="octicon octicon-cloud-download"></span>
|
|
Download ZIP
|
|
</a>
|
|
</div>
|
|
</div><!-- /.repository-sidebar -->
|
|
|
|
<div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
|
|
|
|
|
|
|
|
<!-- blob contrib key: blob_contributors:v21:d260c0882832e08197ef95d63d3983f8 -->
|
|
|
|
<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>
|
|
|
|
<a href="/madkiss/openstack-resource-agents/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a>
|
|
|
|
<div class="file-navigation">
|
|
|
|
|
|
<div class="select-menu js-menu-container js-select-menu" >
|
|
<span class="minibutton select-menu-button js-menu-target" data-hotkey="w"
|
|
data-master-branch="master"
|
|
data-ref="master"
|
|
role="button" aria-label="Switch branches or tags" tabindex="0">
|
|
<span class="octicon octicon-git-branch"></span>
|
|
<i>branch:</i>
|
|
<span class="js-select-button">master</span>
|
|
</span>
|
|
|
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>
|
|
|
|
<div class="select-menu-modal">
|
|
<div class="select-menu-header">
|
|
<span class="select-menu-title">Switch branches/tags</span>
|
|
<span class="octicon octicon-remove-close js-menu-close"></span>
|
|
</div> <!-- /.select-menu-header -->
|
|
|
|
<div class="select-menu-filters">
|
|
<div class="select-menu-text-filter">
|
|
<input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
|
|
</div>
|
|
<div class="select-menu-tabs">
|
|
<ul>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
|
|
</li>
|
|
<li class="select-menu-tab">
|
|
<a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
|
|
</li>
|
|
</ul>
|
|
</div><!-- /.select-menu-tabs -->
|
|
</div><!-- /.select-menu-filters -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">
|
|
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
<div class="select-menu-item js-navigation-item selected">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/madkiss/openstack-resource-agents/blob/master/ocf/heat-engine"
|
|
data-name="master"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="master">master</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/madkiss/openstack-resource-agents/blob/stable-essex/ocf/heat-engine"
|
|
data-name="stable-essex"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="stable-essex">stable-essex</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/madkiss/openstack-resource-agents/blob/stable-folsom/ocf/heat-engine"
|
|
data-name="stable-folsom"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="stable-folsom">stable-folsom</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
<div class="select-menu-item js-navigation-item ">
|
|
<span class="select-menu-item-icon octicon octicon-check"></span>
|
|
<a href="/madkiss/openstack-resource-agents/blob/stable-grizzly/ocf/heat-engine"
|
|
data-name="stable-grizzly"
|
|
data-skip-pjax="true"
|
|
rel="nofollow"
|
|
class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
|
|
title="stable-grizzly">stable-grizzly</a>
|
|
</div> <!-- /.select-menu-item -->
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
|
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
|
|
|
|
|
</div>
|
|
|
|
<div class="select-menu-no-results">Nothing to show</div>
|
|
</div> <!-- /.select-menu-list -->
|
|
|
|
</div> <!-- /.select-menu-modal -->
|
|
</div> <!-- /.select-menu-modal-holder -->
|
|
</div> <!-- /.select-menu -->
|
|
|
|
<div class="breadcrumb">
|
|
<span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/madkiss/openstack-resource-agents" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">openstack-resource-agents</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/madkiss/openstack-resource-agents/tree/master/ocf" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">ocf</span></a></span><span class="separator"> / </span><strong class="final-path">heat-engine</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="ocf/heat-engine" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="commit file-history-tease">
|
|
<img class="main-avatar" height="24" src="https://2.gravatar.com/avatar/b81589743944d6e890b983f258024d10?d=https%3A%2F%2Fidenticons.github.com%2F1f980249fc81be34e97382a378274de2.png&r=x&s=140" width="24" />
|
|
<span class="author"><a href="/EmilienM" rel="author">EmilienM</a></span>
|
|
<time class="js-relative-date" datetime="2013-12-16T03:03:40-08:00" title="2013-12-16 03:03:40">December 16, 2013</time>
|
|
<div class="commit-title">
|
|
<a href="/madkiss/openstack-resource-agents/commit/64e633d8802b960d7d30d85b8b6793fb8d851363" class="message" data-pjax="true" title="Add heat-engine service
|
|
|
|
heat-engine is still SPOF and shoud be managed by Pacemaker / Corosync.
|
|
It should be fixed in Icehouse but during this time, this RA could be
|
|
use to ensure heat-engine is highly available.
|
|
|
|
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>">Add heat-engine service</a>
|
|
</div>
|
|
|
|
<div class="participation">
|
|
<p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>1</strong> contributor</a></p>
|
|
|
|
</div>
|
|
<div id="blob_contributors_box" style="display:none">
|
|
<h2 class="facebox-header">Users who have contributed to this file</h2>
|
|
<ul class="facebox-user-list">
|
|
<li class="facebox-user-list-item">
|
|
<img height="24" src="https://2.gravatar.com/avatar/b81589743944d6e890b983f258024d10?d=https%3A%2F%2Fidenticons.github.com%2F1f980249fc81be34e97382a378274de2.png&r=x&s=140" width="24" />
|
|
<a href="/EmilienM">EmilienM</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="files" class="bubble">
|
|
<div class="file">
|
|
<div class="meta">
|
|
<div class="info">
|
|
<span class="icon"><b class="octicon octicon-file-text"></b></span>
|
|
<span class="mode" title="File Mode">file</span>
|
|
<span>382 lines (324 sloc)</span>
|
|
<span>15.294 kb</span>
|
|
</div>
|
|
<div class="actions">
|
|
<div class="button-group">
|
|
<a class="minibutton disabled tooltipped leftwards" href="#"
|
|
title="You must be signed in to make or propose changes">Edit</a>
|
|
<a href="/madkiss/openstack-resource-agents/raw/master/ocf/heat-engine" class="button minibutton " id="raw-url">Raw</a>
|
|
<a href="/madkiss/openstack-resource-agents/blame/master/ocf/heat-engine" class="button minibutton ">Blame</a>
|
|
<a href="/madkiss/openstack-resource-agents/commits/master/ocf/heat-engine" class="button minibutton " rel="nofollow">History</a>
|
|
</div><!-- /.button-group -->
|
|
<a class="minibutton danger disabled empty-icon tooltipped leftwards" href="#"
|
|
title="You must be signed in to make or propose changes">
|
|
Delete
|
|
</a>
|
|
</div><!-- /.actions -->
|
|
|
|
</div>
|
|
<div class="blob-wrapper data type-text js-blob-data">
|
|
<table class="file-code file-diff">
|
|
<tr class="file-code-line">
|
|
<td class="blob-line-nums">
|
|
<span id="L1" rel="#L1">1</span>
|
|
<span id="L2" rel="#L2">2</span>
|
|
<span id="L3" rel="#L3">3</span>
|
|
<span id="L4" rel="#L4">4</span>
|
|
<span id="L5" rel="#L5">5</span>
|
|
<span id="L6" rel="#L6">6</span>
|
|
<span id="L7" rel="#L7">7</span>
|
|
<span id="L8" rel="#L8">8</span>
|
|
<span id="L9" rel="#L9">9</span>
|
|
<span id="L10" rel="#L10">10</span>
|
|
<span id="L11" rel="#L11">11</span>
|
|
<span id="L12" rel="#L12">12</span>
|
|
<span id="L13" rel="#L13">13</span>
|
|
<span id="L14" rel="#L14">14</span>
|
|
<span id="L15" rel="#L15">15</span>
|
|
<span id="L16" rel="#L16">16</span>
|
|
<span id="L17" rel="#L17">17</span>
|
|
<span id="L18" rel="#L18">18</span>
|
|
<span id="L19" rel="#L19">19</span>
|
|
<span id="L20" rel="#L20">20</span>
|
|
<span id="L21" rel="#L21">21</span>
|
|
<span id="L22" rel="#L22">22</span>
|
|
<span id="L23" rel="#L23">23</span>
|
|
<span id="L24" rel="#L24">24</span>
|
|
<span id="L25" rel="#L25">25</span>
|
|
<span id="L26" rel="#L26">26</span>
|
|
<span id="L27" rel="#L27">27</span>
|
|
<span id="L28" rel="#L28">28</span>
|
|
<span id="L29" rel="#L29">29</span>
|
|
<span id="L30" rel="#L30">30</span>
|
|
<span id="L31" rel="#L31">31</span>
|
|
<span id="L32" rel="#L32">32</span>
|
|
<span id="L33" rel="#L33">33</span>
|
|
<span id="L34" rel="#L34">34</span>
|
|
<span id="L35" rel="#L35">35</span>
|
|
<span id="L36" rel="#L36">36</span>
|
|
<span id="L37" rel="#L37">37</span>
|
|
<span id="L38" rel="#L38">38</span>
|
|
<span id="L39" rel="#L39">39</span>
|
|
<span id="L40" rel="#L40">40</span>
|
|
<span id="L41" rel="#L41">41</span>
|
|
<span id="L42" rel="#L42">42</span>
|
|
<span id="L43" rel="#L43">43</span>
|
|
<span id="L44" rel="#L44">44</span>
|
|
<span id="L45" rel="#L45">45</span>
|
|
<span id="L46" rel="#L46">46</span>
|
|
<span id="L47" rel="#L47">47</span>
|
|
<span id="L48" rel="#L48">48</span>
|
|
<span id="L49" rel="#L49">49</span>
|
|
<span id="L50" rel="#L50">50</span>
|
|
<span id="L51" rel="#L51">51</span>
|
|
<span id="L52" rel="#L52">52</span>
|
|
<span id="L53" rel="#L53">53</span>
|
|
<span id="L54" rel="#L54">54</span>
|
|
<span id="L55" rel="#L55">55</span>
|
|
<span id="L56" rel="#L56">56</span>
|
|
<span id="L57" rel="#L57">57</span>
|
|
<span id="L58" rel="#L58">58</span>
|
|
<span id="L59" rel="#L59">59</span>
|
|
<span id="L60" rel="#L60">60</span>
|
|
<span id="L61" rel="#L61">61</span>
|
|
<span id="L62" rel="#L62">62</span>
|
|
<span id="L63" rel="#L63">63</span>
|
|
<span id="L64" rel="#L64">64</span>
|
|
<span id="L65" rel="#L65">65</span>
|
|
<span id="L66" rel="#L66">66</span>
|
|
<span id="L67" rel="#L67">67</span>
|
|
<span id="L68" rel="#L68">68</span>
|
|
<span id="L69" rel="#L69">69</span>
|
|
<span id="L70" rel="#L70">70</span>
|
|
<span id="L71" rel="#L71">71</span>
|
|
<span id="L72" rel="#L72">72</span>
|
|
<span id="L73" rel="#L73">73</span>
|
|
<span id="L74" rel="#L74">74</span>
|
|
<span id="L75" rel="#L75">75</span>
|
|
<span id="L76" rel="#L76">76</span>
|
|
<span id="L77" rel="#L77">77</span>
|
|
<span id="L78" rel="#L78">78</span>
|
|
<span id="L79" rel="#L79">79</span>
|
|
<span id="L80" rel="#L80">80</span>
|
|
<span id="L81" rel="#L81">81</span>
|
|
<span id="L82" rel="#L82">82</span>
|
|
<span id="L83" rel="#L83">83</span>
|
|
<span id="L84" rel="#L84">84</span>
|
|
<span id="L85" rel="#L85">85</span>
|
|
<span id="L86" rel="#L86">86</span>
|
|
<span id="L87" rel="#L87">87</span>
|
|
<span id="L88" rel="#L88">88</span>
|
|
<span id="L89" rel="#L89">89</span>
|
|
<span id="L90" rel="#L90">90</span>
|
|
<span id="L91" rel="#L91">91</span>
|
|
<span id="L92" rel="#L92">92</span>
|
|
<span id="L93" rel="#L93">93</span>
|
|
<span id="L94" rel="#L94">94</span>
|
|
<span id="L95" rel="#L95">95</span>
|
|
<span id="L96" rel="#L96">96</span>
|
|
<span id="L97" rel="#L97">97</span>
|
|
<span id="L98" rel="#L98">98</span>
|
|
<span id="L99" rel="#L99">99</span>
|
|
<span id="L100" rel="#L100">100</span>
|
|
<span id="L101" rel="#L101">101</span>
|
|
<span id="L102" rel="#L102">102</span>
|
|
<span id="L103" rel="#L103">103</span>
|
|
<span id="L104" rel="#L104">104</span>
|
|
<span id="L105" rel="#L105">105</span>
|
|
<span id="L106" rel="#L106">106</span>
|
|
<span id="L107" rel="#L107">107</span>
|
|
<span id="L108" rel="#L108">108</span>
|
|
<span id="L109" rel="#L109">109</span>
|
|
<span id="L110" rel="#L110">110</span>
|
|
<span id="L111" rel="#L111">111</span>
|
|
<span id="L112" rel="#L112">112</span>
|
|
<span id="L113" rel="#L113">113</span>
|
|
<span id="L114" rel="#L114">114</span>
|
|
<span id="L115" rel="#L115">115</span>
|
|
<span id="L116" rel="#L116">116</span>
|
|
<span id="L117" rel="#L117">117</span>
|
|
<span id="L118" rel="#L118">118</span>
|
|
<span id="L119" rel="#L119">119</span>
|
|
<span id="L120" rel="#L120">120</span>
|
|
<span id="L121" rel="#L121">121</span>
|
|
<span id="L122" rel="#L122">122</span>
|
|
<span id="L123" rel="#L123">123</span>
|
|
<span id="L124" rel="#L124">124</span>
|
|
<span id="L125" rel="#L125">125</span>
|
|
<span id="L126" rel="#L126">126</span>
|
|
<span id="L127" rel="#L127">127</span>
|
|
<span id="L128" rel="#L128">128</span>
|
|
<span id="L129" rel="#L129">129</span>
|
|
<span id="L130" rel="#L130">130</span>
|
|
<span id="L131" rel="#L131">131</span>
|
|
<span id="L132" rel="#L132">132</span>
|
|
<span id="L133" rel="#L133">133</span>
|
|
<span id="L134" rel="#L134">134</span>
|
|
<span id="L135" rel="#L135">135</span>
|
|
<span id="L136" rel="#L136">136</span>
|
|
<span id="L137" rel="#L137">137</span>
|
|
<span id="L138" rel="#L138">138</span>
|
|
<span id="L139" rel="#L139">139</span>
|
|
<span id="L140" rel="#L140">140</span>
|
|
<span id="L141" rel="#L141">141</span>
|
|
<span id="L142" rel="#L142">142</span>
|
|
<span id="L143" rel="#L143">143</span>
|
|
<span id="L144" rel="#L144">144</span>
|
|
<span id="L145" rel="#L145">145</span>
|
|
<span id="L146" rel="#L146">146</span>
|
|
<span id="L147" rel="#L147">147</span>
|
|
<span id="L148" rel="#L148">148</span>
|
|
<span id="L149" rel="#L149">149</span>
|
|
<span id="L150" rel="#L150">150</span>
|
|
<span id="L151" rel="#L151">151</span>
|
|
<span id="L152" rel="#L152">152</span>
|
|
<span id="L153" rel="#L153">153</span>
|
|
<span id="L154" rel="#L154">154</span>
|
|
<span id="L155" rel="#L155">155</span>
|
|
<span id="L156" rel="#L156">156</span>
|
|
<span id="L157" rel="#L157">157</span>
|
|
<span id="L158" rel="#L158">158</span>
|
|
<span id="L159" rel="#L159">159</span>
|
|
<span id="L160" rel="#L160">160</span>
|
|
<span id="L161" rel="#L161">161</span>
|
|
<span id="L162" rel="#L162">162</span>
|
|
<span id="L163" rel="#L163">163</span>
|
|
<span id="L164" rel="#L164">164</span>
|
|
<span id="L165" rel="#L165">165</span>
|
|
<span id="L166" rel="#L166">166</span>
|
|
<span id="L167" rel="#L167">167</span>
|
|
<span id="L168" rel="#L168">168</span>
|
|
<span id="L169" rel="#L169">169</span>
|
|
<span id="L170" rel="#L170">170</span>
|
|
<span id="L171" rel="#L171">171</span>
|
|
<span id="L172" rel="#L172">172</span>
|
|
<span id="L173" rel="#L173">173</span>
|
|
<span id="L174" rel="#L174">174</span>
|
|
<span id="L175" rel="#L175">175</span>
|
|
<span id="L176" rel="#L176">176</span>
|
|
<span id="L177" rel="#L177">177</span>
|
|
<span id="L178" rel="#L178">178</span>
|
|
<span id="L179" rel="#L179">179</span>
|
|
<span id="L180" rel="#L180">180</span>
|
|
<span id="L181" rel="#L181">181</span>
|
|
<span id="L182" rel="#L182">182</span>
|
|
<span id="L183" rel="#L183">183</span>
|
|
<span id="L184" rel="#L184">184</span>
|
|
<span id="L185" rel="#L185">185</span>
|
|
<span id="L186" rel="#L186">186</span>
|
|
<span id="L187" rel="#L187">187</span>
|
|
<span id="L188" rel="#L188">188</span>
|
|
<span id="L189" rel="#L189">189</span>
|
|
<span id="L190" rel="#L190">190</span>
|
|
<span id="L191" rel="#L191">191</span>
|
|
<span id="L192" rel="#L192">192</span>
|
|
<span id="L193" rel="#L193">193</span>
|
|
<span id="L194" rel="#L194">194</span>
|
|
<span id="L195" rel="#L195">195</span>
|
|
<span id="L196" rel="#L196">196</span>
|
|
<span id="L197" rel="#L197">197</span>
|
|
<span id="L198" rel="#L198">198</span>
|
|
<span id="L199" rel="#L199">199</span>
|
|
<span id="L200" rel="#L200">200</span>
|
|
<span id="L201" rel="#L201">201</span>
|
|
<span id="L202" rel="#L202">202</span>
|
|
<span id="L203" rel="#L203">203</span>
|
|
<span id="L204" rel="#L204">204</span>
|
|
<span id="L205" rel="#L205">205</span>
|
|
<span id="L206" rel="#L206">206</span>
|
|
<span id="L207" rel="#L207">207</span>
|
|
<span id="L208" rel="#L208">208</span>
|
|
<span id="L209" rel="#L209">209</span>
|
|
<span id="L210" rel="#L210">210</span>
|
|
<span id="L211" rel="#L211">211</span>
|
|
<span id="L212" rel="#L212">212</span>
|
|
<span id="L213" rel="#L213">213</span>
|
|
<span id="L214" rel="#L214">214</span>
|
|
<span id="L215" rel="#L215">215</span>
|
|
<span id="L216" rel="#L216">216</span>
|
|
<span id="L217" rel="#L217">217</span>
|
|
<span id="L218" rel="#L218">218</span>
|
|
<span id="L219" rel="#L219">219</span>
|
|
<span id="L220" rel="#L220">220</span>
|
|
<span id="L221" rel="#L221">221</span>
|
|
<span id="L222" rel="#L222">222</span>
|
|
<span id="L223" rel="#L223">223</span>
|
|
<span id="L224" rel="#L224">224</span>
|
|
<span id="L225" rel="#L225">225</span>
|
|
<span id="L226" rel="#L226">226</span>
|
|
<span id="L227" rel="#L227">227</span>
|
|
<span id="L228" rel="#L228">228</span>
|
|
<span id="L229" rel="#L229">229</span>
|
|
<span id="L230" rel="#L230">230</span>
|
|
<span id="L231" rel="#L231">231</span>
|
|
<span id="L232" rel="#L232">232</span>
|
|
<span id="L233" rel="#L233">233</span>
|
|
<span id="L234" rel="#L234">234</span>
|
|
<span id="L235" rel="#L235">235</span>
|
|
<span id="L236" rel="#L236">236</span>
|
|
<span id="L237" rel="#L237">237</span>
|
|
<span id="L238" rel="#L238">238</span>
|
|
<span id="L239" rel="#L239">239</span>
|
|
<span id="L240" rel="#L240">240</span>
|
|
<span id="L241" rel="#L241">241</span>
|
|
<span id="L242" rel="#L242">242</span>
|
|
<span id="L243" rel="#L243">243</span>
|
|
<span id="L244" rel="#L244">244</span>
|
|
<span id="L245" rel="#L245">245</span>
|
|
<span id="L246" rel="#L246">246</span>
|
|
<span id="L247" rel="#L247">247</span>
|
|
<span id="L248" rel="#L248">248</span>
|
|
<span id="L249" rel="#L249">249</span>
|
|
<span id="L250" rel="#L250">250</span>
|
|
<span id="L251" rel="#L251">251</span>
|
|
<span id="L252" rel="#L252">252</span>
|
|
<span id="L253" rel="#L253">253</span>
|
|
<span id="L254" rel="#L254">254</span>
|
|
<span id="L255" rel="#L255">255</span>
|
|
<span id="L256" rel="#L256">256</span>
|
|
<span id="L257" rel="#L257">257</span>
|
|
<span id="L258" rel="#L258">258</span>
|
|
<span id="L259" rel="#L259">259</span>
|
|
<span id="L260" rel="#L260">260</span>
|
|
<span id="L261" rel="#L261">261</span>
|
|
<span id="L262" rel="#L262">262</span>
|
|
<span id="L263" rel="#L263">263</span>
|
|
<span id="L264" rel="#L264">264</span>
|
|
<span id="L265" rel="#L265">265</span>
|
|
<span id="L266" rel="#L266">266</span>
|
|
<span id="L267" rel="#L267">267</span>
|
|
<span id="L268" rel="#L268">268</span>
|
|
<span id="L269" rel="#L269">269</span>
|
|
<span id="L270" rel="#L270">270</span>
|
|
<span id="L271" rel="#L271">271</span>
|
|
<span id="L272" rel="#L272">272</span>
|
|
<span id="L273" rel="#L273">273</span>
|
|
<span id="L274" rel="#L274">274</span>
|
|
<span id="L275" rel="#L275">275</span>
|
|
<span id="L276" rel="#L276">276</span>
|
|
<span id="L277" rel="#L277">277</span>
|
|
<span id="L278" rel="#L278">278</span>
|
|
<span id="L279" rel="#L279">279</span>
|
|
<span id="L280" rel="#L280">280</span>
|
|
<span id="L281" rel="#L281">281</span>
|
|
<span id="L282" rel="#L282">282</span>
|
|
<span id="L283" rel="#L283">283</span>
|
|
<span id="L284" rel="#L284">284</span>
|
|
<span id="L285" rel="#L285">285</span>
|
|
<span id="L286" rel="#L286">286</span>
|
|
<span id="L287" rel="#L287">287</span>
|
|
<span id="L288" rel="#L288">288</span>
|
|
<span id="L289" rel="#L289">289</span>
|
|
<span id="L290" rel="#L290">290</span>
|
|
<span id="L291" rel="#L291">291</span>
|
|
<span id="L292" rel="#L292">292</span>
|
|
<span id="L293" rel="#L293">293</span>
|
|
<span id="L294" rel="#L294">294</span>
|
|
<span id="L295" rel="#L295">295</span>
|
|
<span id="L296" rel="#L296">296</span>
|
|
<span id="L297" rel="#L297">297</span>
|
|
<span id="L298" rel="#L298">298</span>
|
|
<span id="L299" rel="#L299">299</span>
|
|
<span id="L300" rel="#L300">300</span>
|
|
<span id="L301" rel="#L301">301</span>
|
|
<span id="L302" rel="#L302">302</span>
|
|
<span id="L303" rel="#L303">303</span>
|
|
<span id="L304" rel="#L304">304</span>
|
|
<span id="L305" rel="#L305">305</span>
|
|
<span id="L306" rel="#L306">306</span>
|
|
<span id="L307" rel="#L307">307</span>
|
|
<span id="L308" rel="#L308">308</span>
|
|
<span id="L309" rel="#L309">309</span>
|
|
<span id="L310" rel="#L310">310</span>
|
|
<span id="L311" rel="#L311">311</span>
|
|
<span id="L312" rel="#L312">312</span>
|
|
<span id="L313" rel="#L313">313</span>
|
|
<span id="L314" rel="#L314">314</span>
|
|
<span id="L315" rel="#L315">315</span>
|
|
<span id="L316" rel="#L316">316</span>
|
|
<span id="L317" rel="#L317">317</span>
|
|
<span id="L318" rel="#L318">318</span>
|
|
<span id="L319" rel="#L319">319</span>
|
|
<span id="L320" rel="#L320">320</span>
|
|
<span id="L321" rel="#L321">321</span>
|
|
<span id="L322" rel="#L322">322</span>
|
|
<span id="L323" rel="#L323">323</span>
|
|
<span id="L324" rel="#L324">324</span>
|
|
<span id="L325" rel="#L325">325</span>
|
|
<span id="L326" rel="#L326">326</span>
|
|
<span id="L327" rel="#L327">327</span>
|
|
<span id="L328" rel="#L328">328</span>
|
|
<span id="L329" rel="#L329">329</span>
|
|
<span id="L330" rel="#L330">330</span>
|
|
<span id="L331" rel="#L331">331</span>
|
|
<span id="L332" rel="#L332">332</span>
|
|
<span id="L333" rel="#L333">333</span>
|
|
<span id="L334" rel="#L334">334</span>
|
|
<span id="L335" rel="#L335">335</span>
|
|
<span id="L336" rel="#L336">336</span>
|
|
<span id="L337" rel="#L337">337</span>
|
|
<span id="L338" rel="#L338">338</span>
|
|
<span id="L339" rel="#L339">339</span>
|
|
<span id="L340" rel="#L340">340</span>
|
|
<span id="L341" rel="#L341">341</span>
|
|
<span id="L342" rel="#L342">342</span>
|
|
<span id="L343" rel="#L343">343</span>
|
|
<span id="L344" rel="#L344">344</span>
|
|
<span id="L345" rel="#L345">345</span>
|
|
<span id="L346" rel="#L346">346</span>
|
|
<span id="L347" rel="#L347">347</span>
|
|
<span id="L348" rel="#L348">348</span>
|
|
<span id="L349" rel="#L349">349</span>
|
|
<span id="L350" rel="#L350">350</span>
|
|
<span id="L351" rel="#L351">351</span>
|
|
<span id="L352" rel="#L352">352</span>
|
|
<span id="L353" rel="#L353">353</span>
|
|
<span id="L354" rel="#L354">354</span>
|
|
<span id="L355" rel="#L355">355</span>
|
|
<span id="L356" rel="#L356">356</span>
|
|
<span id="L357" rel="#L357">357</span>
|
|
<span id="L358" rel="#L358">358</span>
|
|
<span id="L359" rel="#L359">359</span>
|
|
<span id="L360" rel="#L360">360</span>
|
|
<span id="L361" rel="#L361">361</span>
|
|
<span id="L362" rel="#L362">362</span>
|
|
<span id="L363" rel="#L363">363</span>
|
|
<span id="L364" rel="#L364">364</span>
|
|
<span id="L365" rel="#L365">365</span>
|
|
<span id="L366" rel="#L366">366</span>
|
|
<span id="L367" rel="#L367">367</span>
|
|
<span id="L368" rel="#L368">368</span>
|
|
<span id="L369" rel="#L369">369</span>
|
|
<span id="L370" rel="#L370">370</span>
|
|
<span id="L371" rel="#L371">371</span>
|
|
<span id="L372" rel="#L372">372</span>
|
|
<span id="L373" rel="#L373">373</span>
|
|
<span id="L374" rel="#L374">374</span>
|
|
<span id="L375" rel="#L375">375</span>
|
|
<span id="L376" rel="#L376">376</span>
|
|
<span id="L377" rel="#L377">377</span>
|
|
<span id="L378" rel="#L378">378</span>
|
|
<span id="L379" rel="#L379">379</span>
|
|
<span id="L380" rel="#L380">380</span>
|
|
<span id="L381" rel="#L381">381</span>
|
|
|
|
</td>
|
|
<td class="blob-line-code">
|
|
<div class="code-body highlight"><pre><div class='line' id='LC1'>#!/bin/sh</div><div class='line' id='LC2'>#</div><div class='line' id='LC3'>#</div><div class='line' id='LC4'># OpenStack Orchestration Engine Service (heat-engine)</div><div class='line' id='LC5'>#</div><div class='line' id='LC6'># Description: Manages an OpenStack Orchestration Engine Service (heat-engine) process as an HA resource</div><div class='line' id='LC7'>#</div><div class='line' id='LC8'># Authors: Emilien Macchi</div><div class='line' id='LC9'>#</div><div class='line' id='LC10'># Support: openstack@lists.launchpad.net</div><div class='line' id='LC11'># License: Apache Software License (ASL) 2.0</div><div class='line' id='LC12'>#</div><div class='line' id='LC13'>#</div><div class='line' id='LC14'># See usage() function below for more details ...</div><div class='line' id='LC15'>#</div><div class='line' id='LC16'># OCF instance parameters:</div><div class='line' id='LC17'># OCF_RESKEY_binary</div><div class='line' id='LC18'># OCF_RESKEY_config</div><div class='line' id='LC19'># OCF_RESKEY_user</div><div class='line' id='LC20'># OCF_RESKEY_pid</div><div class='line' id='LC21'># OCF_RESKEY_monitor_binary</div><div class='line' id='LC22'># OCF_RESKEY_database_server_port</div><div class='line' id='LC23'># OCF_RESKEY_amqp_server_port</div><div class='line' id='LC24'># OCF_RESKEY_zeromq</div><div class='line' id='LC25'># OCF_RESKEY_additional_parameters</div><div class='line' id='LC26'>#######################################################################</div><div class='line' id='LC27'># Initialization:</div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'>: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}</div><div class='line' id='LC30'>. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs</div><div class='line' id='LC31'><br/></div><div class='line' id='LC32'>#######################################################################</div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'># Fill in some defaults if no values are specified</div><div class='line' id='LC35'><br/></div><div class='line' id='LC36'>OCF_RESKEY_binary_default="heat-engine"</div><div class='line' id='LC37'>OCF_RESKEY_config_default="/etc/heat/heat.conf"</div><div class='line' id='LC38'>OCF_RESKEY_user_default="heat"</div><div class='line' id='LC39'>OCF_RESKEY_pid_default="$HA_RSCTMP/$OCF_RESOURCE_INSTANCE.pid"</div><div class='line' id='LC40'>OCF_RESKEY_database_server_port_default="3306"</div><div class='line' id='LC41'>OCF_RESKEY_amqp_server_port_default="5672"</div><div class='line' id='LC42'>OCF_RESKEY_zeromq_default="false"</div><div class='line' id='LC43'><br/></div><div class='line' id='LC44'>: ${OCF_RESKEY_binary=${OCF_RESKEY_binary_default}}</div><div class='line' id='LC45'>: ${OCF_RESKEY_config=${OCF_RESKEY_config_default}}</div><div class='line' id='LC46'>: ${OCF_RESKEY_user=${OCF_RESKEY_user_default}}</div><div class='line' id='LC47'>: ${OCF_RESKEY_pid=${OCF_RESKEY_pid_default}}</div><div class='line' id='LC48'>: ${OCF_RESKEY_database_server_port=${OCF_RESKEY_database_server_port_default}}</div><div class='line' id='LC49'>: ${OCF_RESKEY_amqp_server_port=${OCF_RESKEY_amqp_server_port_default}}</div><div class='line' id='LC50'>: ${OCF_RESKEY_zeromq=${OCF_RESKEY_zeromq_default}}</div><div class='line' id='LC51'><br/></div><div class='line' id='LC52'>#######################################################################</div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'>usage() {</div><div class='line' id='LC55'> cat <<UEND</div><div class='line' id='LC56'> usage: $0 (start|stop|validate-all|meta-data|status|monitor)</div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> $0 manages an OpenStack Orchestration Engine Service (heat-engine) process as an HA resource </div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> The 'start' operation starts the heat-engine service.</div><div class='line' id='LC61'> The 'stop' operation stops the heat-engine service.</div><div class='line' id='LC62'> The 'validate-all' operation reports whether the parameters are valid</div><div class='line' id='LC63'> The 'meta-data' operation reports this RA's meta-data information</div><div class='line' id='LC64'> The 'status' operation reports whether the heat-engine service is running</div><div class='line' id='LC65'> The 'monitor' operation reports whether the heat-engine service seems to be working</div><div class='line' id='LC66'><br/></div><div class='line' id='LC67'>UEND</div><div class='line' id='LC68'>}</div><div class='line' id='LC69'><br/></div><div class='line' id='LC70'>meta_data() {</div><div class='line' id='LC71'> cat <<END</div><div class='line' id='LC72'><?xml version="1.0"?></div><div class='line' id='LC73'><!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"></div><div class='line' id='LC74'><resource-agent name="heat-engine"></div><div class='line' id='LC75'><version>1.0</version></div><div class='line' id='LC76'><br/></div><div class='line' id='LC77'><longdesc lang="en"></div><div class='line' id='LC78'>Resource agent for the OpenStack Orchestration Engine Service (heat-engine)</div><div class='line' id='LC79'>May manage a heat-engine instance or a clone set that </div><div class='line' id='LC80'>creates a distributed heat-engine cluster.</div><div class='line' id='LC81'></longdesc></div><div class='line' id='LC82'><shortdesc lang="en">Manages the OpenStack Orchestration Engine Service (heat-engine)</shortdesc></div><div class='line' id='LC83'><parameters></div><div class='line' id='LC84'><br/></div><div class='line' id='LC85'><parameter name="binary" unique="0" required="0"></div><div class='line' id='LC86'><longdesc lang="en"></div><div class='line' id='LC87'>Location of the OpenStack Orchestration Engine server binary (heat-engine)</div><div class='line' id='LC88'></longdesc></div><div class='line' id='LC89'><shortdesc lang="en">OpenStack Orchestration Engine server binary (heat-engine)</shortdesc></div><div class='line' id='LC90'><content type="string" default="${OCF_RESKEY_binary_default}" /></div><div class='line' id='LC91'></parameter></div><div class='line' id='LC92'><br/></div><div class='line' id='LC93'><parameter name="config" unique="0" required="0"></div><div class='line' id='LC94'><longdesc lang="en"></div><div class='line' id='LC95'>Location of the OpenStack Orchestration Engine Service (heat-engine) configuration file</div><div class='line' id='LC96'></longdesc></div><div class='line' id='LC97'><shortdesc lang="en">OpenStack Orchestration Engine (heat-engine) config file</shortdesc></div><div class='line' id='LC98'><content type="string" default="${OCF_RESKEY_config_default}" /></div><div class='line' id='LC99'></parameter></div><div class='line' id='LC100'><br/></div><div class='line' id='LC101'><parameter name="user" unique="0" required="0"></div><div class='line' id='LC102'><longdesc lang="en"></div><div class='line' id='LC103'>User running OpenStack Orchestration Engine Service (heat-engine)</div><div class='line' id='LC104'></longdesc></div><div class='line' id='LC105'><shortdesc lang="en">OpenStack Orchestration Engine Service (heat-engine) user</shortdesc></div><div class='line' id='LC106'><content type="string" default="${OCF_RESKEY_user_default}" /></div><div class='line' id='LC107'></parameter></div><div class='line' id='LC108'><br/></div><div class='line' id='LC109'><parameter name="pid" unique="0" required="0"></div><div class='line' id='LC110'><longdesc lang="en"></div><div class='line' id='LC111'>The pid file to use for this OpenStack Orchestration Engine Service (heat-engine) instance</div><div class='line' id='LC112'></longdesc></div><div class='line' id='LC113'><shortdesc lang="en">OpenStack Orchestration Engine Service (heat-engine) pid file</shortdesc></div><div class='line' id='LC114'><content type="string" default="${OCF_RESKEY_pid_default}" /></div><div class='line' id='LC115'></parameter></div><div class='line' id='LC116'><br/></div><div class='line' id='LC117'><parameter name="database_server_port" unique="0" required="0"> </div><div class='line' id='LC118'><longdesc lang="en"> </div><div class='line' id='LC119'>The listening port number of the database server. Use for monitoring purposes </div><div class='line' id='LC120'></longdesc> </div><div class='line' id='LC121'><shortdesc lang="en">Database listening port</shortdesc> </div><div class='line' id='LC122'><content type="integer" default="${OCF_RESKEY_database_server_port_default}" /> </div><div class='line' id='LC123'></parameter> </div><div class='line' id='LC124'><br/></div><div class='line' id='LC125'><parameter name="amqp_server_port" unique="0" required="0"> </div><div class='line' id='LC126'><longdesc lang="en"> </div><div class='line' id='LC127'>The listening port number of the AMQP server. Use for monitoring purposes </div><div class='line' id='LC128'></longdesc> </div><div class='line' id='LC129'><shortdesc lang="en">AMQP listening port</shortdesc> </div><div class='line' id='LC130'><content type="integer" default="${OCF_RESKEY_amqp_server_port_default}" /> </div><div class='line' id='LC131'></parameter> </div><div class='line' id='LC132'><br/></div><div class='line' id='LC133'><parameter name="zeromq" unique="0" required="0"> </div><div class='line' id='LC134'><longdesc lang="en"> </div><div class='line' id='LC135'>If zeromq is used, this will disable the connection test to the AMQP server. Use for monitoring purposes </div><div class='line' id='LC136'></longdesc> </div><div class='line' id='LC137'><shortdesc lang="en">Zero-MQ usage</shortdesc> </div><div class='line' id='LC138'><content type="boolean" default="${OCF_RESKEY_zeromq_default}" /> </div><div class='line' id='LC139'></parameter> </div><div class='line' id='LC140'><br/></div><div class='line' id='LC141'><parameter name="additional_parameters" unique="0" required="0"></div><div class='line' id='LC142'><longdesc lang="en"></div><div class='line' id='LC143'>Additional parameters to pass on to the OpenStack Orchestration Engine Service (heat-engine)</div><div class='line' id='LC144'></longdesc></div><div class='line' id='LC145'><shortdesc lang="en">Additional parameters for heat-engine</shortdesc></div><div class='line' id='LC146'><content type="string" /></div><div class='line' id='LC147'></parameter></div><div class='line' id='LC148'><br/></div><div class='line' id='LC149'></parameters></div><div class='line' id='LC150'><br/></div><div class='line' id='LC151'><actions></div><div class='line' id='LC152'><action name="start" timeout="20" /></div><div class='line' id='LC153'><action name="stop" timeout="20" /></div><div class='line' id='LC154'><action name="status" timeout="20" /></div><div class='line' id='LC155'><action name="monitor" timeout="30" interval="20" /></div><div class='line' id='LC156'><action name="validate-all" timeout="5" /></div><div class='line' id='LC157'><action name="meta-data" timeout="5" /></div><div class='line' id='LC158'></actions></div><div class='line' id='LC159'></resource-agent></div><div class='line' id='LC160'>END</div><div class='line' id='LC161'>}</div><div class='line' id='LC162'><br/></div><div class='line' id='LC163'>#######################################################################</div><div class='line' id='LC164'># Functions invoked by resource manager actions</div><div class='line' id='LC165'><br/></div><div class='line' id='LC166'>heat_engine_check_port() {</div><div class='line' id='LC167'># This function has been taken from the squid RA and improved a bit</div><div class='line' id='LC168'># The length of the integer must be 4</div><div class='line' id='LC169'># Examples of valid port: "1080", "0080"</div><div class='line' id='LC170'># Examples of invalid port: "1080bad", "0", "0000", ""</div><div class='line' id='LC171'><br/></div><div class='line' id='LC172'> local int</div><div class='line' id='LC173'> local cnt</div><div class='line' id='LC174'> </div><div class='line' id='LC175'> int="$1"</div><div class='line' id='LC176'> cnt=${#int}</div><div class='line' id='LC177'> echo $int |egrep -qx '[0-9]+(:[0-9]+)?(,[0-9]+(:[0-9]+)?)*'</div><div class='line' id='LC178'><br/></div><div class='line' id='LC179'> if [ $? -ne 0 ] || [ $cnt -ne 4 ]; then</div><div class='line' id='LC180'> ocf_log err "Invalid port number: $1"</div><div class='line' id='LC181'> exit $OCF_ERR_CONFIGURED</div><div class='line' id='LC182'> fi</div><div class='line' id='LC183'>}</div><div class='line' id='LC184'><br/></div><div class='line' id='LC185'>heat_engine_validate() {</div><div class='line' id='LC186'> local rc</div><div class='line' id='LC187'><br/></div><div class='line' id='LC188'> check_binary $OCF_RESKEY_binary</div><div class='line' id='LC189'> check_binary netstat</div><div class='line' id='LC190'> heat_engine_check_port $OCF_RESKEY_database_server_port</div><div class='line' id='LC191'> heat_engine_check_port $OCF_RESKEY_amqp_server_port</div><div class='line' id='LC192'> </div><div class='line' id='LC193'> # A config file on shared storage that is not available</div><div class='line' id='LC194'> # during probes is OK.</div><div class='line' id='LC195'> if [ ! -f $OCF_RESKEY_config ]; then</div><div class='line' id='LC196'> if ! ocf_is_probe; then</div><div class='line' id='LC197'> ocf_log err "Config $OCF_RESKEY_config doesn't exist"</div><div class='line' id='LC198'> return $OCF_ERR_INSTALLED</div><div class='line' id='LC199'> fi</div><div class='line' id='LC200'> ocf_log_warn "Config $OCF_RESKEY_config not available during a probe"</div><div class='line' id='LC201'> fi</div><div class='line' id='LC202'><br/></div><div class='line' id='LC203'> getent passwd $OCF_RESKEY_user >/dev/null 2>&1</div><div class='line' id='LC204'> rc=$?</div><div class='line' id='LC205'> if [ $rc -ne 0 ]; then</div><div class='line' id='LC206'> ocf_log err "User $OCF_RESKEY_user doesn't exist"</div><div class='line' id='LC207'> return $OCF_ERR_INSTALLED</div><div class='line' id='LC208'> fi</div><div class='line' id='LC209'><br/></div><div class='line' id='LC210'> true</div><div class='line' id='LC211'>}</div><div class='line' id='LC212'><br/></div><div class='line' id='LC213'>heat_engine_status() {</div><div class='line' id='LC214'> local pid</div><div class='line' id='LC215'> local rc</div><div class='line' id='LC216'><br/></div><div class='line' id='LC217'> if [ ! -f $OCF_RESKEY_pid ]; then</div><div class='line' id='LC218'> ocf_log info "OpenStack Orchestration Engine (heat-engine) is not running"</div><div class='line' id='LC219'> return $OCF_NOT_RUNNING</div><div class='line' id='LC220'> else</div><div class='line' id='LC221'> pid=`cat $OCF_RESKEY_pid`</div><div class='line' id='LC222'> fi</div><div class='line' id='LC223'><br/></div><div class='line' id='LC224'> ocf_run -warn kill -s 0 $pid</div><div class='line' id='LC225'> rc=$?</div><div class='line' id='LC226'> if [ $rc -eq 0 ]; then</div><div class='line' id='LC227'> return $OCF_SUCCESS</div><div class='line' id='LC228'> else</div><div class='line' id='LC229'> ocf_log info "Old PID file found, but OpenStack Orchestration Engine (heat-engine) is not running"</div><div class='line' id='LC230'> return $OCF_NOT_RUNNING</div><div class='line' id='LC231'> fi</div><div class='line' id='LC232'>}</div><div class='line' id='LC233'><br/></div><div class='line' id='LC234'>heat_engine_monitor() {</div><div class='line' id='LC235'> local rc</div><div class='line' id='LC236'> local pid</div><div class='line' id='LC237'> local rc_db</div><div class='line' id='LC238'> local rc_amqp</div><div class='line' id='LC239'> local engine_db_check</div><div class='line' id='LC240'> local engine_amqp_check</div><div class='line' id='LC241'><br/></div><div class='line' id='LC242'> heat_engine_status</div><div class='line' id='LC243'> rc=$?</div><div class='line' id='LC244'><br/></div><div class='line' id='LC245'> # If status returned anything but success, return that immediately</div><div class='line' id='LC246'> if [ $rc -ne $OCF_SUCCESS ]; then</div><div class='line' id='LC247'> return $rc</div><div class='line' id='LC248'> fi</div><div class='line' id='LC249'><br/></div><div class='line' id='LC250'> # Check the connections according to the PID.</div><div class='line' id='LC251'> # We are sure to hit the heat-engine process and not other heat process with the same connection behavior (for example heat-api)</div><div class='line' id='LC252'> if ocf_is_true "$OCF_RESKEY_zeromq"; then</div><div class='line' id='LC253'> pid=`cat $OCF_RESKEY_pid`</div><div class='line' id='LC254'> engine_db_check=`netstat -punt | grep -s "$OCF_RESKEY_database_server_port" | grep -s "$pid" | grep -qs "ESTABLISHED"`</div><div class='line' id='LC255'> rc_db=$?</div><div class='line' id='LC256'> if [ $rc_db -ne 0 ]; then</div><div class='line' id='LC257'> ocf_log err "heat-engine is not connected to the database server: $rc_db"</div><div class='line' id='LC258'> return $OCF_NOT_RUNNING</div><div class='line' id='LC259'> fi</div><div class='line' id='LC260'> else</div><div class='line' id='LC261'> pid=`cat $OCF_RESKEY_pid`</div><div class='line' id='LC262'> engine_db_check=`netstat -punt | grep -s "$OCF_RESKEY_database_server_port" | grep -s "$pid" | grep -qs "ESTABLISHED"`</div><div class='line' id='LC263'> rc_db=$?</div><div class='line' id='LC264'> engine_amqp_check=`netstat -punt | grep -s "$OCF_RESKEY_amqp_server_port" | grep -s "$pid" | grep -qs "ESTABLISHED"`</div><div class='line' id='LC265'> rc_amqp=$?</div><div class='line' id='LC266'> if [ $rc_amqp -ne 0 ] || [ $rc_db -ne 0 ]; then</div><div class='line' id='LC267'> ocf_log err "Heat Engine is not connected to the AMQP server and/or the database server: AMQP connection test returned $rc_amqp and database connection test returned $rc_db"</div><div class='line' id='LC268'> return $OCF_NOT_RUNNING</div><div class='line' id='LC269'> fi</div><div class='line' id='LC270'> fi</div><div class='line' id='LC271'><br/></div><div class='line' id='LC272'> ocf_log debug "OpenStack Orchestration Engine (heat-engine) monitor succeeded"</div><div class='line' id='LC273'> return $OCF_SUCCESS</div><div class='line' id='LC274'>}</div><div class='line' id='LC275'><br/></div><div class='line' id='LC276'>heat_engine_start() {</div><div class='line' id='LC277'> local rc</div><div class='line' id='LC278'><br/></div><div class='line' id='LC279'> heat_engine_status</div><div class='line' id='LC280'> rc=$?</div><div class='line' id='LC281'> if [ $rc -eq $OCF_SUCCESS ]; then</div><div class='line' id='LC282'> ocf_log info "OpenStack Orchestration Engine (heat-engine) already running"</div><div class='line' id='LC283'> return $OCF_SUCCESS</div><div class='line' id='LC284'> fi</div><div class='line' id='LC285'><br/></div><div class='line' id='LC286'> # run the actual heat-engine daemon. Don't use ocf_run as we're sending the tool's output</div><div class='line' id='LC287'> # straight to /dev/null anyway and using ocf_run would break stdout-redirection here.</div><div class='line' id='LC288'> su ${OCF_RESKEY_user} -s /bin/sh -c "${OCF_RESKEY_binary} --config-file=$OCF_RESKEY_config \</div><div class='line' id='LC289'> $OCF_RESKEY_additional_parameters"' >> /dev/null 2>&1 & echo $!' > $OCF_RESKEY_pid</div><div class='line' id='LC290'><br/></div><div class='line' id='LC291'> # Spin waiting for the server to come up.</div><div class='line' id='LC292'> while true; do</div><div class='line' id='LC293'> heat_engine_monitor</div><div class='line' id='LC294'> rc=$?</div><div class='line' id='LC295'> [ $rc -eq $OCF_SUCCESS ] && break</div><div class='line' id='LC296'> if [ $rc -ne $OCF_NOT_RUNNING ]; then</div><div class='line' id='LC297'> ocf_log err "OpenStack Orchestration Engine (heat-engine) start failed"</div><div class='line' id='LC298'> exit $OCF_ERR_GENERIC</div><div class='line' id='LC299'> fi</div><div class='line' id='LC300'> sleep 1</div><div class='line' id='LC301'> done</div><div class='line' id='LC302'><br/></div><div class='line' id='LC303'> ocf_log info "OpenStack Orchestration Engine (heat-engine) started"</div><div class='line' id='LC304'> return $OCF_SUCCESS</div><div class='line' id='LC305'>}</div><div class='line' id='LC306'><br/></div><div class='line' id='LC307'>heat_engine_stop() {</div><div class='line' id='LC308'> local rc</div><div class='line' id='LC309'> local pid</div><div class='line' id='LC310'><br/></div><div class='line' id='LC311'> heat_engine_status</div><div class='line' id='LC312'> rc=$?</div><div class='line' id='LC313'> if [ $rc -eq $OCF_NOT_RUNNING ]; then</div><div class='line' id='LC314'> ocf_log info "OpenStack Orchestration Engine (heat-engine) already stopped"</div><div class='line' id='LC315'> return $OCF_SUCCESS</div><div class='line' id='LC316'> fi</div><div class='line' id='LC317'><br/></div><div class='line' id='LC318'> # Try SIGTERM</div><div class='line' id='LC319'> pid=`cat $OCF_RESKEY_pid`</div><div class='line' id='LC320'> ocf_run kill -s TERM $pid</div><div class='line' id='LC321'> rc=$?</div><div class='line' id='LC322'> if [ $rc -ne 0 ]; then</div><div class='line' id='LC323'> ocf_log err "OpenStack Orchestration Engine (heat-engine) couldn't be stopped"</div><div class='line' id='LC324'> exit $OCF_ERR_GENERIC</div><div class='line' id='LC325'> fi</div><div class='line' id='LC326'><br/></div><div class='line' id='LC327'> # stop waiting</div><div class='line' id='LC328'> shutdown_timeout=15</div><div class='line' id='LC329'> if [ -n "$OCF_RESKEY_CRM_meta_timeout" ]; then</div><div class='line' id='LC330'> shutdown_timeout=$((($OCF_RESKEY_CRM_meta_timeout/1000)-5))</div><div class='line' id='LC331'> fi</div><div class='line' id='LC332'> count=0</div><div class='line' id='LC333'> while [ $count -lt $shutdown_timeout ]; do</div><div class='line' id='LC334'> heat_engine_status</div><div class='line' id='LC335'> rc=$?</div><div class='line' id='LC336'> if [ $rc -eq $OCF_NOT_RUNNING ]; then</div><div class='line' id='LC337'> break</div><div class='line' id='LC338'> fi</div><div class='line' id='LC339'> count=`expr $count + 1`</div><div class='line' id='LC340'> sleep 1</div><div class='line' id='LC341'> ocf_log debug "OpenStack Orchestration Engine (heat-engine) still hasn't stopped yet. Waiting ..."</div><div class='line' id='LC342'> done</div><div class='line' id='LC343'><br/></div><div class='line' id='LC344'> heat_engine_status</div><div class='line' id='LC345'> rc=$?</div><div class='line' id='LC346'> if [ $rc -ne $OCF_NOT_RUNNING ]; then</div><div class='line' id='LC347'> # SIGTERM didn't help either, try SIGKILL</div><div class='line' id='LC348'> ocf_log info "OpenStack Orchestration Engine (heat-engine) failed to stop after ${shutdown_timeout}s \</div><div class='line' id='LC349'> using SIGTERM. Trying SIGKILL ..."</div><div class='line' id='LC350'> ocf_run kill -s KILL $pid</div><div class='line' id='LC351'> fi</div><div class='line' id='LC352'><br/></div><div class='line' id='LC353'> ocf_log info "OpenStack Orchestration Engine (heat-engine) stopped"</div><div class='line' id='LC354'><br/></div><div class='line' id='LC355'> rm -f $OCF_RESKEY_pid</div><div class='line' id='LC356'><br/></div><div class='line' id='LC357'> return $OCF_SUCCESS</div><div class='line' id='LC358'>}</div><div class='line' id='LC359'><br/></div><div class='line' id='LC360'>#######################################################################</div><div class='line' id='LC361'><br/></div><div class='line' id='LC362'>case "$1" in</div><div class='line' id='LC363'> meta-data) meta_data</div><div class='line' id='LC364'> exit $OCF_SUCCESS;;</div><div class='line' id='LC365'> usage|help) usage</div><div class='line' id='LC366'> exit $OCF_SUCCESS;;</div><div class='line' id='LC367'>esac</div><div class='line' id='LC368'><br/></div><div class='line' id='LC369'># Anything except meta-data and help must pass validation</div><div class='line' id='LC370'>heat_engine_validate || exit $?</div><div class='line' id='LC371'><br/></div><div class='line' id='LC372'># What kind of method was invoked?</div><div class='line' id='LC373'>case "$1" in</div><div class='line' id='LC374'> start) heat_engine_start;;</div><div class='line' id='LC375'> stop) heat_engine_stop;;</div><div class='line' id='LC376'> status) heat_engine_status;;</div><div class='line' id='LC377'> monitor) heat_engine_monitor;;</div><div class='line' id='LC378'> validate-all) ;;</div><div class='line' id='LC379'> *) usage</div><div class='line' id='LC380'> exit $OCF_ERR_UNIMPLEMENTED;;</div><div class='line' id='LC381'>esac</div></pre></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
|
|
<div id="jump-to-line" style="display:none">
|
|
<form accept-charset="UTF-8" class="js-jump-to-line-form">
|
|
<input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus>
|
|
<button type="submit" class="button">Go</button>
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div><!-- /.repo-container -->
|
|
<div class="modal-backdrop"></div>
|
|
</div><!-- /.container -->
|
|
</div><!-- /.site -->
|
|
|
|
|
|
</div><!-- /.wrapper -->
|
|
|
|
<div class="container">
|
|
<div class="site-footer">
|
|
<ul class="site-footer-links right">
|
|
<li><a href="https://status.github.com/">Status</a></li>
|
|
<li><a href="http://developer.github.com">API</a></li>
|
|
<li><a href="http://training.github.com">Training</a></li>
|
|
<li><a href="http://shop.github.com">Shop</a></li>
|
|
<li><a href="/blog">Blog</a></li>
|
|
<li><a href="/about">About</a></li>
|
|
|
|
</ul>
|
|
|
|
<a href="/">
|
|
<span class="mega-octicon octicon-mark-github"></span>
|
|
</a>
|
|
|
|
<ul class="site-footer-links">
|
|
<li>© 2013 <span title="0.02763s from github-fe130-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
|
|
<li><a href="/site/terms">Terms</a></li>
|
|
<li><a href="/site/privacy">Privacy</a></li>
|
|
<li><a href="/security">Security</a></li>
|
|
<li><a href="/contact">Contact</a></li>
|
|
</ul>
|
|
</div><!-- /.site-footer -->
|
|
</div><!-- /.container -->
|
|
|
|
|
|
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
|
|
<div class="fullscreen-container js-fullscreen-container">
|
|
<div class="textarea-wrap">
|
|
<textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
|
|
<div class="suggester-container">
|
|
<div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
|
|
data-url="/madkiss/openstack-resource-agents/suggestions/commit">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="fullscreen-sidebar">
|
|
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
|
|
<span class="mega-octicon octicon-screen-normal"></span>
|
|
</a>
|
|
<a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
|
|
title="Switch themes">
|
|
<span class="octicon octicon-color-mode"></span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div id="ajax-error-message" class="flash flash-error">
|
|
<span class="octicon octicon-alert"></span>
|
|
<a href="#" class="octicon octicon-remove-close close ajax-error-dismiss"></a>
|
|
Something went wrong with that request. Please try again.
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
|