Index: trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp	(revision 73554)
+++ trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp	(revision 73571)
@@ -1,5 +1,5 @@
 /* $Id$ */
 /** @file
- * ICloudUserProfileManager  COM class implementations.
+ * ICloudProviderManager  COM class implementations.
  */
 
@@ -36,23 +36,23 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-// CloudUserProfileManager constructor / destructor
+// CloudProviderManager constructor / destructor
 //
 // ////////////////////////////////////////////////////////////////////////////////
-CloudUserProfileManager::CloudUserProfileManager()
+CloudProviderManager::CloudProviderManager()
     : mParent(NULL)
 {
 }
 
-CloudUserProfileManager::~CloudUserProfileManager()
-{
-}
-
-
-HRESULT CloudUserProfileManager::FinalConstruct()
+CloudProviderManager::~CloudProviderManager()
+{
+}
+
+
+HRESULT CloudProviderManager::FinalConstruct()
 {
     return BaseFinalConstruct();
 }
 
-void CloudUserProfileManager::FinalRelease()
+void CloudProviderManager::FinalRelease()
 {
     uninit();
@@ -61,5 +61,5 @@
 }
 
-HRESULT CloudUserProfileManager::init(VirtualBox *aParent)
+HRESULT CloudProviderManager::init(VirtualBox *aParent)
 {
     /* Enclose the state transition NotReady->InInit->Ready */
@@ -75,9 +75,9 @@
     ExtPackManager *pExtPackMgr = aParent->i_getExtPackManager();
     std::vector<ComPtr<IUnknown> > Objects;
-    com::Guid idObj(COM_IIDOF(ICloudUserProfileManager));
+    com::Guid idObj(COM_IIDOF(ICloudProviderManager));
     pExtPackMgr->i_queryObjects(idObj.toString(), Objects);
     for (unsigned i = 0; i < Objects.size(); i++)
     {
-        ComPtr<ICloudUserProfileManager> ptrTmp;
+        ComPtr<ICloudProviderManager> ptrTmp;
         HRESULT hrc = Objects[i].queryInterfaceTo(ptrTmp.asOutParam());
         if (SUCCEEDED(hrc))
@@ -87,5 +87,6 @@
 
     mSupportedProviders.clear();
-    mSupportedProviders.push_back(CloudProviderId_OCI);
+    mSupportedProviders.push_back("OCI");
+
 #endif
 
@@ -94,5 +95,5 @@
 }
 
-void CloudUserProfileManager::uninit()
+void CloudProviderManager::uninit()
 {
     /* Enclose the state transition Ready->InUninit->NotReady */
@@ -104,5 +105,5 @@
 }
 
-HRESULT CloudUserProfileManager::getSupportedProviders(std::vector<CloudProviderId_T> &aSupportedProviders)
+HRESULT CloudProviderManager::getSupportedProviders(std::vector<Utf8Str> &aSupportedProviders)
 {
 #ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
@@ -113,5 +114,5 @@
     for (unsigned i = 0; i < mUserProfileManagers.size(); i++)
     {
-        SafeArray<CloudProviderId_T> FromCurrent;
+        SafeArray<Utf8Str> FromCurrent;
         HRESULT hrc2 = mUserProfileManagers[i]->COMGETTER(SupportedProviders)(ComSafeArrayAsOutParam(FromCurrent));
         if (SUCCEEDED(hrc2))
@@ -130,5 +131,5 @@
 }
 
-HRESULT CloudUserProfileManager::getAllProfiles(std::vector<ComPtr<ICloudUserProfiles> > &aProfilesList)
+HRESULT CloudProviderManager::getAllProfiles(std::vector<ComPtr<ICloudProvider> > &aProfilesList)
 {
 #ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
@@ -139,5 +140,5 @@
     for (unsigned i = 0; i < mUserProfileManagers.size(); i++)
     {
-        SafeIfaceArray<ICloudUserProfiles> FromCurrent;
+        SafeIfaceArray<ICloudProvider> FromCurrent;
         HRESULT hrc2 = mUserProfileManagers[i]->GetAllProfiles(ComSafeArrayAsOutParam(FromCurrent));
         if (SUCCEEDED(hrc2))
@@ -153,8 +154,8 @@
 #else
     HRESULT hrc = S_OK;
-    std::vector<ComPtr<ICloudUserProfiles> > lProfilesList;
+    std::vector<ComPtr<ICloudProvider> > lProfilesList;
     for (size_t i=0;i<mSupportedProviders.size();++i)
     {
-        ComPtr<ICloudUserProfiles> lProfiles;
+        ComPtr<ICloudProvider> lProfiles;
         hrc = getProfilesByProvider(mSupportedProviders.at(i), lProfiles);
         if (FAILED(hrc))
@@ -171,6 +172,6 @@
 }
 
-HRESULT CloudUserProfileManager::getProfilesByProvider(CloudProviderId_T aProviderType,
-                                                       ComPtr<ICloudUserProfiles> &aProfiles)
+HRESULT CloudProviderManager::getProfilesByProvider(const com::Utf8Str &aProviderName,
+                                                    ComPtr<ICloudProvider> &aProfiles)
 {
 #ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
@@ -189,50 +190,47 @@
 #else
 
-    ComObjPtr<CloudUserProfiles> ptrCloudUserProfiles;
-    HRESULT hrc = ptrCloudUserProfiles.createObject();
-    switch(aProviderType)
-    {
-        case CloudProviderId_OCI:
-        default:
-            ComObjPtr<OCIUserProfiles> ptrOCIUserProfiles;
-            hrc = ptrOCIUserProfiles.createObject();
+    ComObjPtr<CloudProvider> ptrCloudProvider;
+    HRESULT hrc = ptrCloudProvider.createObject();
+    if (aProviderName.equals("OCI"))
+    {
+        ComObjPtr<OCIUserProfiles> ptrOCIUserProfiles;
+        hrc = ptrOCIUserProfiles.createObject();
+        if (SUCCEEDED(hrc))
+        {
+            AutoReadLock wlock(this COMMA_LOCKVAL_SRC_POS);
+
+            hrc = ptrOCIUserProfiles->init(mParent);
             if (SUCCEEDED(hrc))
             {
-                AutoReadLock wlock(this COMMA_LOCKVAL_SRC_POS);
-
-                hrc = ptrOCIUserProfiles->init(mParent);
-                if (SUCCEEDED(hrc))
+                char szOciConfigPath[RTPATH_MAX];
+                int vrc = RTPathUserHome(szOciConfigPath, sizeof(szOciConfigPath));
+                if (RT_SUCCESS(vrc))
+                    vrc = RTPathAppend(szOciConfigPath, sizeof(szOciConfigPath), ".oci" RTPATH_SLASH_STR "config");
+                if (RT_SUCCESS(vrc))
                 {
-                    char szOciConfigPath[RTPATH_MAX];
-                    int vrc = RTPathUserHome(szOciConfigPath, sizeof(szOciConfigPath));
-                    if (RT_SUCCESS(vrc))
-                        vrc = RTPathAppend(szOciConfigPath, sizeof(szOciConfigPath), ".oci" RTPATH_SLASH_STR "config");
-                    if (RT_SUCCESS(vrc))
+                    LogRel(("config = %s\n", szOciConfigPath));
+                    if (RTFileExists(szOciConfigPath))
                     {
-                        LogRel(("config = %s\n", szOciConfigPath));
-                        if (RTFileExists(szOciConfigPath))
-                        {
-                            hrc = ptrOCIUserProfiles->readProfiles(szOciConfigPath);
-                            if (SUCCEEDED(hrc))
-                                LogRel(("Reading profiles from %s has been done\n", szOciConfigPath));
-                            else
-                                LogRel(("Reading profiles from %s hasn't been done\n", szOciConfigPath));
-
-                            ptrCloudUserProfiles = ptrOCIUserProfiles;
-                            hrc = ptrCloudUserProfiles.queryInterfaceTo(aProfiles.asOutParam());
-                        }
+                        hrc = ptrOCIUserProfiles->readProfiles(szOciConfigPath);
+                        if (SUCCEEDED(hrc))
+                            LogRel(("Reading profiles from %s has been done\n", szOciConfigPath));
                         else
-                            hrc = setErrorBoth(E_FAIL, VERR_FILE_NOT_FOUND, tr("Could not locate the config file '%s'"),
-                                               szOciConfigPath);
+                            LogRel(("Reading profiles from %s hasn't been done\n", szOciConfigPath));
+
+                        ptrCloudProvider = ptrOCIUserProfiles;
+                        hrc = ptrCloudProvider.queryInterfaceTo(aProfiles.asOutParam());
                     }
                     else
-                        hrc = setErrorVrc(vrc);
+                        hrc = setErrorBoth(E_FAIL, VERR_FILE_NOT_FOUND, tr("Could not locate the config file '%s'"),
+                                           szOciConfigPath);
                 }
+                else
+                    hrc = setErrorVrc(vrc);
             }
-            break;
-    }
-
-    return hrc;
-#endif
-}
-
+        }
+    }
+
+    return hrc;
+#endif
+}
+
Index: trunk/src/VBox/Main/src-server/CloudUserProfilesImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-server/CloudUserProfilesImpl.cpp	(revision 73554)
+++ trunk/src/VBox/Main/src-server/CloudUserProfilesImpl.cpp	(revision 73571)
@@ -1,5 +1,5 @@
 /* $Id$ */
 /** @file
- * ICloudUserProfiles COM class implementations.
+ * ICloudProvider COM class implementations.
  */
 
@@ -210,24 +210,24 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-// ICloudUserProfiles implementation
+// ICloudProvider implementation
 //
 ////////////////////////////////////////////////////////////////////////////////
-CloudUserProfiles::CloudUserProfiles()
+CloudProvider::CloudProvider()
     : mParent(NULL)
 {
 }
 
-CloudUserProfiles::~CloudUserProfiles()
-{
-    LogRel(("CloudUserProfilesImpl::~CloudUserProfilesImpl()\n"));
+CloudProvider::~CloudProvider()
+{
+    LogRel(("CloudProvider::~CloudProvider()\n"));
     unconst(mParent) = NULL;
 }
 
-HRESULT CloudUserProfiles::FinalConstruct()
+HRESULT CloudProvider::FinalConstruct()
 {
     return BaseFinalConstruct();
 }
 
-void CloudUserProfiles::FinalRelease()
+void CloudProvider::FinalRelease()
 {
     uninit();
@@ -236,5 +236,5 @@
 }
 
-void CloudUserProfiles::uninit()
+void CloudProvider::uninit()
 {
     /* Enclose the state transition Ready->InUninit->NotReady */
@@ -246,5 +246,5 @@
 }
 
-HRESULT CloudUserProfiles::init(VirtualBox *aParent)
+HRESULT CloudProvider::init(VirtualBox *aParent)
 {
     /* Enclose the state transition NotReady->InInit->Ready */
@@ -259,53 +259,53 @@
 
 
-HRESULT CloudUserProfiles::getSupportedPropertiesNames(std::vector<com::Utf8Str> &aPropertiesNames)
-{
-    LogRel(("CloudUserProfiles::getSupportedPropertiesNames:\n"));
+HRESULT CloudProvider::getSupportedPropertiesNames(std::vector<com::Utf8Str> &aPropertiesNames)
+{
+    LogRel(("CloudProvider::getSupportedPropertiesNames:\n"));
     aPropertiesNames.clear();
     return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
 }
 
-HRESULT CloudUserProfiles::readProfiles(const Utf8Str &strConfigPath)
-{
-    LogRel(("CloudUserProfiles::readProfiles: %s\n", strConfigPath.c_str()));
-    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
-}
-
-HRESULT CloudUserProfiles::getProvider(CloudProviderId_T *aProvider)
+HRESULT CloudProvider::readProfiles(const Utf8Str &strConfigPath)
+{
+    LogRel(("CloudProvider::readProfiles: %s\n", strConfigPath.c_str()));
+    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
+}
+
+HRESULT CloudProvider::getProvider(CloudProviderId_T *aProvider)
 {
     *aProvider = CloudProviderId_Unknown;
-    LogRel(("CloudUserProfiles::getProvider: %d\n", *aProvider));
-    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
-}
-
-HRESULT CloudUserProfiles::createProfile(const com::Utf8Str &aProfileName,
+    LogRel(("CloudProvider::getProvider: %d\n", *aProvider));
+    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
+}
+
+HRESULT CloudProvider::createProfile(const com::Utf8Str &aProfileName,
                                             const std::vector<com::Utf8Str> &aNames,
                                             const std::vector<com::Utf8Str> &aValues)
 {
-    LogRel(("CloudUserProfiles::createProfile: %s, %d, %d\n", aProfileName.c_str(), aNames.size(), aValues.size()));
-    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
-}
-
-HRESULT CloudUserProfiles::updateProfile(const com::Utf8Str &aProfileName,
+    LogRel(("CloudProvider::createProfile: %s, %d, %d\n", aProfileName.c_str(), aNames.size(), aValues.size()));
+    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
+}
+
+HRESULT CloudProvider::updateProfile(const com::Utf8Str &aProfileName,
                                             const std::vector<com::Utf8Str> &aNames,
                                             const std::vector<com::Utf8Str> &aValues)
 {
-    LogRel(("CloudUserProfiles::updateProfile: %s, %d, %d\n", aProfileName.c_str(), aNames.size(), aValues.size()));
-    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
-}
-
-HRESULT CloudUserProfiles::getStoredProfilesNames(std::vector<com::Utf8Str> &aProfilesNames)
-{
-
-    LogRel(("CloudUserProfiles::getStoredProfilesNames:\n"));
+    LogRel(("CloudProvider::updateProfile: %s, %d, %d\n", aProfileName.c_str(), aNames.size(), aValues.size()));
+    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
+}
+
+HRESULT CloudProvider::getStoredProfilesNames(std::vector<com::Utf8Str> &aProfilesNames)
+{
+
+    LogRel(("CloudProvider::getStoredProfilesNames:\n"));
     aProfilesNames.clear();
     return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
 }
 
-HRESULT CloudUserProfiles::getProfileProperties(const com::Utf8Str &aProfileName,
+HRESULT CloudProvider::getProfileProperties(const com::Utf8Str &aProfileName,
                                               std::vector<com::Utf8Str> &aReturnNames,
                                               std::vector<com::Utf8Str> &aReturnValues)
 {
-    LogRel(("CloudUserProfiles::getProfileProperties: %s\n", aProfileName.c_str()));
+    LogRel(("CloudProvider::getProfileProperties: %s\n", aProfileName.c_str()));
     aReturnNames.clear();
     aReturnValues.clear();
@@ -313,15 +313,15 @@
 }
 
-HRESULT CloudUserProfiles::getPropertyDescription(const com::Utf8Str &aName,
+HRESULT CloudProvider::getPropertyDescription(const com::Utf8Str &aName,
                                                      com::Utf8Str &aDescription)
 {
-    LogRel(("CloudUserProfiles::getPropertyDescription: %s, %s\n", aName.c_str(), aDescription.c_str()));
-    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
-}
-
-HRESULT CloudUserProfiles::createCloudClient(const com::Utf8Str &aProfileName,
+    LogRel(("CloudProvider::getPropertyDescription: %s, %s\n", aName.c_str(), aDescription.c_str()));
+    return setErrorBoth(E_FAIL, VERR_NOT_IMPLEMENTED, tr("Not implemented"));
+}
+
+HRESULT CloudProvider::createCloudClient(const com::Utf8Str &aProfileName,
                                                 ComPtr<ICloudClient> &aCloudClient)
 {
-    LogRel(("CloudUserProfiles::createCloudClient: %s\n", aProfileName.c_str()));
+    LogRel(("CloudProvider::createCloudClient: %s\n", aProfileName.c_str()));
 
     if (aCloudClient.isNull())
Index: trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp	(revision 73554)
+++ trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp	(revision 73571)
@@ -1820,14 +1820,14 @@
 }
 
-HRESULT VirtualBox::createCloudUserProfileManager(ComPtr<ICloudUserProfileManager> &aManager)
-{
-    ComObjPtr<CloudUserProfileManager> ptrCloudUserProfileManager;
-    HRESULT hrc = ptrCloudUserProfileManager.createObject();
+HRESULT VirtualBox::createCloudProviderManager(ComPtr<ICloudProviderManager> &aManager)
+{
+    ComObjPtr<CloudProviderManager> ptrCloudProviderManager;
+    HRESULT hrc = ptrCloudProviderManager.createObject();
     if (SUCCEEDED(hrc))
     {
         AutoReadLock wlock(this COMMA_LOCKVAL_SRC_POS);
-        hrc = ptrCloudUserProfileManager->init(this);
+        hrc = ptrCloudProviderManager->init(this);
         if (SUCCEEDED(hrc))
-            hrc = ptrCloudUserProfileManager.queryInterfaceTo(aManager.asOutParam());
+            hrc = ptrCloudProviderManager.queryInterfaceTo(aManager.asOutParam());
     }
     return hrc;
