-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Added levels of connectivity to connect command #179
base: main
Are you sure you want to change the base?
Conversation
* Card ID: CCT-1005 * First step of levels of connectivity * When connect command is used, then it is possible to enabled or disable three features using command line options --enable-feature or --disable-feature. Following features are supported - content - analytics - remote-mamanagement * Added checks for allowed combination of CLI options * Modified UI little bit to be able to visualize that feature was not started * Output to JSON format is still supported
* Card ID: CCT-1005 * When machine readable format is used, then add information about enabled/disabled content to generated JSON file
Open question:
{
"hostname": "localhost",
"uid": 0,
"enabled_features": [
"analytics",
"remote-management"
],
"disabled_features": [
"content"
],
"rhsm_connected": true,
"content_enabled": false,
"insights_connected": true,
"yggdrasil_started": true
} Another possible solution could be following: {
"hostname": "localhost",
"uid": 0,
"features": {
"enabled": [
"analytics",
"remote-management"
],
"disabled": [
"content"
],
},
"rhsm_connected": true,
"content_enabled": false,
"insights_connected": true,
"yggdrasil_started": true
} Or we can introduce something like this. This has potential to add there more attributes in the future: {
"hostname": "localhost",
"uid": 0,
"features": {
"content": {
"enabled": false,
},
"analytics": {
"enabled": true,
},
"remote-management": {
"enabled": true,
},
},
"rhsm_connected": true,
"content_enabled": false,
"insights_connected": true,
"yggdrasil_started": true
} TODO:
|
* Card ID: CCT-1005 * When machine readable output is used (JSON format), then include list of enabled and list of disabled features in JSON document
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The patch seems solid. I won't comment much on the code itself; we'll likely see further changes done in near future as we stabilize it before new features come.
The output seems to jump around, were the two spaces intentional?
$ rhc connect --disable-feature analytics
...
[✓] Connected to Red Hat Subscription Management
[✓] Content ... Red Hat repository file generated
[ ] Analytics ... Connecting to Red Hat Insights disabled
[✓] Remote Management ... Activated the yggdrasil service
When disconnecting, Insights reported status 1 even though we should have detected we're (already) unregistered:
[✓] Deactivated the yggdrasil service
[𐄂] Cannot disconnect from Red Hat Insights: exit status 1
[✓] Disconnected from Red Hat Subscription Management
The same goes for disconnection: with nothing connected in the first place, the output doesn't say yggdrasil wasn't enabled in the first place. That's a non-blocking note, but it feels strange.
$ rhc connect --enable-feature remote-management --disable-feature remote-management
cannot enable feature: "remote-management": feature "remote-management" explicitly disabled
Are we able to display something prettier and more human-understandable? Non-blocking note, may be addressed later.
if uiSettings.isMachineReadable { | ||
connectResult.EnabledFeatures = append(connectResult.EnabledFeatures, feature.ID) | ||
} | ||
featuresStr = append(featuresStr, "["+symbolOK+"]"+feature.ID) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there should be a space between the checkbox and the text.
if uiSettings.isMachineReadable { | ||
connectResult.DisabledFeatures = append(connectResult.EnabledFeatures, feature.ID) | ||
} | ||
featuresStr = append(featuresStr, "[ ]"+feature.ID) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there should be a space between the checkbox and the text.
I like the nested approach. Would it make sense to move the "features": {
"content": {
"enabled": true,
"connected": true,
},
"analytics": {
"enabled": true,
"connected": false,
},
...
} |
enabled or disable three features using command line
options
--enable-feature
or--disable-feature
. Followingfeatures are supported
content
analytics
remote-management
feature was not started
about enabled/disabled content to generated JSON file
enabled/disable features is added to the generated JSON doc
disconnect
command to looks similar toconnect
command