]> xenbits.xensource.com Git - xenrt-citrix/xenrt.git/commitdiff
reg edits
authorCraig Orendi <craig.orendi@citrix.com>
Wed, 23 Sep 2015 15:45:32 +0000 (16:45 +0100)
committerCraig Orendi <craig.orendi@citrix.com>
Tue, 3 Nov 2015 10:21:05 +0000 (10:21 +0000)
exec/xenrt/lib/xenserver/dotnetagentlicensing.py

index 0b13fe9ea586de8ffa4e7dce665a5628ec56e7eb..7ec641dc33bb39b8f21a28344c375fc68ecaa1ce 100755 (executable)
@@ -67,9 +67,9 @@ class SimpleServer(object):
 class DotNetAgent(object):
 
     def __init__(self, guest):
-        self.licensedFeatures = {'VSS':VSS(),'AutoUpdate':AutoUpdate()}
         self.guest = guest
         self.os = self.guest.getInstance().os
+        self.licensedFeatures = {'VSS':VSS(self.guest,self.os),'AutoUpdate':AutoUpdate(self.guest,self.os)}
 
     def restartAgent(self):
         pass
@@ -89,15 +89,11 @@ class LicensedFeature(object):
         pass
 
     @abstractmethod
-    def checkKeyPresence(self):
+    def checkKeyPresent(self):
         pass
 
 class ActorAbstract(LicensedFeature):
 
-
-    def __init__(self, actor):
-        self.setActor(actor)
-
     def setActor(self,actor):
         self.actor = actor
 
@@ -116,8 +112,8 @@ class ActorAbstract(LicensedFeature):
     def defaultURL(self):
         self.actor.defaultURL()
 
-    def checkKeyPresence(self):
-        self.actor.checkKeyPresence()
+    def checkKeyPresent(self):
+        self.actor.checkKeyPresent()
 
 class ActorImp(object):
     __metaclass__ = ABCMeta
@@ -143,11 +139,15 @@ class ActorImp(object):
         pass
 
     @abstractmethod
-    def checkKeyPresence(self):
+    def checkKeyPresent(self):
         pass
 
 class PoolAdmin(ActorImp):
 
+    def __init__(self,guest,os):
+        self.guest = guest
+        self.os = os
+
     def isActive(self):
         pass
 
@@ -167,30 +167,39 @@ class PoolAdmin(ActorImp):
         host = self.guest.host
         host.execDom0("xe pool-param-set uuid=%s guest-agent-config:auto_update_url=\"\""%host.getPool().getUUID())
 
-    def checkKeyPresence(self):
+    def checkKeyPresent(self):
         host = self.guest.host
         return host.xenstoreExists("/guest_agent_features/Guest_agent_auto_update")
 
 class VMUser(ActorImp):
 
+    def __init__(self,guest,os):
+        self.guest = guest
+        self.os = os
+
     def isActive(self):
-         key = str(self.os.winRegLookup("HKLM","\\SOFTWARE\\Citrix\\XenTools","DisableAutoUpdate"))
+         key = self.os.winRegLookup("HKLM","\\SOFTWARE\\Citrix\\XenTools","DisableAutoUpdate")
          return key != "1"
 
     def enable(self):
-        pass
+        self.os.winRegAdd("HKLM","\\SOFTWARE\\Citrix\\XenTools","DisableAutoUpdate","SZ","0")
 
     def disable(self):
-        pass
+        self.os.winRegAdd("HKLM","\\SOFTWARE\\Citrix\\XenTools","DisableAutoUpdate","SZ","1")
 
-    def setURL(self):
-        pass
+    def setURL(self,url):
+        self.os.winRegAdd("HKLM","\\SOFTWARE\\Citrix\\XenTools","update_url","SZ","%s"%url)
 
     def defaultURL(self):
-        pass
-
-    def checkKeyPresence(self):
-        pass
+        self.os.winRegDel("HKLM","\\SOFTWARE\\Citrix\\XenTools","update_url")
+
+    def checkKeyPresent(self):
+        try:
+            key = self.os.winRegLookup("HKLM","\\SOFTWARE\\Citrix\\XenTools","DisableAutoUpdate",healthCheckOnFailure=False)
+            if key:
+                return True
+        except:
+            return False
 
 class VSS(LicensedFeature):
 
@@ -204,7 +213,7 @@ class VSS(LicensedFeature):
         else:
             return False
 
-    def checkKeyPresence(self):
+    def checkKeyPresent(self):
         host = self.guest.host
         if host.xenstoreExists("/guest_agent_features/VSS") == 1:
             return True
@@ -213,10 +222,15 @@ class VSS(LicensedFeature):
 
 class AutoUpdate(ActorAbstract):
 
+    def __init__(self, guest, os):
+        self.guest = guest
+        self.os = os
+        self.setUserPoolAdmin()
+
     def checkDownloadedMSI(self):
         pass
 
-    def comapreMSIArch(self):
+    def compareMSIArch(self):
         pass
 
     def isLicensed(self):
@@ -227,9 +241,9 @@ class AutoUpdate(ActorAbstract):
             return False
 
     def setUserVMUser(self):
-        user = VMUser()
+        user = VMUser(self.guest,self.os)
         self.setActor(user)
 
-    def setUserPooAdmin(self):
-        user = PoolAdmin()
+    def setUserPoolAdmin(self):
+        user = PoolAdmin(self.guest,self.os)
         self.setActor(user)
\ No newline at end of file