Quantcast
Channel: Symantec Connect - Endpoint Management - Articles
Viewing all articles
Browse latest Browse all 861

Tracking changes on the Symantec product listing xml with git

$
0
0

Table of content:

Symantec product listing xml

In Notification Server 6.0 the product included an installation page inside the console that allowed users to install new solutions, suites or pointfixes. It was called the Solution Center and used the SolutionCenter.xml from SolutionSam.com [1]. At some point (well after SP3) the Altiris Installation Manager (AIM, you still find this key on the registry under Altiris) was built and used as the main delivery point for NS Solutions and Suites. AIM was using the solutionsam.com SolutionCenter.xml.

With 7.0 AIM was rebranded Symantec Installation Manager (SIM), and Altiris Notification Server became the Symantec Management Platform (SMP). The SolutionCenter.xml file was renamed to symantec.pl.xml (Symantec Product Listing xml) and moved to a new location: http://www.solutionsam.com/solutions/pl/symantec.pl.xml.

Since then (that is 2009) the file content and delivery mechanism have changed a few times:

  • As per one of my Connect idea [2] the pl.xml file is no longer containing localization data and thus its overall size has shrunk dramatically [3].
  • SIM now download a zip container instead of the lengthy plain xml file which reduces the download time greatly.
  • The current listing is now at version 2, with the file being symantec_v2.pl.xml.zip, still in the same SolutionSam folder (since the 2012-10-03 precisely).

Note! The Solution and Platform files are also nested under the solutions folder in solutionsam, but not in a browseable tree.

Back to top

Tracking changes so far

I have setup a tracking task to monitor changes in the pl.xml just before the 7.0 SP1 release (that came with ITMS in March 2009) by the mean of a simple shell script. It runs every hour and downloads the files to a local repository. If the pl xml is new, we save it replacing the file name with the filehash (md5sum). This has worked okay over time but it has some issues. First the growing number of files and size makes the repository not so easy to navigate. Then it takes some (not much, just a couple of GiB) space that make the files difficult to share (over my adsl line where I host my server in the basement). Then I must admit that I am not very happy with the usual diffs I get (using diff, or diff -u) that, for some reasons, are not clean as I would like them.

And given I recently switch from subversion to git as my main SCM tool for the altiris-ns-tooling project I thought it would be a suitable tool to track the changes and publish the results in a scalable and efficient manner.

Back to top

Git-scm introduction

So I have switched to git, and you may say what is git? Well, let's dive into this with a video from none but the original designer of git (and Linux), Mr Linus Torvalds himself:

In case you are not interested in the video here's a summary of the interesting technical elements on this video:

  • Git is distributed, meaning developers can all have their own tree and push / pull code from each other.
  • All git branches are local to the tree, so there's no issue with branch name collisions
  • Commits are local, until you push to a public tree (web repository) so you can commit early, commit often!
  • Git is secure (from an information security standpoint - meaning the data you put in a repository and get back is exactly the same), because it uses sha-1 to control changes and track differences.

Back to top

ns7pl git repository

So this week I decided to move from my file based repository to a public repository in Google code. The task was easy enough (I just wrote a script to copy files, generate a tree view and commit to git. Eventually I pushed out all the changes and now we have the following git tree:

http://code.google.com/p/ns7pl/source/browse/

Now let's go into some of the finner details, the extra bit I have added to this git repository: I'm not only tracking changes in the symantec.pl.xml file but also in the solution tree, as it is described with the pl xml.

To create the tree I use another tool of mine, created in altiris-ns-tooling and already published in Symantec Connect: create_solnsam_mirror [3]. It is quite handy and in the end it give us a view of which files are available to download by SIM along with their properties: name, size and a sha256 checksum. Here is a look at the tree from the Google code repository, using the latest commit (and latest pl.xml):

And here is a look at some specific files from the tree:

Also I took the time to tag a number of versions in the repository, so you can go back to any item by date (you'll have to browse the "Changes" page) or by version (only major versions where added). Below is a list of the tags:

  • 7.0.1 (SP1)
  • 7.0.2 (SP2)
  • 7.0.3 (SP3)
  • 7.0.4 (SP4)
  • 7.0.5 (SP5)
  • 7.1.0 (Gold)
  • 7.1.1 (SP1)
  • 7.1.2 (SP2)
  • 7.1.2.MP1 (SP2 MP1)

Next we'll look how the tags can be used and how git can be of help should you need to find an old version of a pl.xml.

Back to top

"gitting" a specific pl xml

There are 2 ways to get a pl.xml file from the repository: on the web-interface find the revision that contains the file you are after, click on the symantec.pl.xml and then click on the zip download link. The download will contain the pl.xml and the entire solution tree (with the file details, not the msi files ;).

Or you can get git-bash for Windows or better, a Linux machine, install git and pull the entire repository. Then you can just go back to the commit you want you can do "git branch _your new branch_" then "git checkout _hash_". Voila. Your symante.pl.xml is now at the desired revision.

Back to top

[1] SolutionSam 6.0 repository
[2] Break down large or regular updates into small files and use differential instead of bulk download or imports in SMP
[3] https://www-secure.symantec.com/connect/articles/cwoc-experimental-create-solutionsam-mirror-tool-centralise-smp-installation


Viewing all articles
Browse latest Browse all 861

Trending Articles