summaryrefslogtreecommitdiffstats
path: root/deploy/playbook_done.py
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2018-02-01 15:56:03 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2018-02-01 19:14:35 +0800
commit5e02737fa5f23451bbb443bbf9d67cbac603dc46 (patch)
treeb642b808ea19d13b8e7c370bafe4b431e4b7b560 /deploy/playbook_done.py
parentbce23c34f221cdd9a41608c6505b359d99963afe (diff)
Ansible callback support both V2.3 and V2.4
JIRA: COMPASS-585 1. Add conditional branch to support both ansible versions 2. Keep callback in ansible_plugins directory which will contains all plugins upcoming in the future Change-Id: I11f3d9700e07ad5bd7f03ad56f4e0bc061df05ec Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'deploy/playbook_done.py')
-rw-r--r--deploy/playbook_done.py106
1 files changed, 0 insertions, 106 deletions
diff --git a/deploy/playbook_done.py b/deploy/playbook_done.py
deleted file mode 100644
index 6b1043d4..00000000
--- a/deploy/playbook_done.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2014 Huawei Technologies Co. Ltd
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Ansible playbook callback after a playbook run has completed."""
-import sys
-
-from ansible.plugins.callback import CallbackBase
-
-compass_bin = "/opt/compass/bin"
-sys.path.append(compass_bin)
-
-import switch_virtualenv # noqa: F401
-
-from compass.apiclient.restful import Client # noqa: E402
-from compass.utils import flags # noqa: E402
-
-
-flags.add('compass_server',
- help='compass server url',
- default='http://compass-deck/api')
-flags.add('compass_user_email',
- help='compass user email',
- default='admin@huawei.com')
-flags.add('compass_user_password',
- help='compass user password',
- default='admin')
-
-
-class CallbackModule(CallbackBase):
- CALLBACK_VERSION = 2.0
- CALLBACK_TYPE = 'notification'
- CALLBACK_NAME = 'playbook_done'
- CALLBACK_NEEDS_WHITELIST = True
-
- def __init__(self):
- super(CallbackModule, self).__init__()
-
- self.play = None
- self.loader = None
- self.disabled = False
- try:
- self.client = self._get_client()
- except Exception:
- self.disabled = True
- self._display.error("No compass server found"
- "disabling this plugin")
-
- def _get_client(self):
- return Client(flags.OPTIONS.compass_server)
-
- def _login(self, client):
- """get apiclient token."""
- status, resp = client.get_token(
- flags.OPTIONS.compass_user_email,
- flags.OPTIONS.compass_user_password
- )
- self._display.warning(
- 'login status: %s, resp: %s' %
- (status, resp)
- )
- if status >= 400:
- raise Exception(
- 'failed to login %s with user %s',
- flags.OPTIONS.compass_server,
- flags.OPTIONS.compass_user_email
- )
- return resp['token']
-
- def v2_playbook_on_play_start(self, play):
- self.play = play
- self.loader = self.play.get_loader()
- return
-
- def v2_playbook_on_stats(self, stats):
- all_vars = self.play.get_variable_manager().get_vars(self.loader)
- host_vars = all_vars["hostvars"]
- hosts = sorted(stats.processed.keys())
- cluster_name = host_vars[hosts[0]]['cluster_name']
- self._display.warning("cluster_name %s" % cluster_name)
-
- failures = False
- unreachable = False
-
- for host in hosts:
- summary = stats.summarize(host)
-
- if summary['failures'] > 0:
- failures = True
- if summary['unreachable'] > 0:
- unreachable = True
-
- if failures or unreachable:
- return