Skip to content
This repository has been archived by the owner on Feb 2, 2018. It is now read-only.

Kubernetes container handler #68

Merged
merged 22 commits into from Dec 8, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
b4cbcd8
containermgr: Added _fix_path to kubernetes handler.
ashcrow Dec 6, 2016
7c06d35
containermgr: Added _put to kubernetes handler.
ashcrow Dec 6, 2016
299fecb
containermgr: Added ContainerManagerError base exception class.
ashcrow Dec 7, 2016
f553aad
containermgr: Added register_node to kubernetes handler.
ashcrow Dec 6, 2016
5d04eb3
containermgr: Added remove_node to kubernetes handler.
ashcrow Dec 7, 2016
e39b29a
containermgr: Added get_node_status to kubernetes handler.
ashcrow Dec 7, 2016
2e83bba
doc: api docs for containermgr/service.
ashcrow Dec 7, 2016
60b1011
fixup! containermgr: Added _fix_path to kubernetes handler.
ashcrow Dec 7, 2016
7a3a5e8
fixup! containermgr: Added _put to kubernetes handler.
ashcrow Dec 7, 2016
dae9aff
fixup! containermgr: Added register_node to kubernetes handler.
ashcrow Dec 7, 2016
f59001c
fixup! containermgr: Added register_node to kubernetes handler.
ashcrow Dec 7, 2016
6d20245
fixup! containermgr: Added ContainerManagerError base exception class.
ashcrow Dec 7, 2016
24b5ac1
fixup! containermgr: Added remove_node to kubernetes handler.
ashcrow Dec 7, 2016
96b564c
fixup! containermgr: Added get_node_status to kubernetes handler.
ashcrow Dec 7, 2016
131864a
containermgr: Updated node_registered to work like other methods.
ashcrow Dec 7, 2016
2b7ca59
test: Fix tests for the kubernetes containermgr.
ashcrow Dec 7, 2016
83e3a74
fixup! containermgr: Updated node_registered to work like other methods.
ashcrow Dec 8, 2016
866776f
vagrant: Auto starting commissaire-containermgr
ashcrow Dec 8, 2016
0b4aa3d
fixup! containermgr: Added register_node to kubernetes handler.
ashcrow Dec 8, 2016
0baf7fc
fixup! containermgr: Added remove_node to kubernetes handler.
ashcrow Dec 8, 2016
e8abc82
fixup! containermgr: Added get_node_status to kubernetes handler.
ashcrow Dec 8, 2016
7554b75
fixup! containermgr: Updated node_registered to work like other methods.
ashcrow Dec 8, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 25 additions & 0 deletions src/commissaire/containermgr/kubernetes/__init__.py
Expand Up @@ -16,6 +16,7 @@
The kubernetes container manager package.
"""

import json
import requests

from urllib.parse import urljoin, urlparse
Expand Down Expand Up @@ -129,6 +130,30 @@ def _get(self, part, *args, **kwargs):
part, resp.status_code))
return resp

def _put(self, part, payload, *args, **kwargs):
"""
Put data to the Kubernetes apiserver.

:param part: The URI part. EG: /nodes
:type part: str
::param payload: Data to send with the PUT.
:type payload: dict
:param args: All other non-keyword arguments.
:type args: tuple
:param kwargs: All other keyword arguments.
:type kwargs: dict
:returns: requests.Response
"""
part = self._fix_part(part)
payload = json.dumps(payload)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Type-flipping is kinda sneaky; I'd prefer a different name, like payload_str.

self.logger.debug('Executing PUT for {}. Payload={}'.format(
part, payload))
resp = self.con.put(
'{}{}'.format(self.base_uri, part), data=payload, *args, **kwargs)
self.logger.debug('Response for {}. Status: {}'.format(
part, resp.status_code))
return resp

def node_registered(self, name):
"""
Checks is a node was registered.
Expand Down
11 changes: 11 additions & 0 deletions test/test_containermgr_kubernetes.py
Expand Up @@ -73,6 +73,17 @@ def test__get(self):
self.instance.con.get.assert_called_once_with(
CONTAINER_MGR_CONFIG['server_url'] + 'api/v1/test')

def test__put(self):
"""
Verify _put makes proper HTTP requests.
"""
expected = {'test': 'test'}
self.instance.con = mock.MagicMock()
self.instance._put('test', expected)
self.instance.con.put.assert_called_once_with(
CONTAINER_MGR_CONFIG['server_url'] + 'api/v1/test',
data=json.dumps(expected))

def test_node_registered(self):
"""
Verify node_registered makes the proper remote call and returns the proper result.
Expand Down