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.
|
||||
|
||||
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 services
|
||||
|
||||
@@ -24,6 +25,8 @@ class ConfigManager(surveil_manager.SurveilManager):
|
||||
super(ConfigManager, self).__init__(http_client)
|
||||
self.hosts = hosts.HostsManager(self.http_client)
|
||||
self.services = services.ServicesManager(self.http_client)
|
||||
self.checkmodulations = checkmodulations.CheckModulationsManager(
|
||||
self.http_client)
|
||||
|
||||
def reload_config(self):
|
||||
resp, body = self.http_client.json_request(
|
||||
@@ -31,4 +34,4 @@ class ConfigManager(surveil_manager.SurveilManager):
|
||||
'POST',
|
||||
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)
|
||||
|
||||
|
||||
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):
|
||||
"""Trigger a config reload."""
|
||||
print(sc.config.reload_config()['message'])
|
||||
|
||||
Reference in New Issue
Block a user