keep hostname first
[myplc.git] / db-config
index 27963a4..1eb78b1 100755 (executable)
--- a/db-config
+++ b/db-config
@@ -43,25 +43,53 @@ g_conf_files = filter(lambda conf_file: conf_file['enabled'] and \
 g_dests = [conf_file['dest'] for conf_file in g_conf_files]
 g_conf_files = dict(zip(g_dests, g_conf_files))
 
+# Get list of existing initscripts
+g_oldinitscripts = GetInitScripts()
+g_oldinitscript_names = [script['name'] for script in g_oldinitscripts]
+g_oldinitscripts = dict(zip(g_oldinitscript_names, g_oldinitscripts))
+
+def SetInitScript(initscript):
+    global g_oldinitscripts, g_oldinitscript_names
+    if initscript['name'] not in g_oldinitscript_names:
+        initscript_id = AddInitScript(initscript)
+        g_oldinitscript_names.append(initscript['name'])
+        initscript['initscript_id']=initscript_id
+        g_oldinitscripts[initscript['name']]=initscript
+    else:
+        orig_initscript = g_oldinitscripts[initscript['name']]
+        initscript_id = orig_initscript['initscript_id']
+        UpdateInitScript(initscript_id, initscript)
+        
 def SetConfFile(conf_file):
     global g_conf_files, g_dests
     if conf_file['dest'] not in g_dests:
         AddConfFile(conf_file)
     else:
         orig_conf_file = g_conf_files[conf_file['dest']]
-        UpdateConfFile(orig_conf_file['conf_file_id'], conf_file)
+        conf_file_id = orig_conf_file['conf_file_id']
+        UpdateConfFile(conf_file_id, conf_file)
 
 def SetSlice(slice, tags):
     # Create or Update slice
-    slices = GetSlices([slice['name']])
+    slice_name = slice['name']
+    slices = GetSlices([slice_name])
     if len(slices)==1:
         slice_id = slices[0]['slice_id']
+        if slice.has_key('name'):
+            del slice['name']
         UpdateSlice(slice_id, slice)
+        slice['name']=slice_name
     else:
-        AddSlice(slice)
+        expires = None
+        if slice.has_key('expires'):
+            expires = slice['expires']
+            del slice['expires']
+        slice_id = AddSlice(slice)
+        if expires <> None:
+            UpdateSlice(slice_id, {'expires':expires})
 
     # Get slice structure with all fields
-    slice = GetSlices([slice['name']])[0]
+    slice = GetSlices([slice_name])[0]
 
     # Create/update all tags
     slice_tags = {}
@@ -76,9 +104,9 @@ def SetSlice(slice, tags):
     # only update slice tags that have changed
     for (name, value) in tags:
         if name not in slice_tags:
-            AddSliceTag(slice['name'], name, value)            
+            AddSliceTag(slice_name, name, value)            
         elif value <> slice_tags[name]:
-            UpdateSliceTag(slice['name'],value)
+            UpdateSliceTag(slice_name,value)
 
 def SetMessage(message):
     messages = GetMessages([message['message_id']])