[Et-mgmt-commits-list] [SCM] virt-factory branch, master now at 9a7a1e5778b72fc947a5604876cc47a0bab7d0ed

Michael DeHaan mdehaan at redhat.com
Thu Apr 19 16:51:36 UTC 2007


Hello,

This is an automated email from the git hooks/update script, it was
generated because a ref change was pushed to the repository.

Updating branch, master,
       via  9a7a1e5778b72fc947a5604876cc47a0bab7d0ed (commit)
      from  e2033a4f504ee89dafa94f2bcf9513f37056ed82 (commit)

- Log -----------------------------------------------------------------
commit 9a7a1e5778b72fc947a5604876cc47a0bab7d0ed
Author: Michael DeHaan <mdehaan at mdehaan.rdu.redhat.com>
Date:   Thu Apr 19 12:52:54 2007 -0400

    Modify config object class slightly -- the new-style singleton was calling
    init on each call to new, even though it was returning the same ID.  Also
    some miscellaneous cleanup.
    
    New style config syncing now works again, cobbler should also be upgraded
    to HEAD.
-----------------------------------------------------------------------

Diffstat:
 service/modules/config.py       |    1 -
 service/modules/deployment.py   |    4 ++--
 service/modules/distribution.py |    2 +-
 service/modules/machine.py      |    8 +++-----
 service/modules/profile.py      |    2 +-
 service/modules/provisioning.py |   33 +++++++++++++++++----------------
 service/server/config_data.py   |   11 ++++++++++-
 7 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/service/modules/config.py b/service/modules/config.py
index 62d7cc8..c06e84b 100755
--- a/service/modules/config.py
+++ b/service/modules/config.py
@@ -40,7 +40,6 @@ class Config(web_svc.AuthWebSvc):
      def list(self, config_args=None):
         return success(self.config_data)
 
-
 methods = Config()
 register_rpc = methods.register_rpc
 
diff --git a/service/modules/deployment.py b/service/modules/deployment.py
index fe3c8ee..1faac4a 100755
--- a/service/modules/deployment.py
+++ b/service/modules/deployment.py
@@ -24,12 +24,12 @@ import web_svc
 import task
 import regtoken
 import provisioning
+from server import config_data
 
 import subprocess
 import socket
 import traceback
 import threading
-import cobbler.api
 
 
 
@@ -162,7 +162,7 @@ class Deployment(web_svc.AuthWebSvc):
          })
 
     def cobbler_sync(self, data):
-         cobbler_api = cobbler.api.BootAPI()
+         cobbler_api = config_data.Config().cobbler_api
          profiles = profile.Profile().list(None, {}).data
          provisioning.CobblerTranslatedSystem(cobbler_api, profiles, data, is_virtual=True)
 
diff --git a/service/modules/distribution.py b/service/modules/distribution.py
index 3fe1207..63dac2f 100755
--- a/service/modules/distribution.py
+++ b/service/modules/distribution.py
@@ -143,7 +143,7 @@ class Distribution(web_svc.AuthWebSvc):
         return result
 
     def cobbler_sync(self, data):
-         cobbler_api = cobbler.api.BootAPI()
+         cobbler_api = config_data.Config().cobbler_api
          provisioning.CobblerTranslatedDistribution(cobbler_api, data)       
  
     def edit(self, token, dist_args): 
diff --git a/service/modules/machine.py b/service/modules/machine.py
index 39854a5..b901c21 100755
--- a/service/modules/machine.py
+++ b/service/modules/machine.py
@@ -23,6 +23,7 @@ import provisioning
 import web_svc
 import regtoken
 import deployment
+from server import config_data
 
 import threading
 import traceback
@@ -165,12 +166,9 @@ class Machine(web_svc.AuthWebSvc):
         return result
 
     def cobbler_sync(self, data):
-        cobbler_api = cobbler.api.BootAPI()
-        print "--- HERE WE GO!"
-        for p in cobbler_api.profiles():
-            print "PROFILE: ", p
+        cobbler_api = config_data.Config().cobbler_api
         profiles = profile.Profile().list(None, {}).data
-        provisioning.Provisioning().sync(None,None)
+        provisioning.CobblerTranslatedSystem(cobbler_api, profiles, data, is_virtual=True)
  
     def new(self, token):
         """
diff --git a/service/modules/profile.py b/service/modules/profile.py
index e35299f..4816097 100755
--- a/service/modules/profile.py
+++ b/service/modules/profile.py
@@ -160,7 +160,7 @@ class Profile(web_svc.AuthWebSvc):
     def cobbler_sync(self, data):
 
          # make the corresponding cobbler calls.
-         cobbler_api = cobbler.api.BootAPI()
+         cobbler_api = config_data.Config().cobbler_api
          distributions = distribution.Distribution().list(None, {}).data
          provisioning.CobblerTranslatedProfile(cobbler_api ,distributions, data)
 
diff --git a/service/modules/provisioning.py b/service/modules/provisioning.py
index 9900e3f..cfed934 100755
--- a/service/modules/provisioning.py
+++ b/service/modules/provisioning.py
@@ -29,7 +29,6 @@
 # don't expect cobbler to validate it or otherwise fix it.
 
 
-import cobbler.api
 
 from server.codes import *
 from server import config_data
@@ -282,7 +281,7 @@ class CobblerTranslatedSystem:
        self.logger = logger.Logger().logger
 
        self.logger.debug("from_db is ...")
-       self.logger.debug(from_db)
+       # self.logger.debug(from_db)
        print "***************"
        print from_db
        if not from_db.has_key("mac_address") or from_db["mac_address"] is None:
@@ -426,8 +425,8 @@ class Provisioning(web_svc.AuthWebSvc):
       # the server field might have changed.
       
       try:
-         cobbler_api = cobbler.api.BootAPI()
-         cobbler_api.deserialize()
+         cobbler_api = config_data.Config().cobbler_api
+         #cobbler_api.deserialize()
          cobbler_repos    = cobbler_api.repos()   
          cobbler_distros  = cobbler_api.distros()
          cobbler_profiles = cobbler_api.profiles()
@@ -436,24 +435,26 @@ class Provisioning(web_svc.AuthWebSvc):
          # cobbler_profiles.clear()
          # cobbler_systems.clear()
          # cobbler_repos.clear()
-         
+         print "------------------- CHECK PROFILES ---- "
+         for p in cobbler_profiles:
+             print p      
          # cobbler can/will could raise exceptions on failure at any point...
          # return code checking is not needed.
          for r in vf_config["repos"].keys():
-            print "- repository: %s" % r
-            CobblerTranslatedRepo(cobbler_api,r,vf_config["repos"][r])
+             print "- repository: %s" % r
+             CobblerTranslatedRepo(cobbler_api,r,vf_config["repos"][r])
          for d in distributions:
-            print "- distribution: %s" % d
-            CobblerTranslatedDistribution(cobbler_api,d)
+             print "- distribution: %s" % d
+             CobblerTranslatedDistribution(cobbler_api,d)
          for i in profiles:
-            print "- profile: %s" % i
-            CobblerTranslatedProfile(cobbler_api,distributions,i)
+             print "- profile: %s" % i
+             CobblerTranslatedProfile(cobbler_api,distributions,i)
          for p in machines:
-            print "- machine: %s" % p
-            CobblerTranslatedSystem(cobbler_api,profiles,p)
+             print "- machine: %s" % p
+             CobblerTranslatedSystem(cobbler_api,profiles,p)
          for dp in deployments:
-            print "- deployment: %s" % dp
-            CobblerTranslatedSystem(cobbler_api,profiles,dp)
+             print "- deployment: %s" % dp
+             CobblerTranslatedSystem(cobbler_api,profiles,dp)
          
 
          cobbler_api.serialize()
@@ -488,7 +489,7 @@ class Provisioning(web_svc.AuthWebSvc):
             print ENOROOT 
 
 
-        cobbler_api = cobbler.api.BootAPI()
+        cobbler_api = config_data.Config().cobbler_api
         # since cobbler is running in syncless mode, make sure sync
         # has been run at least once with an empty config to create
         # directories
diff --git a/service/server/config_data.py b/service/server/config_data.py
index fe0e871..b38c3f1 100755
--- a/service/server/config_data.py
+++ b/service/server/config_data.py
@@ -19,6 +19,7 @@ from codes import *
 
 import os
 import yaml
+from cobbler import api as cobbler_api
 
 CONFIG_FILE = "/etc/virt-factory/settings"
 
@@ -31,8 +32,14 @@ class Singleton(object):
 
 
 class Config(Singleton):
+
+    has_read = False
+
     def __init__(self):
-        self.read()
+        if not Config.has_read:
+            self.read()
+            print "***** CONFIG RELOAD *****"
+            Config.has_read = True
 
     def read(self):
         if not os.path.exists(CONFIG_FILE):
@@ -40,6 +47,8 @@ class Config(Singleton):
         config_file = open(CONFIG_FILE)
         data = config_file.read()
         self.ds = yaml.load(data).next()
+        self.cobbler_api = cobbler_api.BootAPI()
+        self.cobbler_api.deserialize()
 
     def get(self):
         return self.ds

hooks/update
---
Git Source Code Management System
hooks/update refs/heads/master \
  e2033a4f504ee89dafa94f2bcf9513f37056ed82 \
  9a7a1e5778b72fc947a5604876cc47a0bab7d0ed




More information about the Et-mgmt-commits-list mailing list