Added Check Modulation
Change-Id: I4796892b1a8af06c65ee014c796a3d46a38e0ae6
This commit is contained in:
69
surveilclient/tests/v2_0/config/test_checkmodulations.py
Normal file
69
surveilclient/tests/v2_0/config/test_checkmodulations.py
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# Copyright 2015 - Savoir-Faire Linux inc.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
import json
|
||||||
|
|
||||||
|
import httpretty
|
||||||
|
|
||||||
|
from surveilclient.tests.v2_0 import clienttest
|
||||||
|
|
||||||
|
|
||||||
|
class TestCheckModulations(clienttest.ClientTest):
|
||||||
|
@httpretty.activate
|
||||||
|
def test_create(self):
|
||||||
|
httpretty.register_uri(
|
||||||
|
httpretty.POST, "http://localhost:8080/v2/config/checkmodulations",
|
||||||
|
body='{"message": "Ack received!"}')
|
||||||
|
|
||||||
|
self.client.config.checkmodulations.create(
|
||||||
|
check_command='test',
|
||||||
|
check_period='test',
|
||||||
|
checkmodulation_name='test'
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
json.loads(httpretty.last_request().body.decode()),
|
||||||
|
{"checkmodulation_name": "test",
|
||||||
|
"check_command": "test",
|
||||||
|
"check_period": "test"}
|
||||||
|
)
|
||||||
|
|
||||||
|
@httpretty.activate
|
||||||
|
def test_list(self):
|
||||||
|
httpretty.register_uri(
|
||||||
|
httpretty.GET, "http://localhost:8080/v2/config/checkmodulations",
|
||||||
|
body='[{"checkmodulation_name": "test","check_command": "test",'
|
||||||
|
'"check_period": "test"}]'
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
self.client.config.checkmodulations.list(),
|
||||||
|
[{"checkmodulation_name": "test",
|
||||||
|
"check_command": "test", "check_period": "test"}]
|
||||||
|
)
|
||||||
|
|
||||||
|
@httpretty.activate
|
||||||
|
def test_delete(self):
|
||||||
|
httpretty.register_uri(
|
||||||
|
httpretty.DELETE, "http://localhost:8080/v2/config/"
|
||||||
|
"checkmodulations/checkmodulation_to_delete",
|
||||||
|
body='body')
|
||||||
|
|
||||||
|
body = self.client.config.checkmodulations.delete(
|
||||||
|
checkmodulation_name='checkmodulation_to_delete'
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
body,
|
||||||
|
"body"
|
||||||
|
)
|
@@ -13,6 +13,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from surveilclient.common import surveil_manager
|
from surveilclient.common import surveil_manager
|
||||||
|
from surveilclient.v2_0.config import checkmodulations
|
||||||
from surveilclient.v2_0.config import hosts
|
from surveilclient.v2_0.config import hosts
|
||||||
from surveilclient.v2_0.config import services
|
from surveilclient.v2_0.config import services
|
||||||
|
|
||||||
@@ -24,6 +25,8 @@ class ConfigManager(surveil_manager.SurveilManager):
|
|||||||
super(ConfigManager, self).__init__(http_client)
|
super(ConfigManager, self).__init__(http_client)
|
||||||
self.hosts = hosts.HostsManager(self.http_client)
|
self.hosts = hosts.HostsManager(self.http_client)
|
||||||
self.services = services.ServicesManager(self.http_client)
|
self.services = services.ServicesManager(self.http_client)
|
||||||
|
self.checkmodulations = checkmodulations.CheckModulationsManager(
|
||||||
|
self.http_client)
|
||||||
|
|
||||||
def reload_config(self):
|
def reload_config(self):
|
||||||
resp, body = self.http_client.json_request(
|
resp, body = self.http_client.json_request(
|
||||||
@@ -31,4 +34,4 @@ class ConfigManager(surveil_manager.SurveilManager):
|
|||||||
'POST',
|
'POST',
|
||||||
body='' # Must send empty body
|
body='' # Must send empty body
|
||||||
)
|
)
|
||||||
return body
|
return body
|
43
surveilclient/v2_0/config/checkmodulations.py
Normal file
43
surveilclient/v2_0/config/checkmodulations.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Copyright 2014-2015 - Savoir-Faire Linux inc.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
from surveilclient.common import surveil_manager
|
||||||
|
|
||||||
|
|
||||||
|
class CheckModulationsManager(surveil_manager.SurveilManager):
|
||||||
|
base_url = '/config/checkmodulations'
|
||||||
|
|
||||||
|
def list(self):
|
||||||
|
"""Get a list of checkmodulations."""
|
||||||
|
resp, body = self.http_client.json_request(
|
||||||
|
CheckModulationsManager.base_url, 'GET'
|
||||||
|
)
|
||||||
|
return body
|
||||||
|
|
||||||
|
def create(self, **kwargs):
|
||||||
|
"""Create a new checkmodulation."""
|
||||||
|
resp, body = self.http_client.json_request(
|
||||||
|
CheckModulationsManager.base_url, 'POST',
|
||||||
|
body=kwargs
|
||||||
|
)
|
||||||
|
return body
|
||||||
|
|
||||||
|
def delete(self, checkmodulation_name):
|
||||||
|
"""Delete a checkmodulation."""
|
||||||
|
resp, body = self.http_client.request(
|
||||||
|
CheckModulationsManager.base_url+"/" + checkmodulation_name,
|
||||||
|
'DELETE',
|
||||||
|
body=''
|
||||||
|
)
|
||||||
|
return body
|
@@ -135,6 +135,45 @@ def do_config_service_delete(sc, args):
|
|||||||
args.service_description)
|
args.service_description)
|
||||||
|
|
||||||
|
|
||||||
|
def do_config_checkmodulation_list(sc, args):
|
||||||
|
"""List all config check modulations."""
|
||||||
|
checkmodulations = sc.config.checkmodulations.list()
|
||||||
|
|
||||||
|
if args.json:
|
||||||
|
print(utils.json_formatter(checkmodulations))
|
||||||
|
else:
|
||||||
|
cols = [
|
||||||
|
'check_command',
|
||||||
|
'check_period',
|
||||||
|
'checkmodulation_name'
|
||||||
|
]
|
||||||
|
|
||||||
|
formatters = {
|
||||||
|
'check_command': lambda x: x['check_command'],
|
||||||
|
'check_period': lambda x: x['check_period'],
|
||||||
|
'checkmodulation_name': lambda x: x['checkmodulation_name']
|
||||||
|
}
|
||||||
|
utils.print_list(checkmodulations, cols, formatters=formatters)
|
||||||
|
|
||||||
|
|
||||||
|
@cliutils.arg("--check_command")
|
||||||
|
@cliutils.arg("--check_period")
|
||||||
|
@cliutils.arg("--checkmodulation_name")
|
||||||
|
def do_config_checkmodulation_create(sc, args):
|
||||||
|
"""Create a config check modulation."""
|
||||||
|
arg_names = ['check_command',
|
||||||
|
'check_period',
|
||||||
|
'checkmodulation_name']
|
||||||
|
checkmodulation = _dict_from_args(args, arg_names)
|
||||||
|
sc.config.checkmodulations.create(**checkmodulation)
|
||||||
|
|
||||||
|
|
||||||
|
@cliutils.arg("--checkmodulation_name", help="Name of the check modulation")
|
||||||
|
def do_config_checkmodulation_delete(sc, args):
|
||||||
|
"""Create a config check modulation."""
|
||||||
|
sc.config.checkmodulations.delete(args.checkmodulation_name)
|
||||||
|
|
||||||
|
|
||||||
def do_config_reload(sc, args):
|
def do_config_reload(sc, args):
|
||||||
"""Trigger a config reload."""
|
"""Trigger a config reload."""
|
||||||
print(sc.config.reload_config()['message'])
|
print(sc.config.reload_config()['message'])
|
||||||
|
Reference in New Issue
Block a user