Example #1
0
        public async Task <ContainerID> PutContainer(Container.Container container, CallOptions options = null, CancellationToken context = default)
        {
            if (container is null)
            {
                throw new ArgumentNullException(nameof(container));
            }
            var opts = DefaultCallOptions.ApplyCustomOptions(options);

            CheckOptions(opts);
            container.Version = Refs.Version.SDKVersion();
            if (container.OwnerId is null)
            {
                container.OwnerId = OwnerID.FromScriptHash(opts.Key.PublicKey().PublicKeyToScriptHash());
            }
            var req = new PutRequest
            {
                Body = new PutRequest.Types.Body
                {
                    Container = container,
                    Signature = opts.Key.SignRFC6979(container),
                }
            };

            req.MetaHeader = opts.GetRequestMetaHeader();
            opts.Key.Sign(req);

            return(await PutContainer(req, opts.Deadline, context));
        }
        public ContainerID PutContainer(CancellationToken context, Container.Container container, CallOptions options = null)
        {
            var container_client = new ContainerService.ContainerServiceClient(channel);
            var opts             = DefaultCallOptions.ApplyCustomOptions(options);

            container.Version = Refs.Version.SDKVersion();
            if (container.OwnerId is null)
            {
                container.OwnerId = key.ToOwnerID();
            }
            var req = new PutRequest
            {
                Body = new PutRequest.Types.Body
                {
                    Container = container,
                    Signature = container.SignMessagePart(key),
                }
            };

            req.MetaHeader = opts.GetRequestMetaHeader();
            req.SignRequest(key);
            var resp = container_client.Put(req, cancellationToken: context);

            if (!resp.VerifyResponse())
            {
                throw new InvalidOperationException("invalid container put response");
            }
            return(resp.Body.ContainerId);
        }
Example #3
0
        public void TestPutContainerSelect()
        {
            using var client = new Client.Client(key, host);
            // var replica = new Replica(2, ""); //not in policy
            var replica = new Replica(2, ""); // in policy with others
            // var replica = new Replica(1, ""); // test only one node put container size
            var policy    = new PlacementPolicy(1, new Replica[] { replica }, null, null);
            var container = new Container.Container
            {
                Version         = Refs.Version.SDKVersion(),
                OwnerId         = OwnerID.FromScriptHash(key.PublicKey().PublicKeyToScriptHash()),
                Nonce           = Guid.NewGuid().ToByteString(),
                BasicAcl        = BasicAcl.PublicBasicRule,
                PlacementPolicy = policy,
            };

            container.Attributes.Add(new Container.Container.Types.Attribute
            {
                Key   = "CreatedAt",
                Value = DateTime.UtcNow.ToString(),
            });
            using var source = new CancellationTokenSource();
            source.CancelAfter(TimeSpan.FromMinutes(1));
            var cid = client.PutContainer(container, context: source.Token).Result;

            Console.WriteLine(cid.String());
            Assert.AreEqual(container.CalCulateAndGetId, cid);
        }
        public void TestPutContainer()
        {
            var host      = "localhost:8080";
            var key       = "KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr".LoadWif();
            var client    = new Client.Client(key, host);
            var replica   = new Replica(1, "*");
            var policy    = new PlacementPolicy(2, new Replica[] { replica }, null, null);
            var container = new Container.Container
            {
                // Version = Refs.Version.SDKVersion(),
                // OwnerId = key.ToOwnerID(),
                Nonce           = new Guid().ToByteString(),
                BasicAcl        = (uint)BasicAcl.PublicBasicRule,
                PlacementPolicy = policy,
            };

            container.Attributes.Add(new Container.Container.Types.Attribute
            {
                Key   = "CreatedAt",
                Value = DateTime.UtcNow.ToString(),
            });
            var source = new CancellationTokenSource();

            source.CancelAfter(TimeSpan.FromMinutes(1));
            var cid = client.PutContainer(source.Token, container);

            Console.WriteLine(cid.ToBase58String());
            Assert.AreEqual(container.CalCulateAndGetID, cid);
        }
Example #5
0
        public void TestPutContainerOnlyOne()
        {
            using var client = new Client.Client(key, host);
            var replica1  = new Replica(1, "loc1");
            var replica2  = new Replica(1, "loc2");
            var selector1 = new Selector("loc1", "Location", Clause.Same, 1, "loc1");
            var selector2 = new Selector("loc2", "Location", Clause.Same, 1, "loc2");
            var filter1   = new Filter("loc1", "Location", "Shanghai", Netmap.Operation.Eq);
            var filter2   = new Filter("loc2", "Location", "Shanghai", Netmap.Operation.Ne);
            var policy    = new PlacementPolicy(1, new Replica[] { replica1, replica2 }, new Selector[] { selector1, selector2 }, new Filter[] { filter1, filter2 });
            var container = new Container.Container
            {
                Version         = Refs.Version.SDKVersion(),
                OwnerId         = OwnerID.FromScriptHash(key.PublicKey().PublicKeyToScriptHash()),
                Nonce           = Guid.NewGuid().ToByteString(),
                BasicAcl        = BasicAcl.PublicBasicRule,
                PlacementPolicy = policy,
            };

            container.Attributes.Add(new Container.Container.Types.Attribute
            {
                Key   = "CreatedAt",
                Value = DateTime.UtcNow.ToString(),
            });
            using var source = new CancellationTokenSource();
            source.CancelAfter(TimeSpan.FromMinutes(1));
            var cid = client.PutContainer(container, context: source.Token).Result;

            Console.WriteLine(cid.String());
            Assert.AreEqual(container.CalCulateAndGetId, cid);
        }
Example #6
0
        public static void Main()
        {
            var cont = new Container.Container(new List <string> {
                "BooknoteLogic"
            });
            var processor = cont.Resolve <CommandProcessor>();

            processor.Process();
        }
Example #7
0
        public void Setup()
        {
            var kunteynir = new Container.Container(new List <string> {
                "BooknoteLogic", "Tests"
            });

            _producer = kunteynir.Resolve <TestCommandProducer>();
            _booknote = kunteynir.Resolve <Booknote>();
        }
Example #8
0
        public void Register_Should_Get_Services()
        {
            var container = new Container.Container();

            var service = new AutoIdRepository();

            container.Register(service);

            Assert.NotNull(container.Get <IAutoIdRepository>());
        }
Example #9
0
        private void StartApp(object sender, StartupEventArgs e)
        {
            var container = new Container.Container(new List <string> {
                "BooknoteLogic", "BooknoteView"
            });
            var prod = container.Resolve <UiCommandProducer>();
            var rl   = container.Resolve <RecordsList>();

            new MainWindow(rl, prod).Show();
        }
Example #10
0
        public void Container_Should_Return_IRepository_Of_Type()
        {
            var container = new Container.Container();

            container.Register <DummyRepository>();

            var verify = container.Get <IRepository <DummyEntity> >();

            Assert.NotNull(verify);
            Assert.True(verify is IRepository <DummyEntity>);
        }
Example #11
0
        static void Main(string[] args)
        {
            var kunteynir = new Container.Container(new List <string> {
                "funge-98"
            });
            var cp       = kunteynir.Resolve <CommandProducer>();
            var language = new Befunge_93(cp, new Befunge93FileParser(args[0], true));
            var result   = language.RunProgram();

            if (result != null)
            {
                Console.WriteLine($"Error : {result}");
            }
        }
        public void TestContainerSerialize()
        {
            var key       = "Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s".LoadWif();
            var container = new Container.Container
            {
                Version = new Refs.Version
                {
                    Major = 1,
                    Minor = 2,
                },
                OwnerId         = key.ToOwnerID(),
                Nonce           = ByteString.CopyFrom("1234".HexToBytes()),
                BasicAcl        = 0u,
                PlacementPolicy = new PlacementPolicy(1, null, null, null),
            };

            Assert.AreEqual("0a0408011002121b0a19351f694a2a49229f8e41d24542a0e6a7329b7ed065a113d0021a02123432021001", (container.ToByteArray().ToHexString()));
        }
Example #13
0
        public void TestContainerSerialize()
        {
            var key       = "Kwk6k2eC3L3QuPvD8aiaNyoSXgQ2YL1bwS5CP1oKoA9waeAze97s".LoadWif();
            var container = new Container.Container
            {
                Version = new Refs.Version
                {
                    Major = 1,
                    Minor = 2,
                },
                OwnerId         = OwnerID.FromScriptHash(key.PublicKey().PublicKeyToScriptHash()),
                Nonce           = ByteString.CopyFrom("1234".HexToBytes()),
                BasicAcl        = 0u,
                PlacementPolicy = new PlacementPolicy(1, null, null, null),
            };

            Assert.AreEqual("0a0408011002121b0a1935ce67af47d9157014c8db22dc18769be12b1b136a394ef1db1a02123432021001", container.ToByteArray().ToHexString());
        }
Example #14
0
        static void Main(string[] args)
        {
            var helpOptions = new[]
            {
                "-h",
                "--h",
                "--help",
                "-help"
            };

            if (args.Length == 0 || helpOptions.Any(args.Contains))
            {
                DisplayHelp();
                return;
            }
            var onlyStandardExtensions = args.All(ho => ho != "--ignore-ext");
            var kunteynir = new Container.Container(new List <string> {
                "funge-98"
            });

            var initDict = new Dictionary <string, Func <FungeFamilyLanguage> >
            {
                { "--befunge93", kunteynir.Resolve <Befunge93> },
                { "--funge98", kunteynir.Resolve <Befunge98> },
                { "--unefunge", kunteynir.Resolve <Unefunge> },
                { "--trefunge", kunteynir.Resolve <Trefunge> },
            };

            foreach (var s in args)
            {
                if (initDict.TryGetValue(s, out var lang))
                {
                    var l = lang();
                    RunFungeProgram(l, args, onlyStandardExtensions);
                }
            }

            RunFungeProgram(kunteynir.Resolve <Befunge98>(), args, onlyStandardExtensions);
        }