예제 #1
0
        public Run GetRun()
        {
            string[] items  = CheckRunSource();
            var      source = new { owner = items[0], proj = items[1], runId = items[2] };

            var api = new Api.RunsApi();
            var run = api.GetRun(source.owner, source.proj, source.runId);

            //run.Status.JobId
            return(run);
        }
예제 #2
0
        public void DownloadAssetTest()
        {
            var instance = new ProjectsApi();
            var proj     = instance.GetProject(Helper.CurrentUser.Username, "demo");


            var runApi = new Api.RunsApi();
            // energy simu
            var run     = runApi.GetRun(Helper.CurrentUser.Username, "demo", "908adb92-6339-4e34-8f01-7ddb55c52da2");
            var runInfo = new RunInfo(proj, run);


            var assets = runInfo.GetOutputAssets("grasshopper").OfType <RunAssetBase>().ToList();
            var inputs = runInfo.GetInputAssets();

            assets.AddRange(inputs);

            var task       = runInfo.DownloadRunAssetsAsync(assets, useCached: false);
            var downloaded = task.Result;
            // download cached.
            var task2            = runInfo.DownloadRunAssetsAsync(assets, useCached: true);
            var downloadedCached = task2.Result;

            var allDownloaded = downloaded.Zip(downloadedCached, (d, dc) => new { nonCached = d, Cached = dc });

            foreach (var savedAsset in allDownloaded)
            {
                var item       = savedAsset.nonCached;
                var itemCached = savedAsset.Cached;

                if (item.IsPathAsset())
                {
                    Console.WriteLine($"Is Saved {item.Name}:{item.IsSaved()} to {item.LocalPath}");
                    Console.WriteLine($"Is Saved (cached) {itemCached.Name}:{itemCached.IsSaved()} to {itemCached.LocalPath}");
                    Assert.IsTrue(item.IsSaved());
                    Assert.IsTrue(item.LocalPath == itemCached.LocalPath);
                }
                else
                {
                    var v  = string.Join(",", item.Value);
                    var v2 = string.Join(",", itemCached.Value);
                    Console.WriteLine($"Value {item.Name}: {v}");
                    Console.WriteLine($"Value(cached) {itemCached.Name}: {v2}");
                    Assert.IsTrue(!string.IsNullOrEmpty(v));
                    Assert.IsTrue(v == v2);
                }
            }
        }
예제 #3
0
        public void RunInputsTest()
        {
            var response = api.ListJobs(Helper.CurrentUser.Username, "demo");
            var jobs     = response.Resources.Take(2);


            var runApi = new Api.RunsApi();

            foreach (var job in jobs)
            {
                var jobId = job.Id;
                var run   = runApi.ListRuns(Helper.CurrentUser.Username, "demo", jobId: new List <string>()
                {
                    jobId
                }).Resources[0];
                var inputs  = run.Recipe.Inputs.OfType <Interface.Io.Inputs.IDag>();
                var inputs2 = run.Status.Inputs.OfType <Interface.Io.Inputs.IStep>();

                var sameInputs = inputs.Count() == inputs2.Count();
                if (!sameInputs)
                {
                    Console.WriteLine($"{Helper.CurrentUser.Username}/demo/{jobId}/{run.Id}");

                    Console.WriteLine($"================Run Recipe Inputs=====================");


                    foreach (var item in inputs)
                    {
                        Console.WriteLine($"{item.Name}");
                    }



                    Console.WriteLine($"================Run Status Inputs=====================");
                    foreach (var item in inputs2)
                    {
                        var v = item.IsValueType() ? string.Join(",", item.GetInputValue()) : item.GetInputPath();
                        Console.WriteLine($"{item.Name}: {v}");
                    }
                }
                // ISSUE: https://github.com/pollination/pollination-server/issues/146
                //Assert.IsTrue(sameInputs);
            }
        }
예제 #4
0
        //[Test]
        public void DownloadBigAssetTest()
        {
            var owner    = "studio-greenaarch";
            var projName = "puri-market-complex";
            var instance = new ProjectsApi();
            var proj     = instance.GetProject(owner, projName);


            var runApi = new Api.RunsApi();
            // energy simu
            var runId   = "4a16380d-0eae-59ea-bf03-871cb4163b7b";
            var run     = runApi.GetRun(owner, projName, runId);
            var runInfo = new RunInfo(proj, run);


            var assets = runInfo.GetOutputAssets("grasshopper").OfType <RunAssetBase>().Where(_ => _.Name == "sql").ToList();

            var task       = runInfo.DownloadRunAssetsAsync(assets, useCached: false);
            var downloaded = task.Result;


            foreach (var savedAsset in downloaded)
            {
                var item = savedAsset;

                if (item.IsPathAsset())
                {
                    Console.WriteLine($"Is Saved {item.Name}:{item.IsSaved()} to {item.LocalPath}");
                    Assert.IsTrue(item.IsSaved());
                }
                else
                {
                    var v = string.Join(",", item.Value);
                    Console.WriteLine($"Value {item.Name}: {v}");
                    Assert.IsTrue(!string.IsNullOrEmpty(v));
                }
            }
        }