def test_get_private_registry_config_ecr(self, mock_requests): registry = {} image = "test.com/test/test" docker_config, name, create = App()._get_private_registry_config( image, registry) self.assertEqual(docker_config, None) self.assertEqual(name, "private-registry-ecr") self.assertEqual(create, False)
def test_get_private_registry_config_bad_registry_location( self, mock_requests): registry = {} image = "test.com/test/test" docker_config, name, create = App()._get_private_registry_config( image, registry) self.assertEqual(docker_config, None) self.assertEqual(name, None) self.assertEqual(create, None)
def test_get_private_registry_config_off_cluster(self, mock_requests): registry = {} auth = bytes('{}:{}'.format("test", "test"), 'UTF-8') encAuth = base64.b64encode(auth).decode(encoding='UTF-8') image = "test.com/test/test" docker_config, name, create = App()._get_private_registry_config( image, registry) dockerConfig = json.loads(docker_config) expected = {"https://index.docker.io/v1/": {"auth": encAuth}} self.assertEqual(dockerConfig.get('auths'), expected) self.assertEqual(name, "private-registry-off-cluster") self.assertEqual(create, True)
def test_get_private_registry_config(self, mock_requests): registry = {'username': '******', 'password': '******'} auth = bytes('{}:{}'.format("test", "test"), 'UTF-8') encAuth = base64.b64encode(auth).decode(encoding='UTF-8') image = 'test/test' docker_config, name, create = App()._get_private_registry_config( image, registry) dockerConfig = json.loads(docker_config) expected = {"https://index.docker.io/v1/": {"auth": encAuth}} self.assertEqual(dockerConfig.get('auths'), expected) self.assertEqual(name, "private-registry") self.assertEqual(create, True) image = "quay.io/test/test" docker_config, name, create = App()._get_private_registry_config( image, registry) dockerConfig = json.loads(docker_config) expected = {"quay.io": {"auth": encAuth}} self.assertEqual(dockerConfig.get('auths'), expected) self.assertEqual(name, "private-registry") self.assertEqual(create, True)
def scale_horizontally(): #TODO find a better way to initiate app creation for app_id in settings.GLOBAL_SETTINGS['APPS']: try: App.objects.get(app_id=app_id) except ObjectDoesNotExist: temp = App(app_id=app_id) temp.save() total_combinations = optimizer.permutate() print total_combinations predicted_workload = workload_predictor.predict() print predicted_workload selected_combinations = optimizer.optimize(total_combinations, predicted_workload) print selected_combinations