Esempio n. 1
0
        public override void DoRun()
        {
            var mfParser = new ManifestParser(_filePath, _env);

            foreach (AMLFile amlFile in mfParser.AMLFilesToExecute)
            {
                foreach (string aml in amlFile.AMLs)
                {
                    Log.Log(aml);
                    Item result = Inn.applyAML(aml);
                    if (result.isError())
                    {
                        Log.LogError($"{result.getErrorString()}");
                        if (amlFile.StopOnError)
                        {
                            Log.LogError("Stopping Executtion");
                            return;
                        }
                    }
                    else
                    {
                        Log.LogSuccess("OK");
                    }
                }
            }
        }
Esempio n. 2
0
        private KeyValuePair <string, string> GetMajorVersionAndServicPack()
        {
            string servicePack  = "N/A";
            string majorVersion = "N/A";
            string amlQuery     = @"<AML>
                <Item action='get' type='Variable' select='name,value'>
                <or>
                    <name>VersionMajor</name>
                    <name>VersionServicePack</name>
                </or>
                </Item></AML>";

            Item result = Inn.applyAML(amlQuery);

            if (!result.isError())
            {
                for (int i = 0; i < result.getItemCount(); i++)
                {
                    Item item = result.getItemByIndex(i);
                    if (item.getProperty("name") == "VersionMajor")
                    {
                        majorVersion = item.getProperty("value", string.Empty);
                    }
                    if (item.getProperty("name") == "VersionServicePack")
                    {
                        servicePack = item.getProperty("value", string.Empty);
                    }
                }
            }
            return(new KeyValuePair <string, string>(majorVersion, servicePack));
        }
Esempio n. 3
0
        private List <string> GetAliasIdentityNames()
        {
            var identityNames = new List <string>();
            var query         = @"<AML>" +
                                "<Item action='get' type='Identity' select='keyed_name'>" +
                                "<and>" +
                                "<is_alias condition='eq'>1</is_alias>" +
                                "<classification condition='is null' />" +
                                "</and>" +
                                "</Item>" +
                                "</AML>";

            var itmsAML = Inn.applyAML(query);

            if (itmsAML != null)
            {
                var count = itmsAML.getItemCount();

                for (var i = 0; i < count; i++)
                {
                    var itm  = itmsAML.getItemByIndex(i);
                    var name = itm.getProperty("keyed_name");
                    identityNames.Add(name);
                }
                identityNames.Sort();
            }
            return(identityNames);
        }
Esempio n. 4
0
        private List <string> GetListRoleNames()
        {
            var roleNames = new List <string>();
            var query     = @"<AML>" +
                            "<Item action='get' type='List' select='name'>" +
                            "<keyed_name condition='eq'>Project Role</keyed_name>" +
                            "<Relationships>" +
                            "<Item action='get' type='Value' select='value' orderBy='value'>" +
                            "</Item>" +
                            "</Relationships>" +
                            "</Item>" +
                            "</AML>";

            var itmsAML = Inn.applyAML(query);

            if (itmsAML != null)
            {
                var count = itmsAML.getItemCount();
                if (1 == count)
                {
                    var rels = itmsAML.getRelationships();

                    for (var x = 0; x < rels.getItemCount(); x++)
                    {
                        var z    = rels.getItemByIndex(x);
                        var name = z.getProperty("value");
                        roleNames.Add(name);
                    }
                    roleNames.Sort();
                }
            }
            return(roleNames);
        }
Esempio n. 5
0
        protected string RetrieveProperty(string propertyName)
        {
            string amlQuery = string.Format("<AML><Item action='get' type='{0}' id='{1}' select='{2}'></Item></AML>"
                                            , this.GetArasType(), this.GetId(), propertyName);

            Item   item  = Inn.applyAML(amlQuery);
            string value = item.getProperty(propertyName);

            return(value);
        }
        public override void DoRun()
        {
            Log.Log($"Executing {Name}");
            Item result = Inn.applyAML(GetMetaAml());

            Log.Log($"Meta data count: {result.getItemCount()}");
            LoadPackageMap(Inn);
            Log.Log($"Package Elements total count: {_packageMap.Count}");

            int itemsCount               = 0;
            int unpackagedItemsCount     = 0;
            int itemsAddedToPackageCount = 0;

            for (int i = 0; i < result.getItemCount(); i++)
            {
                Item   item      = result.getItemByIndex(i);
                string keyedName = item.getPropertyAttribute("id", "keyed_name");
                if (keyedName.StartsWith(Prefix, StringComparison.OrdinalIgnoreCase))
                {
                    itemsCount++;
                    if (!CheckIfInPackage(item))
                    {
                        Log.Log($"Not in any package: {item.getType()} named {keyedName}");
                        unpackagedItemsCount++;
                        var pkgMgr = new Hille.Aras.DevTool.Common.Commands.Aras.PackageManagment.PackageManager(Inn)
                        {
                            DryRun   = DryRun,
                            AutoPack = AutoPack
                        };
                        ((ILoggable)pkgMgr).Logger = Log;
                        Item packageElement = pkgMgr.FindAndAddSuitablePackageForItem(item);
                        if (!packageElement.isError())
                        {
                            string packageDefName = pkgMgr.GetPackageDefinitionNameFromPackageElement(packageElement);
                            Log.LogSuccess($"Added to package {packageDefName} as {packageElement.getProperty("element_type")} ");
                            itemsAddedToPackageCount++;
                        }
                        else
                        {
                            Log.LogWarning("Could not find a suitable package");
                        }
                    }
                }
            }
            Log.Log($"Items checked: {itemsCount}");
            Log.Log($"Items not in any package: {unpackagedItemsCount}");
            Log.Log($"Items added to package: {itemsAddedToPackageCount}");
        }
        public List <DatabaseUpgrade> GetDatabaseUpgrades()
        {
            var databaseUpgrades = new List <DatabaseUpgrade>();

            string aml = @"<AML>
                <Item action='get' type='DatabaseUpgrade' 
                    select='applied_on,name,target_release,is_latest,description' orderBy='applied_on DESC'>
                </Item></AML>";
            string latestUpdatedDate = String.Empty;
            Item   dbUpgradeItems    = Inn.applyAML(aml);
            int    i = 0;
            bool   allUpdatesFromLatestDay = false;

            while (!allUpdatesFromLatestDay && (i < dbUpgradeItems.getItemCount()))
            {
                Item   dbUpgrade   = dbUpgradeItems.getItemByIndex(i);
                string appliedDate = dbUpgrade.getProperty("applied_on", String.Empty);
                if (appliedDate != String.Empty)
                {
                    appliedDate = appliedDate.Substring(0, 10);
                }
                if (latestUpdatedDate == String.Empty && appliedDate != String.Empty)
                {
                    latestUpdatedDate = appliedDate.Substring(0, 10);
                }

                if (appliedDate == latestUpdatedDate)
                {
                    var databaseUpgrade = new DatabaseUpgrade
                    {
                        AppliedOn     = dbUpgrade.getProperty("applied_on"),
                        Name          = dbUpgrade.getProperty("name"),
                        TargetRelease = dbUpgrade.getProperty("target_release"),
                        Description   = dbUpgrade.getProperty("description"),
                        IsLatest      = (dbUpgrade.getProperty("is_latest") == "1") ? true : false
                    };
                    databaseUpgrades.Add(databaseUpgrade);
                }
                i++;
            }
            return(databaseUpgrades);
        }
Esempio n. 8
0
        private string GetPackageName()
        {
            string amlQuery = $@"<AML>
                  <Item action='get' type='PackageGroup' select='source_id'> 
                    <Relationships>
                      <Item action='get' type='PackageElement' select='element_type,name'>
                        <element_type>{this.GetArasType()}</element_type>
                        <name>{this.GetKeyedName()}</name>
                      </Item>  
                    </Relationships>
                  </Item>
                </AML>";
            Item   result   = Inn.applyAML(amlQuery);

            if (result.isError())
            {
                return("N/A");
            }
            return(result.getPropertyAttribute("source_id", "keyed_name"));
        }