class TestRegistrator(): def setup_method(self, method): self.r = Registrator() def test_data_type(self): if type(self.r.data) is not dict: pytest.fail("Invalid type") @patch('json.loads') @patch('httplib.HTTPConnection') def test_register(self, httplibmock, jsonmock): self.r.register('foo', 80, '/v1/test') httplibmock.assert_called_with('foo', 80, timeout=12) requestmock = httplibmock().request requestmock.assert_called_with( "POST", "/v1/test", json.dumps(self.r.data), {"Content-type": "application/json", "Accept": "application/json"}) def test_command_succeeded(self): response = MagicMock() result = json.loads('{"status": "Failure", "kind": "Status", "code": 409, "apiVersion": "v1", "reason": "AlreadyExists", "details": {"kind": "node", "name": "10.200.147.200"}, "message": "node \\"10.200.147.200\\" already exists", "creationTimestamp": null}') # noqa response.status = 200 self.r.command_succeeded(response, result) response.status = 409 self.r.command_succeeded(response, result) response.status = 500 with pytest.raises(RuntimeError): self.r.command_succeeded(response, result)
def setup_method(self, method): self.r = Registrator()
def register_machine(apiserver, retry=False): parsed = urlparse.urlparse(apiserver) # identity = hookenv.local_unit().replace('/', '-') private_address = hookenv.unit_private_ip() with open('/proc/meminfo') as fh: info = fh.readline() mem = info.strip().split(':')[1].strip().split()[0] cpus = os.sysconf('SC_NPROCESSORS_ONLN') registration_request = Registrator() registration_request.data['Kind'] = 'Minion' registration_request.data['id'] = private_address registration_request.data['name'] = private_address registration_request.data['metadata']['name'] = private_address registration_request.data['spec']['capacity']['mem'] = mem + ' K' registration_request.data['spec']['capacity']['cpu'] = cpus registration_request.data['spec']['externalID'] = private_address registration_request.data['status']['hostIP'] = private_address response, result = registration_request.register(parsed.hostname, parsed.port, '/api/v1beta3/nodes') print(response) try: registration_request.command_succeeded(response, result) except ValueError: # This happens when we have already registered # for now this is OK pass
def register_machine(apiserver, retry=False): parsed = urlparse.urlparse(apiserver) # identity = hookenv.local_unit().replace('/', '-') private_address = hookenv.unit_private_ip() with open('/proc/meminfo') as fh: info = fh.readline() mem = info.strip().split(':')[1].strip().split()[0] cpus = os.sysconf('SC_NPROCESSORS_ONLN') # https://github.com/kubernetes/kubernetes/blob/master/docs/admin/node.md registration_request = Registrator() registration_request.data['kind'] = 'Node' registration_request.data['id'] = private_address registration_request.data['name'] = private_address registration_request.data['metadata']['name'] = private_address registration_request.data['spec']['capacity']['mem'] = mem + ' K' registration_request.data['spec']['capacity']['cpu'] = cpus registration_request.data['spec']['externalID'] = private_address registration_request.data['status']['hostIP'] = private_address try: response, result = registration_request.register(parsed.hostname, parsed.port, '/api/v1/nodes') except socket.error: hookenv.status_set('blocked', 'Error communicating with Kubenetes Master') return print(response) try: registration_request.command_succeeded(response, result) except ValueError: # This happens when we have already registered # for now this is OK pass
def register_machine(apiserver, retry=False): parsed = urlparse.urlparse(apiserver) # identity = hookenv.local_unit().replace('/', '-') private_address = hookenv.unit_private_ip() with open("/proc/meminfo") as fh: info = fh.readline() mem = info.strip().split(":")[1].strip().split()[0] cpus = os.sysconf("SC_NPROCESSORS_ONLN") registration_request = Registrator() registration_request.data["Kind"] = "Minion" registration_request.data["id"] = private_address registration_request.data["name"] = private_address registration_request.data["metadata"]["name"] = private_address registration_request.data["spec"]["capacity"]["mem"] = mem + " K" registration_request.data["spec"]["capacity"]["cpu"] = cpus registration_request.data["spec"]["externalID"] = private_address registration_request.data["status"]["hostIP"] = private_address response, result = registration_request.register(parsed.hostname, parsed.port, "/api/v1beta3/nodes") print(response) try: registration_request.command_succeeded(response, result) except ValueError: # This happens when we have already registered # for now this is OK pass