The branch, eden-pre has been updated
       via  dae4ab496f986a1957066f648fcda29a354eb9cd (commit)
       via  b959643dc03fbfff846225b61136bb5af56c90fc (commit)
      from  5db65e4c6b3f3399ad64b8ef23dfdc791818c06f (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=dae4ab496f986a1957066f648fcda29a354eb9cd

commit dae4ab496f986a1957066f648fcda29a354eb9cd
Author: amet <[email protected]>
Date:   Thu Feb 23 15:55:29 2012 +0400

    [service.libraryautoupdate] -v0.5.1
    
    -Advanced timer functions now add the ability to do cron-like scheduling of 
the update process, thanks to pkscuot for the timer ideas
    -option to skip during media playback or run the update anyway
    
    [B]Version 0.5.1[/B]
    
    -merged changes from pkscuot's branch.
    -rounds last_run to top of the minute (timer executes at 00 not anywhere in 
minute)
    -creates addon data directory if it doesn't exist

diff --git a/service.libraryautoupdate/README.txt 
b/service.libraryautoupdate/README.txt
index 1f17852..e39c79d 100644
--- a/service.libraryautoupdate/README.txt
+++ b/service.libraryautoupdate/README.txt
@@ -1,5 +1,7 @@
 The XBMC Library Updater will update your music and/or video libraries 
according to times specified by you. 

 

+Thanks to pkscuot for several small tweaks to this addon!

+

 A note on Timers:

 

 Standard Timer - specify an interval to run the library update process. It 
will be launched every X hours within the interval unless on of the conditions 
specified by you as been met (don't run during media playback, etc) in which 
case it will be run at the next earliest convenience. 

diff --git a/service.libraryautoupdate/addon.xml 
b/service.libraryautoupdate/addon.xml
index 4e62e62..30c46e8 100644
--- a/service.libraryautoupdate/addon.xml
+++ b/service.libraryautoupdate/addon.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

 <addon id="service.libraryautoupdate"

-    name="XBMC Library Auto Update" version="0.5.0" provider-name="robweber">

+    name="XBMC Library Auto Update" version="0.5.1" provider-name="robweber">

   <requires>

     <import addon="xbmc.python" version="2.0"/>

   </requires>

diff --git a/service.libraryautoupdate/changelog.txt 
b/service.libraryautoupdate/changelog.txt
index 2923665..773a9dc 100644
--- a/service.libraryautoupdate/changelog.txt
+++ b/service.libraryautoupdate/changelog.txt
@@ -29,5 +29,11 @@
 [B]Version 0.5.0[/B]

 

 -major changes to settings, split them by General and Timer category

--Advanced timer functions now add the ability to do cron-like scheduling of 
the update process

--option to skip during media playback or run the update anyway
\ No newline at end of file
+-Advanced timer functions now add the ability to do cron-like scheduling of 
the update process, thanks to pkscuot for the timer ideas

+-option to skip during media playback or run the update anyway

+

+[B]Version 0.5.1[/B]

+

+-merged changes from pkscuot's branch. 

+-rounds last_run to top of the minute (timer executes at 00 not anywhere in 
minute)

+-creates addon data directory if it doesn't exist
\ No newline at end of file
diff --git a/service.libraryautoupdate/cronex.py 
b/service.libraryautoupdate/cronex.py
index c48b824..b7640b6 100644
--- a/service.libraryautoupdate/cronex.py
+++ b/service.libraryautoupdate/cronex.py
@@ -1,6 +1,9 @@
 #!/usr/bin/env python

 """

 

+Created by Eric Pruitt

+http://code.activestate.com/recipes/577466-cron-like-triggers/

+

 This module provides a class for cron-like scheduling systems, and

 exposes the function used to convert static cron expressions to Python

 sets.

diff --git a/service.libraryautoupdate/service.py 
b/service.libraryautoupdate/service.py
index 73e6f14..600d037 100644
--- a/service.libraryautoupdate/service.py
+++ b/service.libraryautoupdate/service.py
@@ -106,8 +106,8 @@ class AutoUpdater:
             self.log('Update Music')
             xbmc.executebuiltin('UpdateLibrary(music)')
 
-        #reset the last run timer    
-        self.last_run = time.time()
+        #reset the last run timer - mod to top of minute (thanks pkscuot)     
+        self.last_run = time.time() - (time.time() % 60)
         self.writeLastRun()
 
     def readLastRun(self):
@@ -122,6 +122,10 @@ class AutoUpdater:
         
 
     def writeLastRun(self):
+        #create the addon folder if it doesn't exist
+        if(not os.path.exists(xbmc.translatePath(self.datadir))):
+            os.makedirs(xbmc.translatePath(self.datadir))
+            
         f = open(xbmc.translatePath(self.datadir + "last_run.txt"),"w")
         
         #write out the value for the last time the program ran

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=b959643dc03fbfff846225b61136bb5af56c90fc

commit b959643dc03fbfff846225b61136bb5af56c90fc
Author: amet <[email protected]>
Date:   Thu Feb 23 15:52:53 2012 +0400

    [script.advanced.wol] -v1.1.3
    
    - Fixed script-error on ATV2
    
    [B]1.1.2[/B]
    - Fixed hang-up on XBMC-exit when using continuous WOL-packets- and 
autostart-feature
    - Fixed problems with XBMC accessing internet-resources when using 
continuous WOL-packets- and autostart-feature
    
    [B]1.1.1[/B]
    - Fixed error and improved error-message on missing root-rights with 
hostup-checks on linux machines.
    
    [B]1.1.0[/B]
    - Added option to send continuous WOL-packets (thanks to user "TheLexus"!).
    - Added option to enable/disable notifications.
    - Added option to enable/disable hostup-check and -notifications.
    - Reorganisation of settings.
    - Improved error-message on missing administrator-rights with hostup-checks.
    - Fixed error with non-ASCII-charakters in error messages of hostup-check.

diff --git a/script.advanced.wol/addon.xml b/script.advanced.wol/addon.xml
index 02dafd1..c6aa24b 100644
--- a/script.advanced.wol/addon.xml
+++ b/script.advanced.wol/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.advanced.wol"
        name="Advanced Wake On Lan"
-       version="1.0.0"
+       version="1.1.3"
        provider-name="mandark">
   <requires>
         <import addon="xbmc.python" version="2.0"/>
@@ -29,7 +29,9 @@ This feature is especially useful, if you want to launch your 
remote computer, w
 You can also pass the Host/IP and MAC-Address of the Remote Computer to the 
script as the third parameter, bypassing the config in the addon-settings. E.g.:
   
&quot;RunScript(&amp;quot;script.advanced.wol&amp;quot;,,,my-server@50:E5:49:B5:61:34)&quot;
 
-This is useful, if you have more then one remote computer you want to wake 
independently.</description>
+This is useful, if you have more then one remote computer you want to wake 
independently.
+------------------------
+In the advanced settings you can set the addon to continue sending WOL packets 
with a configurable delay. This is useful, when the remote computer or NAS is 
kept awake, as long as WOL-packets are received.</description>
     <disclaimer lang="en">Uses XBMC-builtin-command &quot;WakeOnLan&quot; to 
send the wakeup-packet, and the GNU-licensed &quot;python-ping&quot;-script to 
determine the status of the server. Please see the file &quot;ping.py&quot; for 
infos on the latter one.</disclaimer>
     <platform>all</platform>
   </extension>
diff --git a/script.advanced.wol/autostart.py b/script.advanced.wol/autostart.py
index 6207cc8..a57ddad 100644
--- a/script.advanced.wol/autostart.py
+++ b/script.advanced.wol/autostart.py
@@ -1,6 +1,6 @@
 # Wake-On-LAN
 
-import xbmc, xbmcgui, xbmcaddon
+import xbmcaddon, sys
 
 settings = xbmcaddon.Addon( id="script.advanced.wol" )
 
@@ -8,7 +8,6 @@ settings = xbmcaddon.Addon( id="script.advanced.wol" )
 settings = xbmcaddon.Addon( id="script.advanced.wol" )
 autostart = settings.getSetting("autostart")
 
-performWakeup = False
-
 if (autostart == "true"):
-  import default
\ No newline at end of file
+  import default
+  default.main()
\ No newline at end of file
diff --git a/script.advanced.wol/changelog.txt 
b/script.advanced.wol/changelog.txt
index b50cac4..6a475ef 100644
--- a/script.advanced.wol/changelog.txt
+++ b/script.advanced.wol/changelog.txt
@@ -1,2 +1,20 @@
+[B]1.1.3[/B]
+- Fixed script-error on ATV2
+
+[B]1.1.2[/B]
+- Fixed hang-up on XBMC-exit when using continuous WOL-packets- and 
autostart-feature
+- Fixed problems with XBMC accessing internet-resources when using continuous 
WOL-packets- and autostart-feature
+
+[B]1.1.1[/B]
+- Fixed error and improved error-message on missing root-rights with 
hostup-checks on linux machines.
+
+[B]1.1.0[/B]
+- Added option to send continuous WOL-packets (thanks to user "TheLexus"!).
+- Added option to enable/disable notifications.
+- Added option to enable/disable hostup-check and -notifications.
+- Reorganisation of settings.
+- Improved error-message on missing administrator-rights with hostup-checks.
+- Fixed error with non-ASCII-charakters in error messages of hostup-check.
+
 [B]1.0.0[/B]
 - Initial Release
\ No newline at end of file
diff --git a/script.advanced.wol/default.py b/script.advanced.wol/default.py
index d6229e4..03ba367 100644
--- a/script.advanced.wol/default.py
+++ b/script.advanced.wol/default.py
@@ -1,76 +1,114 @@
 # Wake-On-LAN
 
-import socket, ping, os
+import socket, ping, os, sys
 import xbmc, xbmcgui, xbmcaddon
 
-# Read Settings
-settings = xbmcaddon.Addon( id="script.advanced.wol" )
-language  = settings.getLocalizedString
-mac_address = settings.getSetting("macaddress")
-hostorip = settings.getSetting("hostorip")
-timeout = int(settings.getSetting("timeout"))
+def main():
+       # Read Settings
+       settings = xbmcaddon.Addon( id="script.advanced.wol" )
+       language  = settings.getLocalizedString
+       macAddress = settings.getSetting("macAddress")
+       hostOrIp = settings.getSetting("hostOrIp")
+       pingTimeout = int(settings.getSetting("pingTimeout"))
+       enableNotifies = settings.getSetting("enableNotifies")
+       enableVerificationNotifies = 
settings.getSetting("enableVerificationNotifies")
+       continuousWol = settings.getSetting("continuousWol")
+       continuousWolDelay = int(settings.getSetting("continuousWolDelay"))
 
-#if the scrpit was called with a 3rd parameter,
-#use the mac-address and host/ip from there
-try:
-       if (len(sys.argv[3])>0):
-               arrCustomServer = sys.argv[3].split('@')
-               hostorip = arrCustomServer[0]
-               mac_address = arrCustomServer[1]
-except:
-       pass
+       #if the scrpit was called with a 3rd parameter,
+       #use the mac-address and host/ip from there
+       try:
+               if (len(sys.argv[3])>0):
+                       arrCustomServer = sys.argv[3].split('@')
+                       hostOrIp = arrCustomServer[0]
+                       macAddress = arrCustomServer[1]
+       except:
+               pass
 
-# Set Icons
-rootDir = settings.getAddonInfo('path')
-if rootDir[-1] == ';':rootDir = rootDir[0:-1]
-resDir = os.path.join(rootDir, 'resources')
-iconDir = os.path.join(resDir, 'icons')
-iconConnect = os.path.join(iconDir, 'server_connect.png')
-iconError = os.path.join(iconDir, 'server_error.png')
-iconSuccess = os.path.join(iconDir, 'server.png')
+       # Set Icons
+       rootDir = settings.getAddonInfo('path')
+       if rootDir[-1] == ';':rootDir = rootDir[0:-1]
+       resDir = os.path.join(rootDir, 'resources')
+       iconDir = os.path.join(resDir, 'icons')
+       iconConnect = os.path.join(iconDir, 'server_connect.png')
+       iconError = os.path.join(iconDir, 'server_error.png')
+       iconSuccess = os.path.join(iconDir, 'server.png')
 
-launchcommand = False
-delaycommand = False
-try:
-    if (len(sys.argv[1])>0):
-       launchcommand = True
-       if (str(sys.argv[2]) == str(True)):
-               delaycommand = True
-except:
-       pass
+       launchcommand = False
+       delaycommand = False
+       try:
+               if (len(sys.argv[1])>0):
+                       launchcommand = True
+                       if (str(sys.argv[2]) == str(True)):
+                               delaycommand = True
+       except:
+               pass
 
-if ((launchcommand == True) & (delaycommand == False)):
-       xbmc.executebuiltin(sys.argv[1])
+       if ((launchcommand == True) & (delaycommand == False)):
+               xbmc.executebuiltin(sys.argv[1])
 
-# Send Connection Notification
-xbmc.executebuiltin('XBMC.Notification("'+language(60000).replace("%hostorip%",hostorip)+'","",5000,"'+iconConnect+'")')
+       # Send WOL-Packet
+       xbmc.executebuiltin('XBMC.WakeOnLan("'+macAddress+'")')
+       print 'WakeOnLan signal sent to MAC-Address '+macAddress
 
-# Send WOL-Packet
-xbmc.executebuiltin('XBMC.WakeOnLan("'+mac_address+'")')
+       if (enableNotifies == "true"):
 
-# Check for Ping-Answer
-try:
-       timecount = 1
-       while timecount <= timeout:
-               delay = ping.do_one(hostorip, 1)
-               if delay == None:
-                       
xbmc.executebuiltin('XBMC.Notification("'+language(60001).replace("%hostorip%",hostorip)+'","'+language(60002).replace("%timecount%",str(timecount)).replace("%timeout%",str(timeout))+'",5000,"'+iconConnect+'")')
-                       timecount = timecount+1
-               else:
-                       break
-       if delay == None:
-               xbmc.sleep(1000)
-               
xbmc.executebuiltin('XBMC.Notification("'+language(60003).replace("%hostorip%",hostorip)+'","",5000,"'+iconError+'")')
-       else:
-               xbmc.sleep(1000)
-               if ((launchcommand == True) & (delaycommand == True)):
-                       
xbmc.executebuiltin('XBMC.Notification("'+language(60004).replace("%hostorip%",hostorip)+'","'+language(60007)+'",5000,"'+iconSuccess+'")')
+               # Send Connection Notification
+               
xbmc.executebuiltin('XBMC.Notification("'+language(60000).replace("%hostOrIp%",hostOrIp)+'","",5000,"'+iconConnect+'")')
+               
+               if (enableVerificationNotifies == "true"):
+
+                       # Check for Ping-Answer
+                       try:
+                               timecount = 1
+                               while timecount <= pingTimeout:
+                                       delay = ping.do_one(hostOrIp, 1)
+                                       if delay == None:
+                                               
xbmc.executebuiltin('XBMC.Notification("'+language(60001).replace("%hostOrIp%",hostOrIp)+'","'+language(60002).replace("%timecount%",str(timecount)).replace("%timeout%",str(pingTimeout))+'",5000,"'+iconConnect+'")')
+                                               timecount = timecount+1
+                                       else:
+                                               break
+                               if delay == None:
+                                       xbmc.sleep(1000)
+                                       
xbmc.executebuiltin('XBMC.Notification("'+language(60003).replace("%hostOrIp%",hostOrIp)+'","",5000,"'+iconError+'")')
+                               else:
+                                       xbmc.sleep(1000)
+                                       if ((launchcommand == True) & 
(delaycommand == True)):
+                                               
xbmc.executebuiltin('XBMC.Notification("'+language(60004).replace("%hostOrIp%",hostOrIp)+'","'+language(60007)+'",5000,"'+iconSuccess+'")')
+                                               xbmc.sleep(1000)
+                                               xbmc.executebuiltin(sys.argv[1])
+                                       
xbmc.executebuiltin('XBMC.Notification("'+language(60004).replace("%hostOrIp%",hostOrIp)+'","",5000,"'+iconSuccess+'")')
+                       except socket.error, (errno, msg):
+                               xbmc.sleep(1000)
+                               if errno == 11004:
+                                       
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+language(60006).replace("%hostOrIp%",hostOrIp)+'",10000,"'+iconError+'")')
+                               elif errno == 10013:
+                                       if sys.platform == 'win32':
+                                               
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+language(60009)+'",20000,"'+iconError+'")')
                     
+                               elif errno == 1:
+                                       if sys.platform == 'linux2':
+                                               
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+language(60010)+'",20000,"'+iconError+'")')
             
+                               else:
+                                       
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+msg.decode("utf-8","ignore")+'",20000,"'+iconError+'")')
+
+       # Continue sending WOL-packets, if configured in the settings
+       if (continuousWol == "true"):
+               xbmc.sleep(5000)
+               
+               if (enableNotifies == "true"):
+                       # Send Connection Notification
+                       
xbmc.executebuiltin('XBMC.Notification("'+language(60008).replace("%continuousWolDelay%",str(continuousWolDelay))+'","",5000,"'+iconSuccess+'")')
+               count = 0
+               while (not xbmc.abortRequested):
                        xbmc.sleep(1000)
-                       xbmc.executebuiltin(sys.argv[1])
-               
xbmc.executebuiltin('XBMC.Notification("'+language(60004).replace("%hostorip%",hostorip)+'","",5000,"'+iconSuccess+'")')
-except socket.error, (errno, msg):
-       xbmc.sleep(1000)
-       if errno == 11004:
-               
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+language(60006).replace("%hostorip%",hostorip)+'",5000,"'+iconError+'")')
-       else:
-               
xbmc.executebuiltin('XBMC.Notification("'+language(60005)+'","'+msg+'",5000,"'+iconError+'")')
+                       if (count == continuousWolDelay):
+                               
xbmc.executebuiltin('XBMC.WakeOnLan("'+macAddress+'")')
+                               print 'WakeOnLan signal sent to MAC-Address 
'+macAddress
+                               count = 0
+                       else:
+                               count+=1
+       
+       return
+       
+if __name__ == '__main__':
+       main()
\ No newline at end of file
diff --git a/script.advanced.wol/ping.py b/script.advanced.wol/ping.py
index 4bfb074..04711f9 100644
--- a/script.advanced.wol/ping.py
+++ b/script.advanced.wol/ping.py
@@ -187,7 +187,7 @@ def do_one(dest_addr, timeout):
                 " - Note that ICMP messages can only be sent from processes"
                 " running as root."
             )
-            raise socket.error(msg)
+            raise socket.error(errno, msg)
         raise # raise the original error
  
     my_ID = os.getpid() & 0xFFFF
diff --git a/script.advanced.wol/resources/language/English/strings.xml 
b/script.advanced.wol/resources/language/English/strings.xml
index 23cd372..9d5aaf8 100644
--- a/script.advanced.wol/resources/language/English/strings.xml
+++ b/script.advanced.wol/resources/language/English/strings.xml
@@ -1,15 +1,25 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <strings>
-    <string id="50000">Ethernet MAC-address</string>
-    <string id="50001">IP-address or hostname</string>
-    <string id="50002">Timeout (in seconds)</string>
-    <string id="50003">Wake on XBMC-start</string>
-    <string id="60000">Waking up %hostorip%...</string>
-    <string id="60001">Waiting for %hostorip% to wake up...</string>
+       <string id="51000">Basic settings</string>
+    <string id="51001">Ethernet MAC-address</string>
+    <string id="51002">Wake on XBMC-launch</string>
+       <string id="52000">Notification settings</string>
+    <string id="52001">Enable notifications</string>
+    <string id="52002">Enable hostup-check and -notifications</string>
+    <string id="52003">IP-address or hostname</string>
+    <string id="52004">Timeout for hostup-check (in seconds)</string>
+       <string id="53000">Advanced settings</string>
+       <string id="53001">Send continuous WOL-packets</string>
+       <string id="53002">Delay between packets (in seconds)</string>
+    <string id="60000">Waking up %hostOrIp%...</string>
+    <string id="60001">Waiting for %hostOrIp% to wake up...</string>
     <string id="60002">%timecount% of %timeout% seconds</string>
-    <string id="60003">%hostorip% did not wake up!</string>
-    <string id="60004">%hostorip% is awake!</string>
-    <string id="60005">SOCKET ERROR</string>
-    <string id="60006">Host %hostorip% could not be resolved.</string>
+    <string id="60003">%hostOrIp% did not wake up!</string>
+    <string id="60004">%hostOrIp% is awake!</string>
+    <string id="60005">ERROR on hostup-check</string>
+    <string id="60006">Host %hostOrIp% could not be resolved.</string>
     <string id="60007">Launching command...</string>
+       <string id="60008">Submission of WOL-packets will continue with a delay 
of %continuousWolDelay% seconds.</string>
+       <string id="60009">XBMC must be run as Administrator for this feature 
to work. You can disable &quot;hostup-notifications&quot; in the addon-settings 
to prevent this error.</string>
+       <string id="60010">XBMC must be run as root for this feature to work. 
You can disable &quot;hostup-notifications&quot; in the addon-settings to 
prevent this error.</string>
 </strings>
diff --git a/script.advanced.wol/resources/settings.xml 
b/script.advanced.wol/resources/settings.xml
index e117bf8..54c885f 100644
--- a/script.advanced.wol/resources/settings.xml
+++ b/script.advanced.wol/resources/settings.xml
@@ -1,7 +1,20 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
-    <setting id="macaddress" type="text" label="50000" 
default="00:25:11:c4:fb:8a" />
-    <setting id="hostorip" type="text" label="50001" default="my-server" />
-    <setting id="timeout" type="labelenum" label="50002" 
values="10|20|30|40|50|60|120" default="30" />
-    <setting id="autostart" type="bool" label="50003"  default="false" />
+       <category label="51000">
+               <setting id="separator" type="lsep" label="51000"/>
+               <setting id="macAddress" type="text" label="51001" 
default="00:25:11:c4:fb:8a" />
+               <setting id="hostOrIp" type="text" label="52003" 
default="my-server" />
+               <setting id="autostart" type="bool" label="51002"  
default="false" />
+       </category>
+       <category label="52000">
+               <setting id="separator" type="lsep" label="52000"/>
+               <setting id="enableNotifies" type="bool" label="52001" 
default="true" />
+               <setting id="enableVerificationNotifies" type="bool" 
label="52002" default="true" enable="eq(-1,true)" />
+               <setting id="pingTimeout" type="labelenum" label="52004" 
values="10|20|30|40|50|60|120" default="30" enable="eq(-1,true)+eq(-2,true)" />
+       </category>
+       <category label="53000">
+               <setting id="separator" type="lsep" label="53000"/>
+               <setting id="continuousWol" type="bool" label="53001" 
default="false" />
+               <setting id="continuousWolDelay" type="labelenum" label="53002" 
values="10|20|30|40|50|60|120" default="30" visible="eq(-1,true)" />
+       </category>
 </settings>

-----------------------------------------------------------------------

Summary of changes:
 script.advanced.wol/addon.xml                      |    6 +-
 script.advanced.wol/autostart.py                   |    7 +-
 script.advanced.wol/changelog.txt                  |   18 ++
 script.advanced.wol/default.py                     |  166 ++++++++++++--------
 script.advanced.wol/ping.py                        |    2 +-
 .../resources/language/English/strings.xml         |   30 +++--
 .../resources/language/German/strings.xml          |   15 --
 script.advanced.wol/resources/settings.xml         |   21 ++-
 service.libraryautoupdate/README.txt               |    2 +
 service.libraryautoupdate/addon.xml                |    2 +-
 service.libraryautoupdate/changelog.txt            |   10 +-
 service.libraryautoupdate/cronex.py                |    3 +
 service.libraryautoupdate/service.py               |    8 +-
 13 files changed, 185 insertions(+), 105 deletions(-)
 delete mode 100644 script.advanced.wol/resources/language/German/strings.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to