def test_00_create_upload(self): """Test creating an upload for each provider""" for p in list_providers(self.config["upload"]): print(p) upload = create_upload(self.config["upload"], p, "test-image", test_profiles[p][1]) summary = upload.summary() self.assertEqual(summary["provider_name"], p) self.assertEqual(summary["image_name"], "test-image") self.assertTrue(summary["status"], "WAITING") self.upload_uuids.append(summary["uuid"]) self.assertTrue(len(self.upload_uuids) > 0) self.assertTrue(len(self.upload_uuids), len(list_providers(self.config["upload"])))
def test_resolve_provider(self): for p in list_providers(self.config["upload"]): print(p) info = resolve_provider(self.config["upload"], p) self.assertTrue("display" in info) self.assertTrue("supported_types" in info) self.assertTrue("settings-info" in info)
def test_save_settings(self): """Test saving profiles""" for p in list_providers(self.config["upload"]): print(p) save_settings(self.config["upload"], p, test_profiles[p][0], test_profiles[p][1]) profile_dir = joinpaths(self.config.get("upload", "settings_dir"), p, test_profiles[p][0] + ".toml") self.assertTrue(os.path.exists(profile_dir))
def v1_upload_providers(): """Return the information about all upload providers, including their display names, expected settings, and saved profiles. Refer to the `resolve_provider` function. **GET /api/v1/upload/providers** Example response:: { "providers": { "azure": { "display": "Azure", "profiles": { "default": { "client_id": "example", ... } }, "settings-info": { "client_id": { "display": "Client ID", "placeholder": "", "regex": "", "type": "string" }, ... }, "supported_types": ["vhd"] }, ... } } """ ucfg = api.config["COMPOSER_CFG"]["upload"] provider_names = list_providers(ucfg) def get_provider_info(provider_name): provider = resolve_provider(ucfg, provider_name) provider["profiles"] = load_profiles(ucfg, provider_name) return provider providers = { provider_name: get_provider_info(provider_name) for provider_name in provider_names } return jsonify(status=True, providers=providers)
def test_validate_settings(self): for p in list_providers(self.config["upload"]): print(p) validate_settings(self.config["upload"], p, test_profiles[p][1])
def test_resolve_playbook_path(self): for p in list_providers(self.config["upload"]): print(p) self.assertTrue( len(resolve_playbook_path(self.config["upload"], p)) > 0)
def test_list_providers(self): p = list_providers(self.config["upload"]) self.assertEqual(p, ['aws', 'dummy', 'openstack', 'vsphere'])
def test_zz_load_settings(self): """Test loading settings""" for p in list_providers(self.config["upload"]): settings = load_settings(self.config["upload"], p, test_profiles[p][0]) self.assertEqual(settings, test_profiles[p][1])
def test_zz_load_profiles(self): """Test loading profiles""" for p in list_providers(self.config["upload"]): print(p) profile = load_profiles(self.config["upload"], p) self.assertTrue(test_profiles[p][0] in profile)
def test_01_get_all_uploads(self): """Test listing all the uploads""" uploads = get_all_uploads(self.config["upload"]) # Should be one upload per provider providers = sorted([u.provider_name for u in uploads]) self.assertEqual(providers, list_providers(self.config["upload"]))