Example #1
0
        public async Task TestCommitFlightFailure()
        {
            var client = A.Fake <IStoreClient>();

            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true));
            var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\flight.json");

            A.CallTo(() => client.CreateSubmission("myapp", "myflight")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.Created)));
            var updatedJson = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\flightupdate.json");

            A.CallTo(() => client.UpdateSubmission("myapp", "myflight", "submissionid", JObject.Parse(updatedJson).ToString())).Returns(Task.Factory.StartNew(() => true));
            A.CallTo(() => client.Commit("myapp", "myflight", "submissionid")).Returns(Task.Factory.StartNew(() => false));
            var logger              = new MockLogger();
            var stringprovider      = new StringProvider();
            var command             = new SubmitCommand(client, logger, stringprovider);
            var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip";
            var options             = new SubmitOptions
            {
                PackagesFile = packageFileLocation,
                Application  = "myapp",
                ConfigFile   = $"{this.GetExecutingPath()}\\Files\\.valid_config",
                Flight       = "myflight"
            };
            var result = await command.CreateSubmission(options);

            result.Should().BeNegative("committing the submission failed");
            logger.Message.Last().Should().Be(stringprovider.GetString(Strings.SubmitCommitError), "committing the submission failed");
            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened();
            A.CallTo(() => client.CreateSubmission("myapp", "myflight")).MustHaveHappened();
            A.CallTo(() => client.UpdateSubmission("myapp", "myflight", "submissionid", JObject.Parse(updatedJson).ToString())).MustHaveHappened();
            A.CallTo(() => client.Commit("myapp", "myflight", "submissionid")).MustHaveHappened();
        }
Example #2
0
        public async Task TestSubmitNewFlightSubmissionFailure()
        {
            var client = A.Fake <IStoreClient>();

            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true));
            var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submission.json");

            A.CallTo(() => client.CreateSubmission("myapp", "myflight")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.NotFound)));
            var logger              = new MockLogger();
            var stringprovider      = new StringProvider();
            var command             = new SubmitCommand(client, logger, stringprovider);
            var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip";
            var options             = new SubmitOptions
            {
                PackagesFile = packageFileLocation,
                Application  = "myapp",
                ConfigFile   = $"{this.GetExecutingPath()}\\Files\\.valid_config",
                Flight       = "myflight"
            };
            var result = await command.CreateSubmission(options);

            result.Should().BeNegative("the creation of submission failed");
            logger.Message.Last().Should().Be(stringprovider.GetString(Strings.VerifyParameters), "there's something wrong with the parameters");
            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened();
            A.CallTo(() => client.CreateSubmission("myapp", "myflight")).MustHaveHappened();
        }
        public async Task TestSubmitSuccess()
        {
            var client = A.Fake <IStoreClient>();

            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true));
            var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submission.json");

            A.CallTo(() => client.CreateSubmission("myapp")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.Created)));
            var updatedJson = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submissionupdate.json");

            A.CallTo(() => client.UpdateSubmission("myapp", "submissionid", JObject.Parse(updatedJson).ToString())).Returns(Task.Factory.StartNew(() => true));
            A.CallTo(() => client.Commit("myapp", "submissionid")).Returns(Task.Factory.StartNew(() => true));
            var logger              = new MockLogger();
            var stringprovider      = new StringProvider();
            var command             = new SubmitCommand(client, logger, stringprovider);
            var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip";
            var options             = new SubmitOptions
            {
                PackagesFile = packageFileLocation,
                Application  = "myapp",
                ConfigFile   = $"{this.GetExecutingPath()}\\Files\\.valid_config"
            };
            var result = await command.CreateSubmission(options);

            result.Should().BeGreaterOrEqualTo(0, "the zip file contains app packages and everything worked out ok");
            logger.Message.Last().Should().Be(stringprovider.GetString(Strings.SubmitCommitSuccess), "everything went according to plan");
            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened();
            A.CallTo(() => client.CreateSubmission("myapp")).MustHaveHappened();
            A.CallTo(() => client.UpdateSubmission("myapp", "submissionid", JObject.Parse(updatedJson).ToString())).MustHaveHappened();
            A.CallTo(() => client.Commit("myapp", "submissionid")).MustHaveHappened();
        }
Example #4
0
        private async Task <bool> UpdateSubmission(SubmitOptions submitOptions, string submissionId, JObject body)
        {
            bool updateResult;

            Logger.InfoWithProgress(StringProvider.GetString(Strings.SubmitUpdating));
            if (string.IsNullOrWhiteSpace(submitOptions.Flight))
            {
                updateResult = await Client.UpdateSubmission(submitOptions.Application, submissionId, body.ToString());
            }
            else
            {
                updateResult = await Client.UpdateSubmission(submitOptions.Application, submitOptions.Flight, submissionId, body.ToString());
            }
            Logger.StopProgress();
            return(updateResult);
        }
Example #5
0
        private JObject UpdatePackages(SubmitOptions submitOptions, JObject submission, IEnumerable <string> zipPackages)
        {
            var packagesReference = string.IsNullOrWhiteSpace(submitOptions.Flight) ? "applicationPackages" : "flightPackages";
            var packages          = (JArray)submission[packagesReference];
            var newPackages       = new JArray();

            foreach (var package in packages)
            {
                package["fileStatus"] = "PendingDelete";
                newPackages.Add(package);
            }
            // Add the new packages as PendingUpload
            foreach (var package in zipPackages.Select(fileName => new JObject {
                { "fileName", fileName }, { "fileStatus", "PendingUpload" }
            }))
            {
                newPackages.Add(package);
            }
            packages.Replace(newPackages);
            return(submission);
        }
Example #6
0
        public async Task TestSubmitZipfileNoPackages()
        {
            var client = A.Fake <IStoreClient>();

            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true));
            var logger              = new MockLogger();
            var stringprovider      = new StringProvider();
            var command             = new SubmitCommand(client, logger, stringprovider);
            var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\nopackage.zip";
            var options             = new SubmitOptions
            {
                PackagesFile = packageFileLocation,
                Application  = "myapp",
                ConfigFile   = $"{this.GetExecutingPath()}\\Files\\.valid_config"
            };
            var result = await command.CreateSubmission(options);

            result.Should().BeNegative("the zip file does not contain app packages");
            logger.Message.Last().Should().Be(Format(stringprovider.GetString(Strings.ValidatePackageNoPackages), packageFileLocation), "The provided zip file does not contain any packages");
            A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened();
        }
Example #7
0
        private async Task <JObject> NewSubmission(SubmitOptions submitOptions)
        {
            Tuple <JObject, HttpStatusCode> deployResult;

            Logger.InfoWithProgress(StringProvider.GetString(Strings.SubmitCreating));
            if (string.IsNullOrWhiteSpace(submitOptions.Flight))
            {
                deployResult = await Client.CreateSubmission(submitOptions.Application);
            }
            else
            {
                deployResult = await Client.CreateSubmission(submitOptions.Application, submitOptions.Flight);
            }
            Logger.StopProgress();
            if (deployResult.Item2.Equals(HttpStatusCode.Created))
            {
                return(deployResult.Item1);
            }
            Logger.Error(StringProvider.GetString(Strings.SubmitCreateError));
            Logger.Info(StringProvider.GetString(Strings.VerifyParameters));
            return(null);
        }
Example #8
0
        private async Task <JObject> NewSubmission(SubmitOptions submitOptions)
        {
            Tuple <JObject, HttpStatusCode> deployResult;

            Logger.InfoWithProgress("Creating new submission");
            if (string.IsNullOrWhiteSpace(submitOptions.Flight))
            {
                deployResult = await Client.CreateSubmission(submitOptions.Application);
            }
            else
            {
                deployResult = await Client.CreateSubmission(submitOptions.Application, submitOptions.Flight);
            }
            Logger.StopProgress();
            if (deployResult.Item2.Equals(HttpStatusCode.Created))
            {
                return(deployResult.Item1);
            }
            Logger.Error("I was unable to create a new submission.");
            Logger.Info("Would you mind to verify the provided parameters and order again?");
            return(null);
        }
Example #9
0
        private async Task <bool> CommitSubmission(SubmitOptions submitOptions, string submissionId)
        {
            bool commitResult;

            Logger.InfoWithProgress(StringProvider.GetString(Strings.SubmitCommitting));
            if (string.IsNullOrWhiteSpace(submitOptions.Flight))
            {
                commitResult = await Client.Commit(submitOptions.Application, submissionId);
            }
            else
            {
                commitResult = await Client.Commit(submitOptions.Application, submitOptions.Flight, submissionId);
            }
            Logger.StopProgress();
            if (commitResult)
            {
                Logger.Info(StringProvider.GetString(Strings.SubmitCommitSuccess));
            }
            else
            {
                Logger.Error(StringProvider.GetString(Strings.SubmitCommitError));
            }
            return(commitResult);
        }
Example #10
0
        private async Task <bool> CommitSubmission(SubmitOptions submitOptions, string submissionId)
        {
            bool commitResult;

            Logger.InfoWithProgress("Committing submission");
            if (string.IsNullOrWhiteSpace(submitOptions.Flight))
            {
                commitResult = await Client.Commit(submitOptions.Application, submissionId);
            }
            else
            {
                commitResult = await Client.Commit(submitOptions.Application, submitOptions.Flight, submissionId);
            }
            Logger.StopProgress();
            if (commitResult)
            {
                Logger.Info("The submission has been successfully comitted, sir.");
            }
            else
            {
                Logger.Error("the submission could not be comitted.");
            }
            return(commitResult);
        }
Example #11
0
 public async Task <int> CreateSubmission(SubmitOptions options)
 {
     _submitOptions = options;
     return(await HandleCommand(options.ConfigFile, options.Verbose));
 }
Example #12
0
 public void send_submitTopologyWithOpts(string name, string uploadedJarLocation, string jsonConf, StormTopology topology, SubmitOptions options)
 #endif
 {
   oprot_.WriteMessageBegin(new TMessage("submitTopologyWithOpts", TMessageType.Call, seqid_));
   submitTopologyWithOpts_args args = new submitTopologyWithOpts_args();
   args.Name = name;
   args.UploadedJarLocation = uploadedJarLocation;
   args.JsonConf = jsonConf;
   args.Topology = topology;
   args.Options = options;
   args.Write(oprot_);
   oprot_.WriteMessageEnd();
   #if SILVERLIGHT
   return oprot_.Transport.BeginFlush(callback, state);
   #else
   oprot_.Transport.Flush();
   #endif
 }
Example #13
0
 public IAsyncResult send_submitTopologyWithOpts(AsyncCallback callback, object state, string name, string uploadedJarLocation, string jsonConf, StormTopology topology, SubmitOptions options)
Example #14
0
    public void submitTopologyWithOpts(string name, string uploadedJarLocation, string jsonConf, StormTopology topology, SubmitOptions options)
    {
      #if !SILVERLIGHT
      send_submitTopologyWithOpts(name, uploadedJarLocation, jsonConf, topology, options);
      recv_submitTopologyWithOpts();

      #else
      var asyncResult = Begin_submitTopologyWithOpts(null, null, name, uploadedJarLocation, jsonConf, topology, options);
      End_submitTopologyWithOpts(asyncResult);

      #endif
    }
Example #15
0
 public IAsyncResult Begin_submitTopologyWithOpts(AsyncCallback callback, object state, string name, string uploadedJarLocation, string jsonConf, StormTopology topology, SubmitOptions options)
 {
   return send_submitTopologyWithOpts(callback, state, name, uploadedJarLocation, jsonConf, topology, options);
 }
Example #16
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.String) {
           Name = iprot.ReadString();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.String) {
           UploadedJarLocation = iprot.ReadString();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 3:
         if (field.Type == TType.String) {
           JsonConf = iprot.ReadString();
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 4:
         if (field.Type == TType.Struct) {
           Topology = new StormTopology();
           Topology.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 5:
         if (field.Type == TType.Struct) {
           Options = new SubmitOptions();
           Options.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }