Example #1
0
        public void CreateFileTest()
        {
            FileInfo fileToUpload   = new FileInfo(Path.GetTempFileName());
            FileInfo downloadedFile = new System.IO.FileInfo(Path.GetTempFileName());

            // Set the file size
            using (var fstream = fileToUpload.OpenWrite())
            {
                fstream.SetLength(1024 * 1024 * 1);
            }

            dynamic ynode = (JsonConvert.DeserializeObject(yamlOptions) as dynamic);

            IClient sc = Blobstore.CreateClient("dav", ynode["blobstore"]["options"]);

            string objectId = sc.Create(fileToUpload);

            sc.Get(objectId, downloadedFile);

            Assert.IsTrue(fileToUpload.Length == downloadedFile.Length);

            fileToUpload.Delete();
            downloadedFile.Delete();

            //sc.Delete(objectId);
        }
Example #2
0
        public void InvalidDeleteTest()
        {
            dynamic ynode = (JsonConvert.DeserializeObject(yamlOptions) as dynamic);

            IClient sc = Blobstore.CreateClient("dav", ynode["blobstore"]["options"]);

            sc.Delete("test");
        }
Example #3
0
        internal static void UnpackBlob(string blobstoreId, string checksum, string installPath)
        {
            Logger.Info("Retrieving blob: {0}", blobstoreId);

            IClient blobstoreClient = Blobstore.CreateClient(Config.BlobstoreProvider, Config.BlobstoreOptions);

            FileInfo fileInfo = new FileInfo(Path.Combine(Config.BaseDir, "data", "tmp", blobstoreId + ".tgz"));

            try
            {
                if (!Directory.Exists(fileInfo.Directory.ToString()))
                {
                    Directory.CreateDirectory(fileInfo.Directory.ToString());
                }

                blobstoreClient.Get(blobstoreId, fileInfo);

                string blobDataFile = fileInfo.FullName;

                Logger.Info("Done retrieving blob");

                if (!Directory.Exists(installPath))
                {
                    Logger.Info("Creating ", installPath);
                    Directory.CreateDirectory(installPath);
                }

                string blobSHA1;
                using (FileStream fs = fileInfo.Open(FileMode.Open))
                {
                    using (SHA1 sha = new SHA1CryptoServiceProvider())
                    {
                        blobSHA1 = BitConverter.ToString(sha.ComputeHash(fs)).Replace("-", "");
                    }
                }
                if (String.Compare(blobSHA1, checksum, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    throw new MessageHandlerException(String.Format(CultureInfo.InvariantCulture, "Expected sha1: {0}, Downloaded sha1: {1}", checksum, blobSHA1));
                }

                Logger.Debug("Extracting {0}", blobDataFile);
                FileArchive.UnzipFile(installPath, blobDataFile);
                Logger.Debug("Done extracting {0}", blobDataFile);
                File.Delete(fileInfo.FullName);
            }
            catch (Exception ex)
            {
                Logger.Error("Failure unpacking blob.", ex.ToString());
                throw;
            }
        }
        public void TC001_TestCompilePackage()
        {
            byte[] packageBits;
            using (var ms = new MemoryStream())
            {
                Assembly.GetExecutingAssembly().GetManifestResourceStream(packageFile).CopyTo(ms);
                packageBits = ms.ToArray();
            }

            //Arrange
            string fileContent = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(configFile)).ReadToEnd();

            Config.Setup(JsonConvert.DeserializeObject(fileContent), false);

            //ConfigBlobStore
            Config.Configure         = true;
            Config.BlobstoreProvider = Config.Settings["blobstore"]["provider"].Value;
            Config.BlobstoreOptions  = Config.Settings["blobstore"]["options"];


            IClient bclient   = Blobstore.CreateClient(Config.BlobstoreProvider, Config.BlobstoreOptions);
            string  packageId = bclient.Create(packageBits);


            //Act
            Handler.Start();
            Thread.Sleep(6000);

            string requestMessage = "{\"method\":\"compile_package\",\"arguments\":[\"" + packageId + "\",\"60209d197f9f93a338c93af3228739cdfbd38992\",\"postgresql\",\"5.1\",{}],\"reply_to\":\"director.6d811790-5ceb-4251-93d8-5efa8bbf3bac.5de47a59-21ce-4db6-a7b9-5012a6cdf3bb\"}";

            ManualResetEvent resposeReceived = new ManualResetEvent(false);
            string           response        = null;

            var natsClient = NatsClient.ReactorFactory.GetReactor(typeof(NatsClient.Reactor));

            natsClient.Start(Config.MessageBus);

            natsClient.Subscribe("director.6d811790-5ceb-4251-93d8-5efa8bbf3bac.5de47a59-21ce-4db6-a7b9-5012a6cdf3bb", delegate(string msg, string reply, string subject)
            {
                response = msg;
                resposeReceived.Set();
            });

            natsClient.Publish("agent.07dcbefe-e4fc-48b9-97c1-1752d5c1b6df", new SimpleCallback(MessageCallback), requestMessage);

            resposeReceived.WaitOne(4000);

            Assert.AreNotEqual(response, null);

            bclient.Delete(packageId);
        }
Example #5
0
        [TestMethod] //todo: vladi: fix this test
        public void CreateContentTest()
        {
            dynamic ynode = (JsonConvert.DeserializeObject(yamlOptions) as dynamic);


            IClient sc = Blobstore.CreateClient("dav", ynode["blobstore"]["options"]);

            string objectId = sc.Create(content);

            string pulledContent = sc.Get(objectId);

            Assert.AreEqual(content, pulledContent);

            sc.Delete(objectId);
        }
Example #6
0
        private static string UploadTarball(string path)
        {
            Logger.Info("Uploading tarball");
            string blobstoreId = null;

            try
            {
                dynamic bscOptions  = Config.BlobstoreOptions;
                string  bscProvider = Config.BlobstoreProvider;

                Logger.Info("Uploading tarball to blobstore");
                IClient blobstore = Blobstore.CreateClient(bscProvider, bscOptions);

                blobstoreId = blobstore.Create(new FileInfo(path));
            }
            catch (Exception e)
            {
                BaseMessage.ErrorHandler(String.Format(CultureInfo.InvariantCulture, "unable to upload logs to blobstore: {0}", e.Message));
            }
            return(blobstoreId);
        }