예제 #1
0
        private void ExecuteCollect(string collectRequestID)
        {
            var localNow = DateTime.UtcNow.ToLocalTime().ToString();

            Console.WriteLine("INFO - Job {0} will be started now ({1})...", collectRequestID, localNow);
            using (var session = Repository.GetSession())
            {
                var collectRequest = Repository.GetCollectRequest(session, collectRequestID);
                if (collectRequest != null)
                {
                    collectRequest.SetExecutingStatus();
                    session.SaveChanges();

                    var targetInfo            = GetTargetInformation(collectRequest);
                    var ovalDefinitonsObjects = collectRequest.GetObjectTypes(session).ToArray();
                    var targetPlataform       = new TargetPlatformDiscoverer(ovalDefinitonsObjects).Discover();

                    this.CollectManager.Target            = targetInfo;
                    this.CollectManager.connectionContext = new List <IConnectionProvider>();
                    this.CollectManager.ExecuteCollect(session, collectRequest, targetPlataform);
                    session.SaveChanges();
                }
            }
            Console.WriteLine("INFO - Collection {0} just finished.", collectRequestID);
        }
예제 #2
0
        public void If_there_are_no_objects_the_platform_must_be_undefined()
        {
            var targetPlatformDiscoverer = new TargetPlatformDiscoverer(null);

            var discoveringResult = targetPlatformDiscoverer.Discover();

            Assert.AreEqual(FamilyEnumeration.undefined, discoveringResult);
        }
예제 #3
0
        public void If_there_are_no_windows_or_unix_objects_the_platform_must_be_undefinied()
        {
            var targetPlatformDiscoverer = new TargetPlatformDiscoverer(IndependentOvalDefinitionsSample.objects);

            var discoveringResult = targetPlatformDiscoverer.Discover();

            Assert.AreEqual(FamilyEnumeration.undefined, discoveringResult);
        }
예제 #4
0
        public void Should_be_possible_to_discover_cisco_ios_systems_by_ios_oval_objects()
        {
            var targetPlatformDiscoverer = new TargetPlatformDiscoverer(this.CiscoIosOvalDefinitionsSample.objects);

            var discoveringResult = targetPlatformDiscoverer.Discover();

            Assert.AreEqual(FamilyEnumeration.ios, discoveringResult);
        }
예제 #5
0
        public void Should_be_possible_to_discover_solaris_systems_by_solaris_oval_objects()
        {
            var targetPlatformDiscoverer =
                new TargetPlatformDiscoverer(UnixOvalDefinitionsSample.objects);

            var discoveringResult = targetPlatformDiscoverer.Discover();

            Assert.AreEqual(FamilyEnumeration.unix, discoveringResult);
        }
예제 #6
0
        private bool CheckExternalVariables(string filename, out string errors)
        {
            errors = null;

            if (filename == null)
            {
                errors = Resource.EmptyDefinitionFilename;
                return(false);
            }

            if (!File.Exists(filename))
            {
                errors = Resource.OVALDefinitionsFileNotFound;
                return(false);
            }

            var helper      = new ExternalVariableHelper();
            var definitions = helper.GetOvalDefinitionsFromFile(filename, out errors);

            if (definitions != null)
            {
                var platform = new TargetPlatformDiscoverer(definitions.objects);
                var family   = platform.Discover();
                isUnixDefinition = (family.ToString() == "unix");

                if (definitions.variables != null)
                {
                    ExternalVariables       = definitions.variables.OfType <Modulo.Collect.OVAL.Definitions.VariablesTypeVariableExternal_variable>();
                    ExternalVariablesValues = GetExternalVariablesDefaultValuesFromDefinition(definitions.GetDefinitionsXml());
                }

                return(true);
            }

            return(false);
        }