Skip to content
This repository was archived by the owner on Oct 27, 2022. It is now read-only.

Commit 5c2ad1e

Browse files
committed
Propagate exceptions when calling the daemon, use it to show errors to users
Also reshape status handling: each exception type has a different status.
1 parent 9c350b3 commit 5c2ad1e

File tree

6 files changed

+121
-264
lines changed

6 files changed

+121
-264
lines changed

CodeReady Containers/AppDelegate.swift

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -153,41 +153,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
153153
NSApplication.shared.terminate(self)
154154
}
155155

156-
func updateStatusMenuItem(status: String) {
157-
if status == "Stopped" {
158-
self.statusMenuItem.title = "Cluster is Stopped"
159-
self.statusMenuItem.image = NSImage(named:NSImage.statusUnavailableName)
160-
}
161-
if status == "Running" {
162-
self.statusMenuItem.title = "Cluster is Running"
163-
self.statusMenuItem.image = NSImage(named:NSImage.statusAvailableName)
164-
}
165-
}
166-
167-
func showClusterStartingMessageOnStatusMenuItem() {
168-
self.statusMenuItem.title = "Cluster is starting..."
169-
self.statusMenuItem.image = nil
170-
}
171-
172-
func showClusterStatusUnknownOnStatusMenuItem() {
173-
self.statusMenuItem.title = "Status Unknown"
174-
self.statusMenuItem.image = NSImage(named: NSImage.statusNoneName)
175-
}
176-
func updateMenuStates(state: MenuStates) {
177-
self.startMenuItem.isEnabled = state.startMenuEnabled
178-
self.stopMenuItem.isEnabled = state.stopMenuEnabled
179-
self.deleteMenuItem.isEnabled = state.deleteMenuEnabled
180-
self.webConsoleMenuItem.isEnabled = state.webconsoleMenuEnabled
181-
self.ocLoginForDeveloper.isEnabled = state.ocLoginForDeveloperEnabled
182-
self.ocLoginForKubeadmin.isEnabled = state.ocLoginForAdminEnabled
183-
self.copyOcLoginCommand.isEnabled = state.copyOcLoginCommand
184-
}
185-
186156
func initializeMenus(status: String) {
187-
self.statusMenuItem.title = "Status Unknown"
188-
self.statusMenuItem.image = NSImage(named:NSImage.statusNoneName)
189-
updateStatusMenuItem(status: status)
157+
self.statusMenuItem.title = status
190158
if status == "Running" {
159+
self.statusMenuItem.image = NSImage(named:NSImage.statusAvailableName)
191160
self.startMenuItem.isEnabled = false
192161
self.stopMenuItem.isEnabled = true
193162
self.deleteMenuItem.isEnabled = true
@@ -197,6 +166,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
197166
self.ocLoginForKubeadmin.isEnabled = true
198167
self.statusItem.button?.appearsDisabled = false
199168
} else if status == "Stopped" {
169+
self.statusMenuItem.image = NSImage(named:NSImage.statusUnavailableName)
200170
self.startMenuItem.isEnabled = true
201171
self.stopMenuItem.isEnabled = false
202172
self.deleteMenuItem.isEnabled = true
@@ -206,6 +176,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
206176
self.ocLoginForKubeadmin.isEnabled = false
207177
self.statusItem.button?.appearsDisabled = true
208178
} else {
179+
self.statusMenuItem.image = NSImage(named:NSImage.statusNoneName)
209180
self.startMenuItem.isEnabled = true
210181
self.stopMenuItem.isEnabled = false
211182
self.deleteMenuItem.isEnabled = false

CodeReady Containers/DaemonCommander/DaemonCommander.swift

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,11 @@ class DaemonCommander {
4444
let userHomePath: URL = FileManager.default.homeDirectoryForCurrentUser
4545
let socketPath: URL = userHomePath.appendingPathComponent(".crc").appendingPathComponent("crc.sock")
4646

47-
func SendCommandToDaemon(command: Request) -> Data? {
48-
do {
49-
let req = try JSONEncoder().encode(command)
50-
print(String(data: req, encoding: .utf8)!)
51-
let daemonConnection = DaemonCommander(sockPath: socketPath.path)
52-
return try daemonConnection.sendCommand(command: req)
53-
} catch let error {
54-
print(error.localizedDescription)
55-
}
56-
return "Failed".data(using: .utf8)
47+
func SendCommandToDaemon(command: Request) throws -> Data {
48+
let req = try JSONEncoder().encode(command)
49+
print(String(data: req, encoding: .utf8)!)
50+
let daemonConnection = DaemonCommander(sockPath: socketPath.path)
51+
return try daemonConnection.sendCommand(command: req)
5752
}
5853

5954
struct ConfigsetRequest: Encodable {

0 commit comments

Comments
 (0)