summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornjames <njames@us.ibm.com>2015-02-20 21:19:01 -0600
committernjames <njames@us.ibm.com>2015-02-20 21:19:01 -0600
commit950a37507888035b74c5f1cd20c5454571679af1 (patch)
treede7e9427d6bb269a7b290401129b388c8d0f41bf
parent72e58d1ff7c7fc29272205d48f7c28600ff082f2 (diff)
downloadserverwiz-950a37507888035b74c5f1cd20c5454571679af1.tar.gz
serverwiz-950a37507888035b74c5f1cd20c5454571679af1.zip
diffs xml using affinity path as key
-rw-r--r--scripts/compare.pl77
1 files changed, 77 insertions, 0 deletions
diff --git a/scripts/compare.pl b/scripts/compare.pl
new file mode 100644
index 0000000..7f692c1
--- /dev/null
+++ b/scripts/compare.pl
@@ -0,0 +1,77 @@
+use strict;
+use XML::Simple;
+use Data::Dumper;
+
+$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
+my $xml_gold = XMLin($ARGV[0]);
+my $xml_new = XMLin($ARGV[1]);
+my %match;
+#print Dumper($xml_gold);
+my % attr_values;
+foreach my $id (sort (keys %{$xml_new->{targetInstance}})) {
+ my $aff_path=$xml_new->{targetInstance}->{$id}->{attribute}->{AFFINITY_PATH}->{default};
+ foreach my $attr (sort (keys %{$xml_new->{targetInstance}->{$id}->{attribute}})) {
+ if (ref($xml_new->{targetInstance}->{$id}->{attribute}->{$attr}->{default}) eq "HASH") {
+ if (defined($xml_new->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field})) {
+ foreach my $field (sort (keys %{$xml_new->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field}})) {
+ my $value=$xml_new->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field}->{$field}->{value};
+ my $key=$aff_path." | ".$attr."_".$field;
+ $value=~s/\t//g;
+ $value=~s/\s//g;
+ $attr_values{$key}=$value;
+ }
+ }
+ } else {
+ my $value=$xml_new->{targetInstance}->{$id}->{attribute}->{$attr}->{default};
+ my $key=$aff_path." | ".$attr;
+ $value=~s/\t//g;
+ $value=~s/\s//g;
+
+ $attr_values{$key}=$value;
+ #print ">>>> $key = $value\n";
+ }
+ }
+}
+
+
+foreach my $id (sort (keys %{$xml_gold->{targetInstance}})) {
+ my $aff_path=$xml_gold->{targetInstance}->{$id}->{attribute}->{AFFINITY_PATH}->{default};
+
+ foreach my $attr (sort (keys %{$xml_gold->{targetInstance}->{$id}->{attribute}})) {
+
+ if (ref($xml_gold->{targetInstance}->{$id}->{attribute}->{$attr}->{default}) eq "HASH") {
+ if (defined($xml_gold->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field})) {
+ foreach my $field (sort (keys %{$xml_gold->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field}})) {
+ my $value=$xml_gold->{targetInstance}->{$id}->{attribute}->{$attr}->{default}->{field}->{$field}->{value};
+ $value=~s/\t//g;
+ $value=~s/\s//g;
+
+ my $key=$aff_path." | ".$attr."_".$field;
+ my $newval=$attr_values{$key};
+ $match{$key}=1;
+ if ($value ne $newval) {
+ printf("%100s | %s\n%100s | %s\n\n",$key,$value,"",$newval);
+ }
+ if ($key=~/PHYS_PATH/) {
+ # print "$key = $value\n";
+ }
+ }
+ }
+ } else {
+ my $value=$xml_gold->{targetInstance}->{$id}->{attribute}->{$attr}->{default};
+ $value=~s/\t//g;
+ $value=~s/\s//g;
+
+ my $key=$aff_path." | ".$attr;
+
+ my $newval=$attr_values{$key};
+ $match{$key}=1;
+ if ($value ne $newval) {
+ printf("%100s | %s\n%100s | %s\n\n",$key,$value,"",$newval);
+ }
+ if ($key=~/PHYS_PATH/) {
+ #print "$key = $value\n";
+ }
+ }
+ }
+}
OpenPOWER on IntegriCloud