diff options
| author | James Cammarata <jimi@sngx.net> | 2009-03-10 18:32:30 -0500 |
|---|---|---|
| committer | James Cammarata <jimi@sngx.net> | 2009-03-10 18:32:45 -0500 |
| commit | 1f005d6bbfddb479007f0108a58968c856ade7a4 (patch) | |
| tree | c1152cfbe0f95687fe6a3db2c4a16a70ebee8bea | |
| parent | 62d0d2a0803891d92aa06381691fcbbd71635d16 (diff) | |
| parent | af1b793291be4cb85f8fb82ce8f41cabc688c41f (diff) | |
| download | cobbler-1f005d6bbfddb479007f0108a58968c856ade7a4.tar.gz cobbler-1f005d6bbfddb479007f0108a58968c856ade7a4.tar.xz cobbler-1f005d6bbfddb479007f0108a58968c856ade7a4.zip | |
Merge branch 'devel' of git://git.fedorahosted.org/cobbler into ris-devel
| -rw-r--r-- | CHANGELOG | 6 | ||||
| -rw-r--r-- | MANIFEST.in | 2 | ||||
| -rw-r--r-- | aux/anamon (renamed from aux/anamon.py) | 0 | ||||
| -rw-r--r-- | aux/anamon.init | 6 | ||||
| -rw-r--r-- | cobbler.spec | 6 | ||||
| -rw-r--r-- | cobbler/action_check.py | 4 | ||||
| -rw-r--r-- | cobbler/remote.py | 3 | ||||
| -rw-r--r-- | cobbler/webui/CobblerWeb.py | 42 | ||||
| -rw-r--r-- | scripts/cobbler-ext-nodes | 4 | ||||
| -rw-r--r-- | setup.py | 2 | ||||
| -rw-r--r-- | snippets/post_anamon | 6 | ||||
| -rw-r--r-- | snippets/pre_anamon | 4 | ||||
| -rw-r--r-- | templates/tftpd-rules.template | 2 | ||||
| -rw-r--r-- | webui_templates/master.tmpl | 24 | ||||
| -rw-r--r-- | webui_templates/search.tmpl | 135 |
15 files changed, 188 insertions, 58 deletions
@@ -1,6 +1,9 @@ Cobbler CHANGELOG -- Tue Mar 3 2009 - 1.5.0 +- Mon Mar 7 2009 - 1.7.0 +- Development release start + +- Mon Mar 7 2009 - 1.6.0 - (FEAT) Improved anaconda monitoring code - (FEAT) preliminary linux-ris support for windows installs (WIP) - (FEAT) download comps.xml always @@ -16,6 +19,7 @@ Cobbler CHANGELOG - (FEAT) use nameserver variable in network config in Anaconda when set - (BUGF) sleep 5 seconds between power cycling systems - (FEAT) support for /usr/bin/cobbler-register +- (FEAT) web UI search feature - Tue Mar 3 2009 - 1.4.3 - (BUGF) fix OMAPI support's (note: deprecated) usage of subprocess diff --git a/MANIFEST.in b/MANIFEST.in index 22e55a70..6532779e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -19,7 +19,7 @@ include config/users.conf include config/completions include config/cobbler_bash include config/cheetah_macros -include aux/anamon.py +include aux/anamon include aux/anamon.init recursive-include templates *.template recursive-include installer_templates *.template defaults diff --git a/aux/anamon.py b/aux/anamon index fe4d0eb6..fe4d0eb6 100644 --- a/aux/anamon.py +++ b/aux/anamon diff --git a/aux/anamon.init b/aux/anamon.init index b2fd9828..d029c881 100644 --- a/aux/anamon.init +++ b/aux/anamon.init @@ -48,7 +48,7 @@ fi start() { echo -n $"Starting anamon: " - daemon /usr/local/sbin/anamon.py --watchfile \"$LOGFILES\" --name $COBBLER_NAME --server $COBBLER_SERVER --port ${COBBLER_PORT:-80} --exit + daemon /usr/local/sbin/anamon --watchfile \"$LOGFILES\" --name $COBBLER_NAME --server $COBBLER_SERVER --port ${COBBLER_PORT:-80} --exit RETVAL=$? [ $RETVAL -eq 0 ] && touch $LOCKFILE echo @@ -61,7 +61,7 @@ start() { stop () { echo -n $"Shutting down anamon: " - killproc /usr/local/sbin/anamon.py + killproc /usr/local/sbin/anamon RETVAL=$? [ $RETVAL -eq 0 ] && rm -f $LOCKFILE echo @@ -89,7 +89,7 @@ case "$1" in fi ;; status) - status anamon.py + status anamon RETVAL=$? ;; *) diff --git a/cobbler.spec b/cobbler.spec index 33033e93..73a39f14 100644 --- a/cobbler.spec +++ b/cobbler.spec @@ -165,10 +165,8 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT %dir /var/www/cobbler/aux %defattr(444,apache,apache) /var/www/cobbler/webui/* -%ghost /var/www/cobbler/aux/anamon.pyc -%ghost /var/www/cobbler/aux/anamon.pyo -/var/www/cobbler/aux/*.py -/var/www/cobbler/aux/*.init +/var/www/cobbler/aux/anamon +/var/www/cobbler/aux/anamon.init %defattr(755,root,root) %{_bindir}/cobbler diff --git a/cobbler/action_check.py b/cobbler/action_check.py index ea1fb66d..3cd4a0f8 100644 --- a/cobbler/action_check.py +++ b/cobbler/action_check.py @@ -364,13 +364,13 @@ class BootCheck: if os.path.exists("/etc/init.d/ris-linuxd"): return True else: - status.append(_("ris-linux is not installed, Microsoft Windows remote installations will not function correctly")) + status.append(_("ris-linux was not found, Microsoft Windows remote (physical) installations will not function correctly unless installed")) return False def check_for_cabextract(self,status): if not os.path.exists("/usr/bin/cabextract"): - status.append(_("cabextract was not found, Microsoft Windows imports will not work correctly")) + status.append(_("cabextract was not found, Microsoft Windows imports (for physical installations) will not work correctly unless installed")) def check_smb_shares(self,status): diff --git a/cobbler/remote.py b/cobbler/remote.py index 10e9cc20..6fdb96fe 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -906,9 +906,6 @@ class CobblerXMLRPCInterface: data2[str(key)] = self.xmlrpc_hacks(data[key]) return data2 - else: - data = '~' - return data def get_status(self,**rest): diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py index 6175ef50..ebfe5274 100644 --- a/cobbler/webui/CobblerWeb.py +++ b/cobbler/webui/CobblerWeb.py @@ -154,17 +154,21 @@ class CobblerWeb(object): def distro_menu(self,**spam): return self.__render('blank.tmpl',{ 'more_blank' : 1}) - def __search_execute(self,what,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None): + def __search_execute(self,what,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None): if not self.__xmlrpc_setup(): return self.xmlrpc_auth_failure() criteria={} - if key1 is not None and key1 != "": + if value1 is not None and value1 != "": criteria[key1] = value1.replace('"','') - if key2 is not None and key2 != "": + if value2 is not None and value2 != "": criteria[key2] = value2.replace('"','') - if key3 is not None and key3 != "": + if value3 is not None and value3 != "": criteria[key3] = value3.replace('"','') + if value4 is not None and value4 != "": + criteria[key4] = value4.replace('"','') + if value5 is not None and value5 != "": + criteria[key5] = value5.replace('"','') params = {} params['page'] = -1 @@ -189,16 +193,20 @@ class CobblerWeb(object): else: return self.__render('empty.tmpl', { 'search' : 1 }) - def distro_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,**rest): - return self.__search_execute("distro",key1,value1,key2,value2,key3,value3) - def profile_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,**rest): - return self.__search_execute("profile",key1,value1,key2,value2,key3,value3) - def system_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,**rest): - return self.__search_execute("system",key1,value1,key2,value2,key3,value3) - def image_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,**rest): - return self.__search_execute("image",key1,value1,key2,value2,key3,value3) - def repo_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,**rest): - return self.__search_execute("repo",key1,value1,key2,value2,key3,value3) + def distro_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None,**rest): + return self.__search_execute("distro",key1,value1,key2,value2,key3,value3,key4,value4,key5,value5) + + def profile_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None,**rest): + return self.__search_execute("profile",key1,value1,key2,value2,key3,value3,key4,value4,key5,value5) + + def system_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None,**rest): + return self.__search_execute("system",key1,value1,key2,value2,key3,value3,key4,value4,key5,value5) + + def image_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None,**rest): + return self.__search_execute("image",key1,value1,key2,value2,key3,value3,key4,value4,key5,value5) + + def repo_search_execute(self,key1=None,value1=None,key2=None,value2=None,key3=None,value3=None,key4=None,value4=None,key5=None,value5=None,**rest): + return self.__search_execute("repo",key1,value1,key2,value2,key3,value3,key4,value4,key5,value5) def __search(self, what): caption = "" @@ -276,7 +284,7 @@ class CobblerWeb(object): def distro_save(self,name=None,comment=None,oldname=None,new_or_edit=None,editmode='edit',kernel=None, initrd=None,kopts=None,koptspost=None,ksmeta=None,owners=None,arch=None,breed=None,redhatmanagementkey=None, - mgmt_classes=None,osversion=None,delete1=False,delete2=False,recursive=False,**args): + redhatmanagementserver=None,mgmt_classes=None,osversion=None,delete1=False,delete2=False,recursive=False,**args): if not self.__xmlrpc_setup(): return self.xmlrpc_auth_failure() @@ -598,7 +606,7 @@ class CobblerWeb(object): virtpath=None,virtram=None,virttype=None,virtcpus=None,virtfilesize=None, name_servers=None,name_servers_search=None, power_type=None, power_user=None, power_pass=None, power_id=None, power_address=None, - gateway=None,hostname=None,redhatmanagementkey=None,mgmt_classes=None,delete1=None, delete2=None, **args): + gateway=None,hostname=None,redhatmanagementkey=None,redhatmanagementserver=None,mgmt_classes=None,delete1=None, delete2=None, **args): if not self.__xmlrpc_setup(): @@ -774,7 +782,7 @@ class CobblerWeb(object): ksmeta=None,owners=None,enablemenu=None,virtfilesize=None,virtram=None,virttype=None, virtpath=None,repos=None,dhcptag=None,delete1=False,delete2=False, parent=None,virtcpus=None,virtbridge=None,subprofile=None,server_override=None, - name_servers=None,name_servers_search=None,redhatmanagementkey=None,mgmt_classes=None,recursive=False,**args): + name_servers=None,name_servers_search=None,redhatmanagementserver=None,redhatmanagementkey=None,mgmt_classes=None,recursive=False,**args): if not self.__xmlrpc_setup(): return self.xmlrpc_auth_failure() diff --git a/scripts/cobbler-ext-nodes b/scripts/cobbler-ext-nodes index f9510c0d..919bc948 100644 --- a/scripts/cobbler-ext-nodes +++ b/scripts/cobbler-ext-nodes @@ -1,6 +1,6 @@ #!/usr/bin/python -from cobbler import yaml as yaml +import yaml # PyYAML version import urlgrabber import sys @@ -15,7 +15,7 @@ if __name__ == "__main__": conf = open("/etc/cobbler/settings") data = conf.read() conf.close() - server = yaml.load(data).next()["server"] + server = yaml.load(data)["server"] url = "http://%s/cblr/svc/op/puppet/hostname/%s" % (server, hostname) print urlgrabber.urlread(url) @@ -333,7 +333,7 @@ if __name__ == "__main__": (wwwcon, ['webui_content/cobblerweb.css']), # Anamon script - (vw_aux, ['aux/anamon.py', 'aux/anamon.init']), + (vw_aux, ['aux/anamon', 'aux/anamon.init']), # Directories to hold cobbler triggers ("%s/add/distro/pre" % trigpath, []), diff --git a/snippets/post_anamon b/snippets/post_anamon index fc33cfa5..816a0c13 100644 --- a/snippets/post_anamon +++ b/snippets/post_anamon @@ -1,13 +1,13 @@ #if $str($getVar('anamon_enabled','')) == "1" ## install anamon script -wget -O /usr/local/sbin/anamon.py "http://$server/cobbler/aux/anamon.py" +wget -O /usr/local/sbin/anamon "http://$server/cobbler/aux/anamon" ## install anamon system service wget -O /etc/rc.d/init.d/anamon "http://$server/cobbler/aux/anamon.init" ## adjust permissions -chmod 755 /etc/rc.d/init.d/anamon /usr/local/sbin/anamon.py -test -d /selinux && restorecon /etc/rc.d/init.d/anamon /usr/local/sbin/anamon.py +chmod 755 /etc/rc.d/init.d/anamon /usr/local/sbin/anamon +test -d /selinux && restorecon /etc/rc.d/init.d/anamon /usr/local/sbin/anamon ## enable the script chkconfig --add anamon diff --git a/snippets/pre_anamon b/snippets/pre_anamon index 636dc1bf..5d38bda2 100644 --- a/snippets/pre_anamon +++ b/snippets/pre_anamon @@ -1,4 +1,4 @@ #if $str($getVar('anamon_enabled','')) == "1" -wget -O /tmp/anamon.py "http://$server/cobbler/aux/anamon.py" -python /tmp/anamon.py --name "$name" --server "$server" --port "$http_port" +wget -O /tmp/anamon "http://$server/cobbler/aux/anamon" +python /tmp/anamon --name "$name" --server "$server" --port "$http_port" #end if diff --git a/templates/tftpd-rules.template b/templates/tftpd-rules.template index 2c22b01c..74c4c25f 100644 --- a/templates/tftpd-rules.template +++ b/templates/tftpd-rules.template @@ -1,6 +1,6 @@ # TFTP rules to: # - Convert backslashes to forward slashes -# - Convert everything under /winos/*/* to upper-case +# - Convert everything to upper-case rg \\ / # Convert backslashes to slashes r (.*/i386/)(.*) \1\L\2 diff --git a/webui_templates/master.tmpl b/webui_templates/master.tmpl index 80865605..6244ebaa 100644 --- a/webui_templates/master.tmpl +++ b/webui_templates/master.tmpl @@ -32,7 +32,7 @@ <li><a class="menu">Distros</span></li> ##if $mode.find("distro") != -1 <ul id="navaction"> - <li><a href="$base_url?mode=distro_list" class="menu">View</a></li> + <li><a href="$base_url?mode=distro_list" class="menu">List</a></li> <li><a href="$base_url?mode=distro_search" class="menu">Search</a></li> <li><a href="$base_url?mode=distro_edit" class="menu">Add</a></li> </ul> @@ -40,7 +40,7 @@ <li><a class="menu">Profiles</span></li> ##if $mode.find("profile") != -1 <ul id="navaction"> - <li><a href="$base_url?mode=profile_list" class="menu">View</a></li> + <li><a href="$base_url?mode=profile_list" class="menu">List</a></li> <li><a href="$base_url?mode=profile_search" class="menu">Search</a></li> <li><a href="$base_url?mode=profile_edit" class="menu">Add</a></li> <li><a href="$base_url?mode=subprofile_edit" class="menu">Add child</a></li> @@ -49,22 +49,15 @@ <li><a class="menu">Systems</span></li> ##if $mode.find("system") != -1 <ul id="navaction"> - <li><a href="$base_url?mode=system_list" class="menu">View</a></li> + <li><a href="$base_url?mode=system_list" class="menu">List</a></li> <li><a href="$base_url?mode=system_search" class="menu">Search</a></li> <li><a href="$base_url?mode=system_edit_new" class="menu">Add</a></li> </ul> ##end if - <li><a class="menu">Kickstarts</span></li> - ##if $mode.find("ksfile") != -1 - <ul id="navaction"> - <li><a href="$base_url?mode=ksfile_list" class="menu">View</a></li> - <li><a href="$base_url?mode=ksfile_new" class="menu">Add</a></li> - </ul> - ##end if <li><a class="menu">Repos</span></li> ##if $mode.find("repo") != -1 <ul id="navaction"> - <li><a href="$base_url?mode=repo_list" class="menu">View</a></li> + <li><a href="$base_url?mode=repo_list" class="menu">List</a></li> <li><a href="$base_url?mode=repo_search" class="menu">Search</a></li> <li><a href="$base_url?mode=repo_edit" class="menu">Add</a></li> </ul> @@ -72,11 +65,18 @@ <li><a class="menu">Images</span></li> ##if $mode.find("image") != -1 <ul id="navaction"> - <li><a href="$base_url?mode=image_list" class="menu">View</a></li> + <li><a href="$base_url?mode=image_list" class="menu">List</a></li> <li><a href="$base_url?mode=image_search" class="menu">Search</a></li> <li><a href="$base_url?mode=image_edit" class="menu">Add</a></li> </ul> ##end if + <li><a class="menu">Kickstarts</span></li> + ##if $mode.find("ksfile") != -1 + <ul id="navaction"> + <li><a href="$base_url?mode=ksfile_list" class="menu">List</a></li> + <li><a href="$base_url?mode=ksfile_new" class="menu">Add</a></li> + </ul> + ##end if <li><hr/><br/></li> <li><a class="button sync" href="$base_url?mode=sync">Sync</a></li> </ul> diff --git a/webui_templates/search.tmpl b/webui_templates/search.tmpl index f3fca6cb..44f1eb50 100644 --- a/webui_templates/search.tmpl +++ b/webui_templates/search.tmpl @@ -12,29 +12,152 @@ <legend>$caption</legend> <table border=0> - <tr> + #for $ct in [ "1", "2", "3", "4", "5"] + #set keyname="key"+$ct + #set valname="value"+$ct + + <tr> <td> - <select id="key1" name="key1"> + <select id="$keyname" name="$keyname"> + #if $ct == "1" <option value="name">name</option> + #else + <option value="">[SELECT]</option> + #end if #if $what == "distro": + <option value="arch">arch</option> + <option value="breed">breed</option> + <option value="comment">comment</option> <option value="kernel">kernel</option> <option value="initrd">initrd</option> + <option value="kernel_options">kernel options</option> + <option value="kernel_options_post">kernel options (post install)</option> + <option value="ks_meta">kickstart metadata</option> + <option value="mgmt_classes">management classes</option> + <option value="os_version">os version</option> + <option value="owners">owners</option> + <option value="redhat_management_key">red hat management key</option> + <option value="redhat_management_server">red hat management server</option> + <option value="template_files">template files</option> + #elif $what == "profile" + <option value="comment">comment</option> + <option value="dhcp_tag">dhcp tag</option> <option value="distro">distro</option> + <option value="owners">owners</option> + <option value="kickstart">kickstart</option> + <option value="kernel_options">kernel options</option> + <option value="kernel_options_post">kernel options (post install)</option> + <option value="ks_meta">kickstart metadata</option> + <option value="mgmt_classes">management classes</option> + <option value="name_servers">name servers</option> + <option value="name_servers_search">name servers search</option> + <option value="parent">parent (subprofiles only)</option> + <option value="redhat_management_key">red hat management key</option> + <option value="redhat_management_server">red hat management server</option> + <option value="repos">repos</option> + <option value="template_files">template files</option> + <option value="virt_bridge">virt bridge</option> + <option value="virt_cpus">virt cpus</option> + <option value="virt_file_size">virt file size (GB)</option> + <option value="virt_path">virt path</option> + <option value="virt_ram">virt ram (MB)</option> + <option value="virt_type">virt type</option> + <option value="server">server override</option> + #elif $what == "system" - <option value="profile">profile</option> + + <option value="bonding">bonding</option> + <option value="bonding_master">bonding master</option> + <option value="bonding_opts">bonding opts</option> + <option value="comment">comment</option> + <option value="dhcp_tag">dhcp tag</option> + <option value="distro">distro</option> + <option value="dns_name">dns name</option> + <option value="gateway">gateway</option> + <option value="hostname">hostname</option> <option value="image">image</option> + <option value="ip_address">ip address</option> + <option value="kickstart">kickstart</option> + <option value="kernel_options">kernel options</option> + <option value="kernel_options_post">kernel options (post install)</option> + <option value="ks_meta">kickstart metadata</option> + <option value="mac_address">mac address</option> + <option value="mgmt_classes">management classes</option> + <option value="name_servers">name servers</option> + <option value="name_servers_search">name servers search</option> + <option value="netboot_enabled">netboot enabled</option> + <option value="owners">owners</option> + <option value="power_address">power address</option> + <option value="power_id">power id</option> + <option value="power_pass">power password</option> + <option value="power_type">power type</option> + <option value="power_user">power user</option> + <option value="profile">profile</option> + + <option value="redhat_management_key">red hat management key</option> + <option value="redhat_management_server">red hat management server</option> + <option value="repos">repos</option> + <option value="server">server override</option> + <option value="subnet">subnet</option> + <option value="static">static</option> + <option value="static_routes">static_routes</option> + <option value="template_files">template files</option> + <option value="virt_bridge">virt bridge</option> + <option value="virt_cpus">virt cpus</option> + <option value="virt_file_size">virt file size (GB)</option> + <option value="virt_path">virt path</option> + <option value="virt_ram">virt ram (MB)</option> + <option value="virt_type">virt type</option> + + #elif $what == "repo" + <option value="arch">arch</option> + <option value="breed">breed</option> + <option value="comment">comment</option> + <option value="createrepo_flags">createrepo flags</option> + <option value="environment">environment</option> + <option value="keep_updated">keep updated</option> + <option value="mirror">mirror</option> + <option value="mirror_locally">mirror locally</option> + <option value="owners">owners</option> + <option value="priority">priority</option> + <option value="rpm_list">rpm list</option> + <option value="yumopts">yum options</option> + + + #elif $what == "image" + <option value="arch">arch</option> + <option value="breed">breed</option> + <option value="comment">comment</option> + <option value="file">file</option> + <option value="image_type">image type</option> + <option value="network_count">network count</option> + <option value="os_version">os version</option> + <option value="owners">owners</option> + <option value="virt_ram">virt ram (MB)</option> + <option value="virt_path">virt path</option> + <option value="virt_type">virt type</option> + <option value="virt_cpus">virt cpus</option> + <option value="virt_bridge">virt bridge</option> + <option value="virt_file_size">virt file size (GB)</option> + ## FIMXE: more values for more fields, add images, add repos #end if </select> </td> - ## FIXME copy and paste key2,value2 and key3,value3 in a loop <td> - <input type="text" id="value1" name="value1"/> + <input type="text" id="$valname" name="$valname"/> </td> - + </tr> + + #end for + + <tr> + <td colspan="2">Tip: Use shell wildcards above, ex: "*" and "?".</td> + </tr> + </table> <input type="submit" value="search"/> |
