diff --git a/java/code/src/com/redhat/rhn/common/security/acl/Access.java b/java/code/src/com/redhat/rhn/common/security/acl/Access.java index 897d91237cc2..8a0fbb38cdea 100644 --- a/java/code/src/com/redhat/rhn/common/security/acl/Access.java +++ b/java/code/src/com/redhat/rhn/common/security/acl/Access.java @@ -607,4 +607,21 @@ public boolean aclSystemSupportsPtfRemoval(Map ctx, String[] par ServerFactory.isPtfUninstallationSupported(server); } + /** + * Checks if a system is Pay-as-you-go + * @param ctx acl context + * @param params parameters for acl + * @return true if the system is Pay-as-you-go + */ + public boolean aclSystemIsPayg(Map ctx, String[] params) { + Long sid = getAsLong(ctx.get("sid")); + User user = (User) ctx.get("user"); + + Server server = SystemManager.lookupByIdAndUser(sid, user); + if (server == null) { + return false; + } + + return server.isPayg(); + } } diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml index a928ac4b5dd5..e2f35354c5bb 100644 --- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml +++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml @@ -20787,6 +20787,18 @@ The Tree Path, Base Channel, and Installer Generation should always match. This /systems/details/Overview.do + + Pay-as-you-go: + + /systems/details/Overview.do + + + + This is a Pay-as-you-go server + + /systems/details/Overview.do + + Activation Key: diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ServerSerializer.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ServerSerializer.java index 8ed2b7a50370..bb54eca2d91d 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ServerSerializer.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/ServerSerializer.java @@ -39,6 +39,7 @@ * #prop_desc("int", "id", "system ID") * #prop("string", "profile_name") * #prop("string", "machine_id") + * #prop_desc("boolean", "payg", "Whether the server instance is payg or not") * #prop("string", "minion_id") * #prop_desc("string", "base_entitlement", "system's base entitlement label") * @@ -86,7 +87,8 @@ public SerializedApiResponse serialize(Server src) { .add("profile_name", src.getName()) .add("machine_id", src.getMachineId()) .add("hostname", src.getHostname()) - .add("minion_id", src.getMinionId()); + .add("minion_id", src.getMinionId()) + .add("payg", src.isPayg()); // Find this server's base entitlement: String baseEntitlement = EntitlementManager.UNENTITLED; diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java index dd9eda924e04..126a62ed569a 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java @@ -816,6 +816,7 @@ private Date convertLocalToUtc(Date in) { * #struct_begin("server details") * #prop_desc("int", "id", "The server's id") * #prop_desc("string", "name", "The server's name") + * #prop_desc("boolean", "payg", "Whether the server instance is payg or not") * #prop_desc("string", "minion_id", "The server's minion id, in case it is a salt minion client") * #prop_desc("$date", "last_checkin", * "Last time server successfully checked in (in UTC)") @@ -885,6 +886,8 @@ public List> listActiveSystemsDetails( } m.put("subscribed_channels", channels); + m.put("payg", server.isPayg()); + Collection guests = server.getGuests(); List guestList = new ArrayList<>(); for (VirtualInstance guest : guests) { diff --git a/java/code/webapp/WEB-INF/pages/systems/sdc/overview.jsp b/java/code/webapp/WEB-INF/pages/systems/sdc/overview.jsp index 15a4f0772715..3561effba3f7 100644 --- a/java/code/webapp/WEB-INF/pages/systems/sdc/overview.jsp +++ b/java/code/webapp/WEB-INF/pages/systems/sdc/overview.jsp @@ -200,6 +200,17 @@ + + + + + + + + + + + diff --git a/java/spacewalk-java.changes.mikeletux.22205 b/java/spacewalk-java.changes.mikeletux.22205 new file mode 100644 index 000000000000..06ed41be37d4 --- /dev/null +++ b/java/spacewalk-java.changes.mikeletux.22205 @@ -0,0 +1 @@ +- Add payg info to UI and rest API