|
23 | 23 |
|
24 | 24 | import com.redhat.rhn.domain.credentials.HubSCCCredentials;
|
25 | 25 |
|
26 |
| -import com.suse.manager.model.hub.IssHub; |
27 |
| -import com.suse.manager.model.hub.IssPeripheral; |
| 26 | +import com.suse.manager.model.hub.IssAccessToken; |
28 | 27 | import com.suse.manager.model.hub.IssRole;
|
29 | 28 | import com.suse.manager.model.hub.RegisterJson;
|
30 | 29 | import com.suse.manager.model.hub.SCCCredentialsJson;
|
31 | 30 | import com.suse.manager.webui.controllers.ECMAScriptDateAdapter;
|
32 |
| -import com.suse.manager.webui.utils.token.Token; |
33 | 31 | import com.suse.manager.webui.utils.token.TokenParsingException;
|
34 | 32 |
|
35 | 33 | import com.google.gson.Gson;
|
@@ -82,52 +80,53 @@ public void initRoutes() {
|
82 | 80 | }
|
83 | 81 |
|
84 | 82 | // Basic ping to check if the system is up
|
85 |
| - private String ping(Request request, Response response, Token token, String fqdn) { |
86 |
| - return message(response, "Pinged from %s".formatted(fqdn)); |
| 83 | + private String ping(Request request, Response response, IssAccessToken token) { |
| 84 | + return message(response, "Pinged from %s".formatted(token.getServerFqdn())); |
87 | 85 | }
|
88 | 86 |
|
89 |
| - private String register(Request request, Response response, Token token, String fqdn) { |
| 87 | + private String register(Request request, Response response, IssAccessToken token) { |
90 | 88 | RegisterJson registerRequest = GSON.fromJson(request.body(), RegisterJson.class);
|
91 | 89 |
|
92 | 90 | String tokenToStore = registerRequest.getToken();
|
93 | 91 | if (StringUtils.isEmpty(tokenToStore)) {
|
94 |
| - LOGGER.error("No token received in the request for server {}", fqdn); |
| 92 | + LOGGER.error("No token received in the request for server {}", token.getServerFqdn()); |
95 | 93 | return badRequest(response, "Required token is missing");
|
96 | 94 | }
|
97 | 95 |
|
98 | 96 | try {
|
99 |
| - hubManager.storeAccessToken(fqdn, tokenToStore); |
100 |
| - hubManager.saveNewServer(registerRequest.getRole(), fqdn, registerRequest.getRootCA()); |
| 97 | + hubManager.storeAccessToken(token, tokenToStore); |
| 98 | + hubManager.saveNewServer(token, registerRequest.getRole(), registerRequest.getRootCA()); |
101 | 99 |
|
102 | 100 | return success(response);
|
103 | 101 | }
|
104 | 102 | catch (TokenParsingException ex) {
|
105 |
| - LOGGER.error("Unable to parse the received token for server {}", fqdn); |
| 103 | + LOGGER.error("Unable to parse the received token for server {}", token.getServerFqdn()); |
106 | 104 | return badRequest(response, "The specified token is not parseable");
|
107 | 105 | }
|
108 | 106 | }
|
109 | 107 |
|
110 |
| - private String generateCredentials(Request request, Response response, Token token, String fqdn) { |
111 |
| - IssPeripheral peripheral = (IssPeripheral) hubManager.findServer(IssRole.PERIPHERAL, fqdn); |
112 |
| - if (peripheral == null) { |
113 |
| - // This should never happen, fqdn guaranteed be a hub after calling allowingOnlyHub() on route init. |
| 108 | + private String generateCredentials(Request request, Response response, IssAccessToken token) { |
| 109 | + try { |
| 110 | + HubSCCCredentials credentials = hubManager.generateSCCCredentials(token); |
| 111 | + return success(response, new SCCCredentialsJson(credentials.getUsername(), credentials.getPassword())); |
| 112 | + } |
| 113 | + catch (IllegalArgumentException ex) { |
| 114 | + // This should never happen, fqdn guaranteed be a peripheral after calling allowingOnlyPeripheral() when |
| 115 | + // initializing the route. |
114 | 116 | return badRequest(response, "Specified FQDN is not a known peripheral");
|
115 | 117 | }
|
116 |
| - |
117 |
| - HubSCCCredentials credentials = hubManager.generateSCCCredentials(peripheral); |
118 |
| - return success(response, new SCCCredentialsJson(credentials.getUsername(), credentials.getPassword())); |
119 | 118 | }
|
120 | 119 |
|
121 |
| - private String storeCredentials(Request request, Response response, Token token, String fqdn) { |
| 120 | + private String storeCredentials(Request request, Response response, IssAccessToken token) { |
122 | 121 | SCCCredentialsJson storeRequest = GSON.fromJson(request.body(), SCCCredentialsJson.class);
|
123 | 122 |
|
124 |
| - IssHub hub = (IssHub) hubManager.findServer(IssRole.HUB, fqdn); |
125 |
| - if (hub == null) { |
| 123 | + try { |
| 124 | + hubManager.storeSCCCredentials(token, storeRequest.getUsername(), storeRequest.getPassword()); |
| 125 | + return success(response); |
| 126 | + } |
| 127 | + catch (IllegalArgumentException ex) { |
126 | 128 | // This should never happen, fqdn guaranteed be a hub after calling allowingOnlyHub() on route init.
|
127 | 129 | return badRequest(response, "Specified FQDN is not a known hub");
|
128 | 130 | }
|
129 |
| - |
130 |
| - hubManager.storeSCCCredentials(hub, storeRequest.getUsername(), storeRequest.getPassword()); |
131 |
| - return success(response); |
132 | 131 | }
|
133 | 132 | }
|
0 commit comments