Example #1
0
        public override IEnumerator RunTest()
        {
            LogSystem.InstallDefaultReactors();

            m_IntegrationTestClusterConfigPath    = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_solr_config.zip";
            m_IntegrationTestRankerTrainingPath   = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_training_data.csv";
            m_IntegrationTestRankerAnswerDataPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_answer_data.csv";
            m_IntegrationTestIndexDataPath        = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_data.json";

            m_ExampleClusterID      = Config.Instance.GetVariableValue("RetrieveAndRank_IntegrationTestClusterID");
            m_ExampleConfigName     = Config.Instance.GetVariableValue("RetrieveAndRank_IntegrationTestConfigName");
            m_ExampleRankerID       = Config.Instance.GetVariableValue("RetrieveAndRank_IntegrationTestRankerID");
            m_ExampleCollectionName = Config.Instance.GetVariableValue("RetrieveAndRank_IntegrationTestCollectionName");

            #region delete existing
            ////  Get existing cluster data.
            //Log.Debug("TestRetrieveAndRank", "Getting existing clusters.");
            //m_RetrieveAndRank.GetClusters(OnGetExistingClusters);
            //while (!m_ExistingClusterDataRetrieved)
            //    yield return null;

            ////  get existing config data.
            //Log.Debug("TestRetrieveAndRank", "Getting existing configs.");
            //foreach (ClusterInfo cluster in m_ExistingClusterInfo)
            //    m_RetrieveAndRank.GetClusterConfigs(OnGetExistingConfigs, cluster.Cluster.solr_cluster_id, cluster.Cluster.solr_cluster_id);
            //while (m_NumExistingConfigsProcessed < m_ExistingClusterInfo.Count)
            //    yield return null;

            ////  get existing collection data.
            //Log.Debug("TestRetrieveAndRank", "Getting existing collections.");
            //foreach (ClusterInfo cluster in m_ExistingClusterInfo)
            //    m_RetrieveAndRank.ForwardCollectionRequest(OnGetExistingCollections, cluster.Cluster.solr_cluster_id, CollectionsAction.LIST, null, null, cluster.Cluster.solr_cluster_id);
            //while (m_NumExistingCollectionsProcessed < m_ExistingClusterInfo.Count)
            //    yield return null;

            ////  get existing ranker data.
            //Log.Debug("TestRetrieveAndRank", "Getting existing rankers.");
            //m_RetrieveAndRank.GetRankers(OnGetExistingRankers);
            //while (!m_ExistingRankerDataRetrieved)
            //    yield return null;

            ////  Cleanup old data
            //Log.Debug("TestRetrieveAndRank", "Cleaning existing data.");
            //foreach (ClusterInfo cluster in m_ExistingClusterInfo)
            //{
            //    //  Delete collections
            //    Log.Debug("TestRetriveAndRank", "Attempting to delete extra collections!");
            //    if (cluster.Collections != null && cluster.Collections.Length > 0)
            //        foreach (string collection in cluster.Collections)
            //        {
            //            if (collection == m_CollectionToCreateName)
            //            {
            //                Log.Debug("TestRetrieveAndRank", "Deleting collection {0}.", collection);
            //                m_RetrieveAndRank.ForwardCollectionRequest(OnDeleteExistingCollection, cluster.Cluster.solr_cluster_id, CollectionsAction.DELETE, collection);
            //            }
            //    }

            //    //	Wait before deleting config
            //    m_IsDoneWaiting = false;
            //    Runnable.Run(WaitUp(5f));
            //    while (!m_IsDoneWaiting)
            //        yield return null;

            //    //  Delete config
            //    Log.Debug("TestRetriveAndRank", "Attempting to delete extra configs!");
            //    if (cluster.Configs != null && cluster.Configs.Length > 0)
            //        foreach (string config in cluster.Configs)
            //        {
            //            if (config == m_ConfigToCreateName)
            //            {
            //                Log.Debug("TestRetrieveAndRank", "Deleting config {0}.", config);
            //                m_RetrieveAndRank.DeleteClusterConfig(OnDeleteExistingConfig, cluster.Cluster.solr_cluster_id, config);
            //            }
            //        }

            //    //while (m_NumExistingConfigsProcessed > 0)
            //    //    yield return null;

            //    //	Wait before deleting cluster
            //    m_IsDoneWaiting = false;
            //    Runnable.Run(WaitUp(5f));
            //    while (!m_IsDoneWaiting)
            //        yield return null;

            //    //  Delete cluster
            //    Log.Debug("TestRetriveAndRank", "Attempting to delete extra clusters!");
            //    if (cluster.Cluster.cluster_name == m_ClusterToCreateName)
            //    {
            //        Log.Debug("TestRetrieveAndRank", "Deleting cluster {0}.", cluster.Cluster.solr_cluster_id);
            //        m_RetrieveAndRank.DeleteCluster(OnDeleteExistingCluster, cluster.Cluster.solr_cluster_id);
            //    }
            //}

            //while (m_NumExistingClusters > 0)
            //    yield return null;

            ////	Wait before deleting ranker
            //m_IsDoneWaiting = false;
            //Runnable.Run(WaitUp(5f));
            //while (!m_IsDoneWaiting)
            //    yield return null;

            ////  Delete rankers
            //foreach (RankerInfoPayload ranker in m_ExistingRankers)
            //{
            //    if (ranker.name == m_RankerToCreateName)
            //    {
            //        Log.Debug("TestRetrieveAndRank", "Deleting ranker {0}.", ranker.ranker_id);
            //        m_RetrieveAndRank.DeleteRanker(OnDeleteExistingRanker, ranker.ranker_id);
            //    }
            //}
            #endregion

            //  Get clusters
            Log.Debug("TestRetrieveAndRank", "*** Attempting to get clusters!");
            m_RetrieveAndRank.GetClusters(OnGetClusters);
            while (!m_GetClustersTested)
            {
                yield return(null);
            }

#if TEST_CREATE_DELETE
            //  Create cluster
            Log.Debug("TestRetrieveAndRank", "*** Attempting to create cluster!");
            m_RetrieveAndRank.CreateCluster(OnCreateCluster, m_ClusterToCreateName, "1");
            while (!m_CreateClusterTested)
            {
                yield return(null);
            }
#endif
            //  Get created cluster
            Log.Debug("TestRetrieveAndRank", "*** Attempting to get created cluster {0}!", IsFullTest ? m_CreatedClusterID : m_ExampleClusterID);
            m_RetrieveAndRank.GetCluster(OnGetCluster, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID);
            while (!m_GetClusterTested || !m_IsClusterReady)
            {
                yield return(null);
            }

            //  List cluster configs
            if (!m_ListClusterConfigsTested)
            {
                Log.Debug("TestRetrieveAndRank", "*** Attempting to get cluster configs for {0}!", IsFullTest ? m_CreatedClusterID : m_ExampleClusterID);
                m_RetrieveAndRank.GetClusterConfigs(OnGetClusterConfigs, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID);
                while (!m_ListClusterConfigsTested)
                {
                    yield return(null);
                }
            }

#if TEST_CREATE_DELETE
            //  Upload cluster config
            Log.Debug("TestRetrieveAndRank", "*** Attempting to upload cluster {0} config {1}!", IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, m_ConfigToCreateName);
            m_RetrieveAndRank.UploadClusterConfig(OnUploadClusterConfig, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, m_ConfigToCreateName, m_IntegrationTestClusterConfigPath);
            while (!m_UploadClusterConfigTested)
            {
                yield return(null);
            }
#endif
            //  Get cluster config
            Log.Debug("TestRetrieveAndRank", "*** Attempting to get cluster {0} config {1}!", IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, IsFullTest ? m_ConfigToCreateName : m_ExampleConfigName);
            m_RetrieveAndRank.GetClusterConfig(OnGetClusterConfig, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, IsFullTest ? m_ConfigToCreateName : m_ExampleConfigName);
            while (!m_GetClusterConfigTested)
            {
                yield return(null);
            }
#if TEST_CREATE_DELETE
            //  Create Collection
            Log.Debug("TestRetrieveAndRank", "*** Attempting to create collection!");
            m_RetrieveAndRank.ForwardCollectionRequest(OnCreateCollections, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, CollectionsAction.CREATE, m_CollectionToCreateName, IsFullTest ? m_ConfigToCreateName : m_ExampleConfigName);
            while (!m_CreateCollectionRequestTested)
            {
                yield return(null);
            }
#endif
            //  List Collections
            Log.Debug("TestRetrieveAndRank", "*** Attempting to list collections!");
            if (!m_ListCollectionRequestTested)
            {
                m_RetrieveAndRank.ForwardCollectionRequest(OnListCollections, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, CollectionsAction.LIST);
                while (!m_ListCollectionRequestTested)
                {
                    yield return(null);
                }
            }

#if TEST_CREATE_DELETE
            //  Index documents
            Log.Debug("TestRetrieveAndRank", "*** Attempting to index documents!");
            m_RetrieveAndRank.IndexDocuments(OnIndexDocuments, m_IntegrationTestIndexDataPath, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, m_CollectionToCreateName);
            while (!m_IndexDocumentsTested)
            {
                yield return(null);
            }
#endif

            //  Get rankers
            if (!m_GetRankersTested)
            {
                Log.Debug("TestRetrieveAndRank", "*** Attempting to get rankers!");
                m_RetrieveAndRank.GetRankers(OnGetRankers);
                while (!m_GetRankersTested)
                {
                    yield return(null);
                }
            }

#if TEST_CREATE_DELETE
            //  Create ranker
            Log.Debug("TestRetrieveAndRank", "*** Attempting to create rankers!");
            m_RetrieveAndRank.CreateRanker(OnCreateRanker, m_IntegrationTestRankerTrainingPath, m_RankerToCreateName);
            while (!m_CreateRankerTested)
            {
                yield return(null);
            }
#endif
            //  Get ranker info
            Log.Debug("TestRetrieveAndRank", "*** Attempting to get Ranker Info!");
            m_RetrieveAndRank.GetRanker(OnGetRanker, IsFullTest ? m_CreatedRankerID : m_ExampleRankerID);
            while (!m_GetRankerInfoTested || !m_IsRankerReady)
            {
                yield return(null);
            }

            //  Rank
            Log.Debug("TestRetrieveAndRank", "*** Attempting to rank!");
            m_RetrieveAndRank.Rank(OnRank, IsFullTest ? m_CreatedRankerID : m_ExampleRankerID, m_IntegrationTestRankerAnswerDataPath);
            while (!m_RankTested)
            {
                yield return(null);
            }

            //  Standard Search
            Log.Debug("TestRetrieveAndRank", "*** Attempting to search!");
            m_RetrieveAndRank.Search(OnStandardSearch, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, IsFullTest ? m_CollectionToCreateName : m_ExampleCollectionName, m_IntegrationTestQuery, m_Fl);
            while (!m_StandardSearchTested)
            {
                yield return(null);
            }

            //  Ranked Search
            //Log.Debug("TestRetrieveAndRank", "*** Attempting to search!");
            //m_RetrieveAndRank.Search(OnRankedSearch, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, IsFullTest ? m_CollectionToCreateName : m_ExampleCollectionName, m_IntegrationTestQuery, m_Fl, true, m_ExampleRankerID);
            //while (!m_RankedSearchTested)
            //    yield return null;

#if TEST_CREATE_DELETE
            //	Wait before deleting ranker
            Runnable.Run(WaitUp(5f));
            while (!m_IsDoneWaiting)
            {
                yield return(null);
            }

            //  Delete ranker
            if (!m_DeleteRankersTested)
            {
                Log.Debug("ExampleRetriveAndRank", "*** Attempting to delete ranker {0}, {1}!", m_RankerToCreateName, m_CreatedRankerID);
                m_RetrieveAndRank.DeleteRanker(OnDeleteRanker, m_CreatedRankerID);
                while (!m_DeleteRankersTested)
                {
                    yield return(null);
                }
            }

            //	Wait before deleting collection
            m_IsDoneWaiting = false;
            Runnable.Run(WaitUp(5f));
            while (!m_IsDoneWaiting)
            {
                yield return(null);
            }

            //  Delete Collection request
            if (!m_DeleteCollectionRequestTested)
            {
                Log.Debug("TestRetrieveAndRank", "*** Attempting to delete collection!");
                m_RetrieveAndRank.ForwardCollectionRequest(OnDeleteCollections, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, CollectionsAction.DELETE, m_CollectionToCreateName);
                while (!m_DeleteCollectionRequestTested)
                {
                    yield return(null);
                }
            }

            //	Wait before deleting config
            m_IsDoneWaiting = false;
            Runnable.Run(WaitUp(5f));
            while (!m_IsDoneWaiting)
            {
                yield return(null);
            }

            //  Delete cluster config
            if (!m_DeleteClusterConfigTested)
            {
                Log.Debug("TestRetrieveAndRank", "** Attempting to delete config {1} from cluster {0}!", IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, m_ConfigToCreateName);
                m_RetrieveAndRank.DeleteClusterConfig(OnDeleteClusterConfig, IsFullTest ? m_CreatedClusterID : m_ExampleClusterID, m_ConfigToCreateName);
                while (!m_DeleteClusterConfigTested)
                {
                    yield return(null);
                }
            }

            //	Wait before deleting cluster
            m_IsDoneWaiting = false;
            Runnable.Run(WaitUp(5f));
            while (!m_IsDoneWaiting)
            {
                yield return(null);
            }

            //  Delete cluster
            if (!m_DeleteClusterTested)
            {
                Log.Debug("TestRetrieveAndRank", "*** Attempting to delete cluster {0}!", m_CreatedClusterID);
                m_RetrieveAndRank.DeleteCluster(OnDeleteCluster, m_CreatedClusterID);
                while (!m_DeleteClusterTested)
                {
                    yield return(null);
                }
            }
#endif
            yield break;
        }
Example #2
0
        public override IEnumerator RunTest()
        {
            LogSystem.InstallDefaultReactors();

            _testClusterConfigName  = "cranfield_solr_config";
            _testClusterConfigPath  = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_solr_config.zip";
            _testRankerTrainingPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_training_data.csv";
            _testAnswerDataPath     = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_answer_data.csv";
            _indexDataPath          = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_data.json";
            _testQuery = "What is the basic mechanisim of the transonic aileron buzz";
            _collectionNameToDelete = "TestCollectionToDelete";
            _createdRankerName      = "RankerToDelete";

            try
            {
                VcapCredentials vcapCredentials = new VcapCredentials();
                fsData          data            = null;

                //  Get credentials from a credential file defined in environmental variables in the VCAP_SERVICES format.
                //  See https://www.ibm.com/watson/developercloud/doc/common/getting-started-variables.html.
                var environmentalVariable = Environment.GetEnvironmentVariable("VCAP_SERVICES");
                var fileContent           = File.ReadAllText(environmentalVariable);

                //  Add in a parent object because Unity does not like to deserialize root level collection types.
                fileContent = Utility.AddTopLevelObjectToJson(fileContent, "VCAP_SERVICES");

                //  Convert json to fsResult
                fsResult r = fsJsonParser.Parse(fileContent, out data);
                if (!r.Succeeded)
                {
                    throw new WatsonException(r.FormattedMessages);
                }

                //  Convert fsResult to VcapCredentials
                object obj = vcapCredentials;
                r = _serializer.TryDeserialize(data, obj.GetType(), ref obj);
                if (!r.Succeeded)
                {
                    throw new WatsonException(r.FormattedMessages);
                }

                //  Set credentials from imported credntials
                Credential credential = vcapCredentials.VCAP_SERVICES["retrieve_and_rank"][TestCredentialIndex].Credentials;
                _username = credential.Username.ToString();
                _password = credential.Password.ToString();
                _url      = credential.Url.ToString();
            }
            catch
            {
                Log.Debug("TestRetrieveAndRank.RunTest()", "Failed to get credentials from VCAP_SERVICES file. Please configure credentials to run this test. For more information, see: https://github.com/watson-developer-cloud/unity-sdk/#authentication");
            }

            //  Create credential and instantiate service
            Credentials credentials = new Credentials(_username, _password, _url);

            //  Or authenticate using token
            //Credentials credentials = new Credentials(_url)
            //{
            //    AuthenticationToken = _token
            //};

            _retrieveAndRank = new RetrieveAndRank(credentials);

            //  Get clusters
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get clusters.");
            if (!_retrieveAndRank.GetClusters(OnGetClusters, OnFail))
            {
                Log.Debug("TestRetrieveAndRank.GetClusters()", "Failed to get clusters!");
            }
            while (!_getClustersTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Create cluster
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to create cluster.");
            if (!_retrieveAndRank.CreateCluster(OnCreateCluster, OnFail, "unity-test-cluster", "1"))
            {
                Log.Debug("TestRetrieveAndRank.CreateCluster()", "Failed to create cluster!");
            }
            while (!_createClusterTested || !_readyToContinue)
            {
                yield return(null);
            }

            //  Wait for cluster status to be `READY`.
            Runnable.Run(CheckClusterStatus(10f));
            while (!_isClusterReady)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  List cluster configs
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get cluster configs.");
            if (!_retrieveAndRank.GetClusterConfigs(OnGetClusterConfigs, OnFail, _clusterToDelete))
            {
                Log.Debug("TestRetrieveAndRank.GetClusterConfigs()", "Failed to get cluster configs!");
            }
            while (!_getClusterConfigsTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Upload cluster config
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to upload cluster config.");
            if (!_retrieveAndRank.UploadClusterConfig(OnUploadClusterConfig, OnFail, _clusterToDelete, _testClusterConfigName, _testClusterConfigPath))
            {
                Log.Debug("TestRetrieveAndRank.UploadClusterConfig()", "Failed to upload cluster config {0}!", _testClusterConfigPath);
            }
            while (!_uploadClusterConfigTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Get cluster
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get cluster.");
            if (!_retrieveAndRank.GetCluster(OnGetCluster, OnFail, _clusterToDelete))
            {
                Log.Debug("TestRetrieveAndRank.GetCluster()", "Failed to get cluster!");
            }
            while (!_getClusterTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Get cluster config
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get cluster config.");
            if (!_retrieveAndRank.GetClusterConfig(OnGetClusterConfig, OnFail, _clusterToDelete, _testClusterConfigName))
            {
                Log.Debug("TestRetrieveAndRank.GetClusterConfig()", "Failed to get cluster config {0}!", _testClusterConfigName);
            }
            while (!_getClusterConfigTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  List Collection request
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get collections.");
            if (!_retrieveAndRank.ForwardCollectionRequest(OnGetCollections, OnFail, _clusterToDelete, CollectionsAction.List))
            {
                Log.Debug("TestRetrieveAndRank.ForwardCollectionRequest()", "Failed to get collections!");
            }
            while (!_getCollectionsTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Create Collection request
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to create collection.");
            if (!_retrieveAndRank.ForwardCollectionRequest(OnCreateCollection, OnFail, _clusterToDelete, CollectionsAction.Create, _collectionNameToDelete, _testClusterConfigName))
            {
                Log.Debug("TestRetrieveAndRank.ForwardCollectionRequest()", "Failed to create collections!");
            }
            while (!_createCollectionTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Index documents
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to index documents.");
            if (!_retrieveAndRank.IndexDocuments(OnIndexDocuments, OnFail, _indexDataPath, _clusterToDelete, _collectionNameToDelete))
            {
                Log.Debug("TestRetrieveAndRank.IndexDocuments()", "Failed to index documents!");
            }
            while (!_indexDocumentsTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Get rankers
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get rankers.");
            if (!_retrieveAndRank.GetRankers(OnGetRankers, OnFail))
            {
                Log.Debug("TestRetrieveAndRank.GetRankers()", "Failed to get rankers!");
            }
            while (!_getRankersTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Create ranker
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to create ranker.");
            if (!_retrieveAndRank.CreateRanker(OnCreateRanker, OnFail, _testRankerTrainingPath, _createdRankerName))
            {
                Log.Debug("TestRetrieveAndRank.CreateRanker()", "Failed to create ranker!");
            }
            while (!_createRankerTested || !_readyToContinue)
            {
                yield return(null);
            }

            //  Wait for ranker status to be `Available`.
            Log.Debug("TestRetrieveAndRank.RunTest()", "Checking ranker status in 10 seconds");
            Runnable.Run(CheckRankerStatus(10f));
            while (!_isRankerReady || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Standard Search
            string[] fl = { "title", "id", "body", "author", "bibliography" };
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to search standard.");
            if (!_retrieveAndRank.Search(OnSearchStandard, OnFail, _clusterToDelete, _collectionNameToDelete, _testQuery, fl))
            {
                Log.Debug("TestRetrieveAndRank.Search()", "Failed to search!");
            }
            while (!_searchStandardTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Rank
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to rank.");
            if (!_retrieveAndRank.Rank(OnRank, OnFail, _rankerIdToDelete, _testAnswerDataPath))
            {
                Log.Debug("TestRetrieveAndRank.Rank()", "Failed to rank!");
            }
            while (!_rankTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Get ranker info
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to get rankers.");
            if (!_retrieveAndRank.GetRanker(OnGetRanker, OnFail, _rankerIdToDelete))
            {
                Log.Debug("TestRetrieveAndRank.GetRanker()", "Failed to get ranker!");
            }
            while (!_getRankerTested)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Delete rankers
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to delete ranker {0}.", _rankerIdToDelete);
            if (!_retrieveAndRank.DeleteRanker(OnDeleteRanker, OnFail, _rankerIdToDelete))
            {
                Log.Debug("TestRetrieveAndRank.DeleteRanker()", "Failed to delete ranker {0}!", _rankerIdToDelete);
            }
            while (!_deleteRankerTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Delete Collection request
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to delete collection {0}.", "TestCollectionToDelete");
            if (!_retrieveAndRank.ForwardCollectionRequest(OnDeleteCollection, OnFail, _clusterToDelete, CollectionsAction.Delete, "TestCollectionToDelete"))
            {
                Log.Debug("TestRetrieveAndRank.ForwardCollectionRequest()", "Failed to delete collections!");
            }
            while (!_deleteCollectionTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Delete cluster config
            string clusterConfigToDelete = "test-config";

            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to delete cluster config.");
            if (!_retrieveAndRank.DeleteClusterConfig(OnDeleteClusterConfig, OnFail, _clusterToDelete, clusterConfigToDelete))
            {
                Log.Debug("TestRetrieveAndRank.DeleteClusterConfig()", "Failed to delete cluster config {0}", clusterConfigToDelete);
            }
            while (!_deleteClusterConfigTested || !_readyToContinue)
            {
                yield return(null);
            }

            _readyToContinue = false;
            //  Delete cluster
            Log.Debug("TestRetrieveAndRank.RunTest()", "Attempting to delete cluster {0}.", _clusterToDelete);
            if (!_retrieveAndRank.DeleteCluster(OnDeleteCluster, OnFail, _clusterToDelete))
            {
                Log.Debug("TestRetrieveAndRank.DeleteCluster()", "Failed to delete cluster!");
            }
            while (!_deleteClusterTested || !_readyToContinue)
            {
                yield return(null);
            }

            Log.Debug("TestRetrieveAndRank.RunTest()", "Retrieve and rank examples complete!");
            yield break;
        }
    void Start()
    {
        LogSystem.InstallDefaultReactors();

        string testClusterID          = Config.Instance.GetVariableValue("RetrieveAndRank_IntegrationTestClusterID");
        string testClusterConfigName  = "cranfield_solr_config";
        string testClusterConfigPath  = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_solr_config.zip";
        string testRankerTrainingPath = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_training_data.csv";
        string testAnswerDataPath     = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/ranker_answer_data.csv";
        string testRankerID           = "3b140ax15-rank-10035";
        string rankerToDelete         = "3b140ax14-rank-10015";
        string indexDataPath          = Application.dataPath + "/Watson/Examples/ServiceExamples/TestData/RetrieveAndRank/cranfield_data.json";
        string testCollectionName     = "test-collection";
        string testQuery = "What is the basic mechanisim of the transonic aileron buzz";

        ////  Get clusters
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get clusters!");
        //if (!m_RetrieveAndRank.GetClusters(OnGetClusters))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get clusters!");

        ////  Create cluster
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to create cluster!");
        //if (!m_RetrieveAndRank.CreateCluster(OnCreateCluster, "unity-test-cluster", "1"))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to create cluster!");

        ////  Delete cluster
        //string clusterToDelete = "scabeadb4c_cd5a_4745_b1b9_156c6292687c";
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to delete cluster {0}!", clusterToDelete);
        //if (!m_RetrieveAndRank.DeleteCluster(OnDeleteCluster, clusterToDelete))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to delete cluster!");

        ////  Get cluster
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster {0}!", testClusterID);
        //if (!m_RetrieveAndRank.GetCluster(OnGetCluster, testClusterID))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster!");

        ////  List cluster configs
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster configs for {0}!", testClusterID);
        //if (!m_RetrieveAndRank.GetClusterConfigs(OnGetClusterConfigs, testClusterID))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster configs!");

        ////  Delete cluster config
        //string clusterConfigToDelete = "test-config";
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to delete cluster {0} config {1}!", testClusterID, clusterConfigToDelete);
        //if (!m_RetrieveAndRank.DeleteClusterConfig(OnDeleteClusterConfig, testClusterID, clusterConfigToDelete))
        //    Log.Debug("ExampleRetriveAndRank", "Failed to delete cluster config {0}", clusterConfigToDelete);

        ////  Get cluster config
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster {0} config {1}!", testClusterID, testClusterConfigName);
        //if (!m_RetrieveAndRank.GetClusterConfig(OnGetClusterConfig, testClusterID, testClusterConfigName))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster config {0}!", testClusterConfigName);

        ////  Upload cluster config
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to upload cluster {0} config {1}!", testClusterID, testClusterConfigName);
        //if (!m_RetrieveAndRank.UploadClusterConfig(OnUploadClusterConfig, testClusterID, testClusterConfigName, testClusterConfigPath))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to upload cluster config {0}!", testClusterConfigPath);

        ////  List Collection request
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to list collections!");
        //if (!m_RetrieveAndRank.ForwardCollectionRequest(OnGetCollections, testClusterID, CollectionsAction.LIST))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get collections!");

        ////  Create Collection request
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to create collection!");
        //if (!m_RetrieveAndRank.ForwardCollectionRequest(OnGetCollections, testClusterID, CollectionsAction.CREATE, "TestCollectionToDelete", testClusterConfigName))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to create collections!");

        ////  Delete Collection request
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to delete collection!");
        //if (!m_RetrieveAndRank.ForwardCollectionRequest(OnGetCollections, testClusterID, CollectionsAction.DELETE, "TestCollectionToDelete"))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to delete collections!");

        ////  Index documents
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to index documents!");
        //if (!m_RetrieveAndRank.IndexDocuments(OnIndexDocuments, indexDataPath, testClusterID, testCollectionName))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to index documents!");

        ////  Standard Search
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to search!");
        //string[] fl = { "title", "id", "body", "author", "bibliography" };
        //if (!m_RetrieveAndRank.Search(OnSearch, testClusterID, testCollectionName, testQuery, fl))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to search!");

        ////  Ranked Search
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to search!");
        //string[] fl = { "title", "id", "body", "author", "bibliography" };
        //if (!m_RetrieveAndRank.Search(OnSearch, testClusterID, testCollectionName, testQuery, fl, true))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to search!");

        ////  Get rankers
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get rankers!");
        //if (!m_RetrieveAndRank.GetRankers(OnGetRankers))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get rankers!");

        ////  Create ranker
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to create rankers!");
        //if (!m_RetrieveAndRank.CreateRanker(OnCreateRanker, testRankerTrainingPath, "testRanker"))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to create ranker!");

        //  Rank
        Log.Debug("ExampleRetrieveAndRank", "Attempting to rank!");
        if (!m_RetrieveAndRank.Rank(OnRank, testRankerID, testAnswerDataPath))
        {
            Log.Debug("ExampleRetriveAndRank", "Failed to rank!");
        }

        ////  Delete rankers
        //Log.Debug("ExampleRetriveAndRank", "Attempting to delete ranker {0}!", rankerToDelete);
        //if (!m_RetrieveAndRank.DeleteRanker(OnDeleteRanker, rankerToDelete))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to delete ranker {0}!", rankerToDelete);

        ////  Get ranker info
        //Log.Debug("ExampleRetrieveAndRank", "Attempting to get Ranker Info!");
        //if (!m_RetrieveAndRank.GetRanker(OnGetRanker, testRankerID))
        //    Log.Debug("ExampleRetrieveAndRank", "Failed to get ranker!");
    }
Example #4
0
    private IEnumerator Examples()
    {
        //  Get clusters
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get clusters.");
        if (!_retrieveAndRank.GetClusters(OnGetClusters))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get clusters!");
        }
        while (!_getClustersTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Create cluster
        Log.Debug("ExampleRetrieveAndRank", "Attempting to create cluster.");
        if (!_retrieveAndRank.CreateCluster(OnCreateCluster, "unity-test-cluster", "1"))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to create cluster!");
        }
        while (!_createClusterTested || !_readyToContinue)
        {
            yield return(null);
        }

        //  Wait for cluster status to be `READY`.
        CheckClusterStatus();
        while (!_isClusterReady)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  List cluster configs
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster configs.");
        if (!_retrieveAndRank.GetClusterConfigs(OnGetClusterConfigs, _clusterToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster configs!");
        }
        while (!_getClusterConfigsTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Upload cluster config
        Log.Debug("ExampleRetrieveAndRank", "Attempting to upload cluster config.");
        if (!_retrieveAndRank.UploadClusterConfig(OnUploadClusterConfig, _clusterToDelete, _testClusterConfigName, _testClusterConfigPath))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to upload cluster config {0}!", _testClusterConfigPath);
        }
        while (!_uploadClusterConfigTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Get cluster
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster.");
        if (!_retrieveAndRank.GetCluster(OnGetCluster, _clusterToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster!");
        }
        while (!_getClusterTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Get cluster config
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get cluster config.");
        if (!_retrieveAndRank.GetClusterConfig(OnGetClusterConfig, _clusterToDelete, _testClusterConfigName))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get cluster config {0}!", _testClusterConfigName);
        }
        while (!_getClusterConfigTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  List Collection request
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get collections.");
        if (!_retrieveAndRank.ForwardCollectionRequest(OnGetCollections, _clusterToDelete, CollectionsAction.List))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get collections!");
        }
        while (!_getCollectionsTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Create Collection request
        Log.Debug("ExampleRetrieveAndRank", "Attempting to create collection.");
        if (!_retrieveAndRank.ForwardCollectionRequest(OnCreateCollection, _clusterToDelete, CollectionsAction.Create, _collectionNameToDelete, _testClusterConfigName))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to create collections!");
        }
        while (!_createCollectionTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Index documents
        Log.Debug("ExampleRetrieveAndRank", "Attempting to index documents.");
        if (!_retrieveAndRank.IndexDocuments(OnIndexDocuments, _indexDataPath, _clusterToDelete, _collectionNameToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to index documents!");
        }
        while (!_indexDocumentsTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Get rankers
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get rankers.");
        if (!_retrieveAndRank.GetRankers(OnGetRankers))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get rankers!");
        }
        while (!_getRankersTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Create ranker
        Log.Debug("ExampleRetrieveAndRank", "Attempting to create ranker.");
        if (!_retrieveAndRank.CreateRanker(OnCreateRanker, _testRankerTrainingPath, _createdRankerName))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to create ranker!");
        }
        while (!_createRankerTested || !_readyToContinue)
        {
            yield return(null);
        }

        //  Wait for ranker status to be `Available`.
        Log.Debug("ExampleRetrieveAndRank", "Checking ranker status in 10 seconds");
        CheckRankerStatus();
        while (!_isRankerReady || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Standard Search
        string[] fl = { "title", "id", "body", "author", "bibliography" };
        Log.Debug("ExampleRetrieveAndRank", "Attempting to search standard.");
        if (!_retrieveAndRank.Search(OnSearchStandard, _clusterToDelete, _collectionNameToDelete, _testQuery, fl))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to search!");
        }
        while (!_searchStandardTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Rank
        Log.Debug("ExampleRetrieveAndRank", "Attempting to rank.");
        if (!_retrieveAndRank.Rank(OnRank, _rankerIdToDelete, _testAnswerDataPath))
        {
            Log.Debug("ExampleRetriveAndRank", "Failed to rank!");
        }
        while (!_rankTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Get ranker info
        Log.Debug("ExampleRetrieveAndRank", "Attempting to get rankers.");
        if (!_retrieveAndRank.GetRanker(OnGetRanker, _rankerIdToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to get ranker!");
        }
        while (!_getRankerTested)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Delete rankers
        Log.Debug("ExampleRetrieveAndRank", "Attempting to delete ranker {0}.", _rankerIdToDelete);
        if (!_retrieveAndRank.DeleteRanker(OnDeleteRanker, _rankerIdToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to delete ranker {0}!", _rankerIdToDelete);
        }
        while (!_deleteRankerTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Delete Collection request
        Log.Debug("ExampleRetrieveAndRank", "Attempting to delete collection {0}.", "TestCollectionToDelete");
        if (!_retrieveAndRank.ForwardCollectionRequest(OnDeleteCollection, _clusterToDelete, CollectionsAction.Delete, "TestCollectionToDelete"))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to delete collections!");
        }
        while (!_deleteCollectionTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Delete cluster config
        string clusterConfigToDelete = "test-config";

        Log.Debug("ExampleRetrieveAndRank", "Attempting to delete cluster config.");
        if (!_retrieveAndRank.DeleteClusterConfig(OnDeleteClusterConfig, _clusterToDelete, clusterConfigToDelete))
        {
            Log.Debug("ExampleRetriveAndRank", "Failed to delete cluster config {0}", clusterConfigToDelete);
        }
        while (!_deleteClusterConfigTested || !_readyToContinue)
        {
            yield return(null);
        }

        _readyToContinue = false;
        //  Delete cluster
        Log.Debug("ExampleRetrieveAndRank", "Attempting to delete cluster {0}.", _clusterToDelete);
        if (!_retrieveAndRank.DeleteCluster(OnDeleteCluster, _clusterToDelete))
        {
            Log.Debug("ExampleRetrieveAndRank", "Failed to delete cluster!");
        }
        while (!_deleteClusterTested || !_readyToContinue)
        {
            yield return(null);
        }

        Log.Debug("ExampleRetrieveAndRank", "Retrieve and rank examples complete!");
    }