java/code/src/com/redhat/rhn/domain/kickstart/RepoInfo.java | 18 ++- java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartSoftwareEditAction.java | 7 - java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java | 47 ++++++++++ java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java | 4 java/code/src/com/redhat/rhn/manager/kickstart/KickstartEditCommand.java | 3 java/code/src/com/redhat/rhn/manager/kickstart/KickstartWizardHelper.java | 2 web/conf/rhn_web.conf | 2 7 files changed, 70 insertions(+), 13 deletions(-)
New commits: commit 82df3bd694abd4a2f4e763df611682ffd29d74f0 Author: Justin Sherrill jsherril@redhat.com Date: Wed Sep 15 11:19:45 2010 -0400
checkstyle fix
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java index 7669d58..9d7d8d6 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java @@ -392,6 +392,7 @@ public class ConfigChannelHandler extends BaseHandler { * @param sessionKey the session key * @param channelLabel the channel label * @param path path to examine. + * @param revision the revision to fetch * @return the specified config revision of the requested path. * @since 10.12 * diff --git a/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java b/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java index 9fd4007..7e3e2b8 100644 --- a/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java +++ b/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java @@ -1120,7 +1120,8 @@ public class ConfigurationManager extends BaseManager { * @param pc controller/elaborator for the list * @return List of revisions in dto format. */ - public DataResult<ConfigRevisionDto> listRevisionsForFile(User user, ConfigFile file, PageControl pc) { + public DataResult<ConfigRevisionDto> listRevisionsForFile(User user, + ConfigFile file, PageControl pc) { Map params = new HashMap(); params.put("cfid", file.getId()); params.put("user_id", user.getId());
commit 22954384d46900f7506eeaf16bd5d50b6e8e88a6 Author: Justin Sherrill jsherril@redhat.com Date: Wed Sep 15 11:17:07 2010 -0400
633535 - added RHEL 5 subrepos as well as stopped showing repos not valid for a particular release
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/RepoInfo.java b/java/code/src/com/redhat/rhn/domain/kickstart/RepoInfo.java index 1d71b77..1340930 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/RepoInfo.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/RepoInfo.java @@ -15,11 +15,13 @@
package com.redhat.rhn.domain.kickstart;
+import com.redhat.rhn.common.util.StringUtil; import com.redhat.rhn.manager.kickstart.KickstartUrlHelper;
import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder;
+import java.io.File; import java.util.LinkedHashMap; import java.util.Map; import java.util.regex.Matcher; @@ -126,14 +128,20 @@ public class RepoInfo { /** * Returns all the 4 standard repos available to rhel 5 * cluster, clusterstorage, workstation and VT + * @param tree the kickstartable tree * @return the standard repos.. */ - public static Map<String, RepoInfo> getStandardRepos() { + public static Map<String, RepoInfo> getStandardRepos(KickstartableTree tree) { Map <String, RepoInfo> map = new LinkedHashMap<String, RepoInfo>(); - addToMap(map, "Cluster"); - addToMap(map, "ClusterStorage"); - addToMap(map, "Workstation"); - addToMap(map, "VT"); + String[] repos = {"Cluster", "ClusterStorage", "HighAvailability", + "LoadBalancer", "ResilientStorage", "VT", "Workstation"}; + + for (String repo : repos) { + File file = new File(StringUtil.addPath(tree.getAbsolutePath(), repo)); + if (file.exists()) { + addToMap(map, repo); + } + } return map; }
diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartSoftwareEditAction.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartSoftwareEditAction.java index 41c29da..43686dc 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartSoftwareEditAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartSoftwareEditAction.java @@ -223,7 +223,7 @@ public class KickstartSoftwareEditAction extends BaseKickstartEditAction { ValidatorError ve = cmd.updateKickstartableTree( (Long) form.get(CHANNEL), cmdIn.getUser().getOrg().getId(), (Long) form.get(TREE), - (String) form.getString(URL)); + form.getString(URL));
if (ve == null) { String [] repos = form.getStrings(SELECTED_REPOS); @@ -254,11 +254,10 @@ public class KickstartSoftwareEditAction extends BaseKickstartEditAction { !tree.getInstallType().isRhel3() && !tree.getInstallType().isRhel4()) { List <LabelValueEnabledBean> repos = new LinkedList<LabelValueEnabledBean>(); - for (String name : RepoInfo.getStandardRepos().keySet()) { + for (String name : RepoInfo.getStandardRepos(tree).keySet()) { repos.add(lve(name, name, false)); } - form.set(POSSIBLE_REPOS, (LabelValueEnabledBean[]) - repos.toArray(new LabelValueEnabledBean[0])); + form.set(POSSIBLE_REPOS, repos.toArray(new LabelValueEnabledBean[0])); Set<RepoInfo> selected = ksdata.getRepoInfos(); String [] items = new String[selected.size()]; int i = 0; diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartEditCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartEditCommand.java index 1bcbca2..e24b025 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartEditCommand.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartEditCommand.java @@ -374,7 +374,8 @@ public class KickstartEditCommand extends BaseKickstartCommand { public void updateRepos(String[] reposIn) { if (ksdata.isRhel5OrGreater()) {
- Map<String, RepoInfo> repos = RepoInfo.getStandardRepos(); + Map<String, RepoInfo> repos = RepoInfo.getStandardRepos( + ksdata.getKickstartDefaults().getKstree()); Set<RepoInfo> selected = new HashSet <RepoInfo>();
for (int i = 0; i < reposIn.length; i++) { diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartWizardHelper.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartWizardHelper.java index b5d39a3..5d404dd 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartWizardHelper.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartWizardHelper.java @@ -199,7 +199,7 @@ public class KickstartWizardHelper { * @param ksdata the data to which the repos have to be processed */ public void processRepos(KickstartData ksdata) { - if (ksdata.isRhel5OrGreater()) { + if (ksdata.isRhel5()) { Set<RepoInfo> repos = ksdata.getRepoInfos(); RepoInfo vt = RepoInfo.vt(); if (!repos.contains(vt)) {
commit cdf80b5ce03fb99c33917b49b702828db3d2d906 Author: Justin Sherrill jsherril@redhat.com Date: Wed Sep 15 10:21:08 2010 -0400
adding configchannel.lookupFileInfo() taking a revision id
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java index 0e6bcb0..7669d58 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/configchannel/ConfigChannelHandler.java @@ -24,12 +24,15 @@ import com.redhat.rhn.domain.config.ConfigChannelType; import com.redhat.rhn.domain.config.ConfigFile; import com.redhat.rhn.domain.config.ConfigFileType; import com.redhat.rhn.domain.config.ConfigRevision; +import com.redhat.rhn.domain.config.ConfigurationFactory; import com.redhat.rhn.domain.server.Server; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.frontend.dto.ConfigChannelDto; import com.redhat.rhn.frontend.dto.ConfigFileDto; +import com.redhat.rhn.frontend.dto.ConfigRevisionDto; import com.redhat.rhn.frontend.dto.ConfigSystemDto; import com.redhat.rhn.frontend.xmlrpc.BaseHandler; +import com.redhat.rhn.frontend.xmlrpc.NoSuchConfigRevisionException; import com.redhat.rhn.frontend.xmlrpc.serializer.ConfigRevisionSerializer; import com.redhat.rhn.manager.MissingCapabilityException; import com.redhat.rhn.manager.action.ActionManager; @@ -383,6 +386,49 @@ public class ConfigChannelHandler extends BaseHandler { return revisions; }
+ + /** + * Given a path and revision number, return the revision + * @param sessionKey the session key + * @param channelLabel the channel label + * @param path path to examine. + * @return the specified config revision of the requested path. + * @since 10.12 + * + * @xmlrpc.doc Given a path, revision number, and a channel, returns details about + * the latest revisions of the paths. + * @xmlrpc.param #session_key() + * @xmlrpc.param #param_desc("string", "channelLabel", + * "label of config channel to lookup on") + * @xmlrpc.param #param_desc("string", "path", + * "path of file/directory") + * @xmlrpc.param #param_desc("int", "revsion", + * "The revision number.") + * + * @xmlrpc.returntype + * $ConfigRevisionSerializer + */ + public ConfigRevision lookupFileInfo(String sessionKey, + String channelLabel, + String path, + Integer revision + ) { + User loggedInUser = getLoggedInUser(sessionKey); + XmlRpcConfigChannelHelper configHelper = XmlRpcConfigChannelHelper.getInstance(); + ConfigChannel channel = configHelper.lookupGlobal(loggedInUser, + channelLabel); + ConfigurationManager cm = ConfigurationManager.getInstance(); + ConfigFile cf = cm.lookupConfigFile(loggedInUser, channel.getId(), path); + List<ConfigRevisionDto> revs = cm.listRevisionsForFile(loggedInUser, cf, null); + for (ConfigRevisionDto rev : revs) { + if (rev.getRevisionNumber().equals(revision)) { + return ConfigurationFactory.lookupConfigRevisionById(rev.getId()); + } + } + throw new NoSuchConfigRevisionException(); + } + + /** * List files in a given channel * @param sessionKey the session key diff --git a/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java b/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java index b6cc73f..9fd4007 100644 --- a/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java +++ b/java/code/src/com/redhat/rhn/manager/configuration/ConfigurationManager.java @@ -43,6 +43,7 @@ import com.redhat.rhn.frontend.dto.ConfigChannelDto; import com.redhat.rhn.frontend.dto.ConfigFileDto; import com.redhat.rhn.frontend.dto.ConfigFileNameDto; import com.redhat.rhn.frontend.dto.ConfigGlobalDeployDto; +import com.redhat.rhn.frontend.dto.ConfigRevisionDto; import com.redhat.rhn.frontend.dto.ConfigSystemDto; import com.redhat.rhn.frontend.listview.PageControl; import com.redhat.rhn.manager.BaseManager; @@ -1119,7 +1120,7 @@ public class ConfigurationManager extends BaseManager { * @param pc controller/elaborator for the list * @return List of revisions in dto format. */ - public DataResult listRevisionsForFile(User user, ConfigFile file, PageControl pc) { + public DataResult<ConfigRevisionDto> listRevisionsForFile(User user, ConfigFile file, PageControl pc) { Map params = new HashMap(); params.put("cfid", file.getId()); params.put("user_id", user.getId()); diff --git a/web/conf/rhn_web.conf b/web/conf/rhn_web.conf index b032acf..b83d419 100644 --- a/web/conf/rhn_web.conf +++ b/web/conf/rhn_web.conf @@ -224,7 +224,7 @@ web.config_delim_end = |} web.version = 1.1
# the version of API -web.apiversion = 10.11 +web.apiversion = 10.12
# maximum size for a config file web.maximum_config_file_size = 131072