Skip to content
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

Release #112

Merged
merged 161 commits into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
61849a1
big commit
joshuaboud May 3, 2024
265d527
ignore .yarnrc.yml
joshuaboud May 13, 2024
f1b1b70
add bootstrap script for setting up yarn version stable
joshuaboud May 13, 2024
ced304a
implement samba config parser
joshuaboud May 13, 2024
545a678
implement samba manager
joshuaboud May 13, 2024
09f99ee
use neverthrow's impl of Result for async interop, use monet for Mayb…
joshuaboud May 14, 2024
f115e7d
set -e and set -o pipefail
joshuaboud May 14, 2024
23484c6
rm .yarnrc.yml .yarn -rf
joshuaboud May 14, 2024
3678eee
fix bootstrap.sh
joshuaboud May 14, 2024
92eb874
untrack .yarnrc.yml
joshuaboud May 14, 2024
24e66cb
changes for houston-common changes
joshuaboud May 14, 2024
62a69c8
types for deep-equal
joshuaboud May 14, 2024
676ea91
space before *
joshuaboud May 14, 2024
ac95f6a
add key value text area
joshuaboud May 15, 2024
c2f0d4d
ignore generic build outputs
joshuaboud May 15, 2024
bab4139
better error handling
joshuaboud May 15, 2024
83969d9
dedupe vue
joshuaboud May 15, 2024
600a8be
add houston-common back to workspaces
joshuaboud May 15, 2024
42ca070
update common
joshuaboud May 15, 2024
e205279
add inheritPermissions as toggle
joshuaboud May 15, 2024
b3b5a9f
move KeyValueTextArea to common as generic ParsedTextArea, use define…
joshuaboud May 15, 2024
22def4b
avoid passing args to loadGlobalSettings
joshuaboud May 15, 2024
b1aee82
update houston-common-lib types
joshuaboud May 16, 2024
7eb8d67
move InputField and InputFeedback to common-ui, add Disclosure to con…
joshuaboud May 16, 2024
7b27c5c
update common and move Disclosure to common-iui
joshuaboud May 17, 2024
dcc7175
finish samba global config manager
joshuaboud May 17, 2024
84038ef
report success and add localization
joshuaboud May 17, 2024
4cb9219
update makefile to build houston-common
joshuaboud May 22, 2024
0bca70c
start on share editing
joshuaboud May 22, 2024
03a83a8
displaying and deleting virtual devices
brkelly20 May 23, 2024
cf8f20d
allow adding of virtual devices
brkelly20 May 23, 2024
9fed573
update makefile to track cockpit-scheduler changes
joshuaboud May 23, 2024
c131cb7
display, add, and remove targets
brkelly20 May 24, 2024
cf4e770
moved tables to their own components
brkelly20 May 24, 2024
c986986
progress on target view
brkelly20 May 24, 2024
b88b06c
reorder options
joshuaboud May 28, 2024
8fe8dc4
refactor share managment logic s.t. all actions are in ShareListView.…
joshuaboud May 28, 2024
4eb967a
update deps
joshuaboud May 28, 2024
7da8e07
include sourcemap in build
joshuaboud May 28, 2024
fa1e99b
format everything with prettier
joshuaboud May 28, 2024
ba6c13a
update common
joshuaboud May 28, 2024
3487b12
set whitespace-normal to fix table width
joshuaboud May 29, 2024
454e4ea
use cockpit.gettext for all labels/headers
joshuaboud May 29, 2024
b5b8fd9
portal adding and removal
brkelly20 May 29, 2024
728f90f
explicitly use InputLabelWrapper
joshuaboud May 29, 2024
16d68e2
break out user and group selectors and permissions editor as reusable…
joshuaboud May 29, 2024
3770bb0
update common lib
joshuaboud May 29, 2024
1f80fae
refactor to clean up share table, provide clusterScope from tab level
joshuaboud May 30, 2024
5fab66e
Initiator groups table added
brkelly20 May 30, 2024
0966ada
Sessions displaying
brkelly20 May 31, 2024
484db78
Added CHAP configuration
brkelly20 Jun 3, 2024
59342bb
finish ceph options
joshuaboud Jun 3, 2024
c4baf8a
ctdb automatically handles clustered net conf, add hooks
joshuaboud Jun 3, 2024
aa8deea
update common
joshuaboud Jun 3, 2024
aaca8ae
rm remove share by name
joshuaboud Jun 3, 2024
3c5edc1
implement checking/fixing include = registry in smb.conf
joshuaboud Jun 3, 2024
90cb987
implement import/export of config
joshuaboud Jun 3, 2024
520ede1
refactor global actions to be in SambaTabMain
joshuaboud Jun 3, 2024
a3b5f38
allow non-result hook and binding to multiple hooks at once
joshuaboud Jun 3, 2024
045fc7e
refactor samba share actions to be in SambaTabMain, use computedResult
joshuaboud Jun 3, 2024
40da5ce
add import from smb.conf
joshuaboud Jun 3, 2024
1c9ba09
refactor SambaManager into class
joshuaboud Jun 4, 2024
b09f75f
Limit CHAP to one outgoing user
brkelly20 Jun 4, 2024
28e6db0
refactor ceph options to follow softwareDNA
joshuaboud Jun 4, 2024
970239e
add app info popup and user settings
joshuaboud Jun 4, 2024
da9f8ee
option to include system accounts through user settings
joshuaboud Jun 4, 2024
fdb1f7d
user settings
joshuaboud Jun 4, 2024
6e9fead
start on nfs tab
joshuaboud Jun 4, 2024
939a41e
Initiator, Lun, and Connections tables
brkelly20 Jun 5, 2024
0fa44f9
minor changes
brkelly20 Jun 6, 2024
5a42cc8
Read and write counts
brkelly20 Jun 6, 2024
af22571
commit missing change
brkelly20 Jun 6, 2024
fa9af7d
add make test target, start on nfs exports parsing
joshuaboud Jun 6, 2024
1cd0c7a
pass server and share to hooks
joshuaboud Jun 6, 2024
e4d04dc
swap clientOptions for string
joshuaboud Jun 6, 2024
d1c4b2e
Merge commit 'e4d04dcf21c6617a26c29b66a5b9fc0eedb5ba48' into iSCSITab
brkelly20 Jun 6, 2024
2e447bc
move table to src/common
joshuaboud Jun 7, 2024
6d60a6f
add description column to share table
joshuaboud Jun 7, 2024
814612c
reorganize
joshuaboud Jun 7, 2024
04cf9f2
finish most of NFS tab and use new input validation method
joshuaboud Jun 7, 2024
3b2ca45
Configuration export/import
brkelly20 Jun 7, 2024
9641b8f
Merge commit '04cf9f2a590d0e88cb6a9fd1d6df9dcc08bd1fe4' into iSCSITab
brkelly20 Jun 7, 2024
76bf4e8
create exports file if missing
joshuaboud Jun 7, 2024
958f4c2
clean up file layout, add import/export to NFS, use Upload functions …
joshuaboud Jun 7, 2024
e3770d6
clean up unused imports
joshuaboud Jun 7, 2024
e0de172
move Table to common-ui and format
joshuaboud Jun 7, 2024
6c2dfda
update common
joshuaboud Jun 7, 2024
7425696
update download function names
joshuaboud Jun 7, 2024
e5b692f
Updated validation method
brkelly20 Jun 10, 2024
f38e8d6
Merge commit '7425696ea2bd2aa90d10b86331c58ea0c2fcde3d' into iSCSITab
brkelly20 Jun 10, 2024
bd46c0a
use new validationscope
joshuaboud Jun 10, 2024
8e1d6ee
Updated to new validation method
brkelly20 Jun 10, 2024
eb8a1e9
Merge commit 'bd46c0a8e5bda8f54f82abb6722112312853bb90' into iSCSITab
brkelly20 Jun 10, 2024
ebde1e6
Added a configuration save step after actions are taken
brkelly20 Jun 10, 2024
72ddf60
fix overflow and wrapping issues
joshuaboud Jun 10, 2024
eea4302
fix paring net conf with weird share names (whitespace and [ ] chars)
joshuaboud Jun 10, 2024
8ea6aa6
try fix tooltip
joshuaboud Jun 10, 2024
74f6d44
track system command dependencies and set up packaging
joshuaboud Jun 10, 2024
60bda5d
Package v4.0.0
joshuaboud Jun 10, 2024
d9b18af
set NPM_AUTH_TOKEN
joshuaboud Jun 10, 2024
24a4943
checkout submodules
joshuaboud Jun 10, 2024
846463c
update urls
joshuaboud Jun 10, 2024
c2fc906
fix table corners
joshuaboud Jun 10, 2024
8c5fc14
v4.0.0-2
joshuaboud Jun 10, 2024
d770bc5
add ts-node
joshuaboud Jun 11, 2024
ad36307
add default fsid option as UUID
joshuaboud Jun 11, 2024
d4dd50f
add input validation for NFS exports
joshuaboud Jun 11, 2024
cb7fcc3
v4.0.1
joshuaboud Jun 11, 2024
b06f2f4
minor LUN improvements
brkelly20 Jun 11, 2024
47d9a2f
fix error spamming when path DNE
joshuaboud Jun 11, 2024
4c1e6a5
v4.0.2
joshuaboud Jun 11, 2024
5209e7e
Refactored imports, added more validation to LUNs
brkelly20 Jun 11, 2024
9e1a1d8
add option to return promise from useUserSettings
joshuaboud Jun 13, 2024
a58ce9c
Clustered server start
brkelly20 Jun 13, 2024
2c67281
Merge commit '9e1a1d8396cb85af2a1ccc566abe07855b636eb1' into iSCSITab
brkelly20 Jun 13, 2024
b37befb
default new samba share to read only = false
joshuaboud Jun 14, 2024
f244634
v4.0.3
joshuaboud Jun 14, 2024
e75e452
cluster progress
brkelly20 Jun 17, 2024
8b34afc
Progress on Cluster implementation
brkelly20 Jun 19, 2024
aa7f545
Clustered implementation done
brkelly20 Jun 21, 2024
4ae26f4
Fixed cluster detection.
brkelly20 Jun 21, 2024
c1c3106
rm extra import
joshuaboud Jun 21, 2024
b4fa434
Merge branch 'iSCSITab' into software-dna-rearchitecture
joshuaboud Jun 21, 2024
eb9f482
Check for scst
brkelly20 Jun 24, 2024
d88b5fd
Merge branch 'iSCSITab' into software-dna-rearchitecture
joshuaboud Jun 24, 2024
1f23e98
package 4.1.0
joshuaboud Jun 24, 2024
76687bb
Disallow 0.0.0.0 as a portal for cluters
brkelly20 Jun 25, 2024
8f8dbfa
Resource group name fix
brkelly20 Jul 23, 2024
c5e6732
Added file creation option for FileIO
brkelly20 Jul 24, 2024
9081202
manifest
brkelly20 Jul 25, 2024
5fe5710
Merge branch 'software-dna-rearchitecture' of github.com:45Drives/coc…
brkelly20 Jul 25, 2024
88005b7
Merge branch 'build' into software-dna-rearchitecture
brkelly20 Jul 25, 2024
193c950
manifest
brkelly20 Jul 25, 2024
35b86ae
Merge commit '193c950a3f86081405cae4c01828a816e6f71dd4' into iSCSITab
brkelly20 Aug 5, 2024
580a848
in-progress
brkelly20 Aug 7, 2024
aa00bf6
RBDManager progress
brkelly20 Aug 7, 2024
e83eaf2
work in progress
brkelly20 Aug 13, 2024
4cf27e3
In-progress Cluster Actions
brkelly20 Aug 16, 2024
ab9a67d
Driver actions updated
brkelly20 Aug 21, 2024
d928245
RBD Management Screens added
brkelly20 Aug 30, 2024
6b90888
Allow selecting devices from manager
brkelly20 Aug 30, 2024
da308a9
Rework grabbing existing devices
brkelly20 Aug 30, 2024
612cfe0
Added more error handling
brkelly20 Sep 9, 2024
7078b30
Validation
brkelly20 Sep 12, 2024
17bd238
Fixed issues with managing LVs
brkelly20 Sep 17, 2024
59304f5
Update managers to use current node
brkelly20 Sep 17, 2024
145f491
Reset server to be the active node
brkelly20 Sep 18, 2024
3a340a4
Updated houston common submodule
brkelly20 Sep 18, 2024
f7d65af
Clean up unused parameters
brkelly20 Sep 18, 2024
3529abb
manifest
brkelly20 Sep 18, 2024
ca39b84
Validations
brkelly20 Sep 19, 2024
c64b3a7
Updated tables
brkelly20 Sep 19, 2024
c662bde
Minor fixes
brkelly20 Sep 19, 2024
2bbf3b3
Updated fileio creation modal to use ByteInput
brkelly20 Sep 19, 2024
5961549
Merge branch 'iSCSITab' into build
brkelly20 Sep 19, 2024
ca85af6
manifest
brkelly20 Sep 19, 2024
dcb8881
Remove standalone RBD created, all RBDs will use LVs
brkelly20 Sep 23, 2024
0a8af5d
Merge commit 'dcb88815587d1262a6ec1f7f33069ed3fa7ab4be' into build
brkelly20 Sep 23, 2024
38b8355
manifest
brkelly20 Sep 23, 2024
276bfbd
iSCSI release
brkelly20 Oct 28, 2024
7482e28
update build
brkelly20 Oct 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/build-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,18 @@ on:
- 'v*.*.*'
jobs:
main:
runs-on: self-hosted
runs-on: deployinatorv1
permissions:
contents: write
packages: write
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 1
- name: Package Binaries
run: build-packages ${{github.repository}} ${{github.workspace}} --env NPM_AUTH_TOKEN ${{secrets.NPM_AUTH_PAT}}
run: build-packages ${{github.repository}} ${{github.workspace}} --env NPM_AUTH_TOKEN ${{secrets.NPM_AUTH_PAT}} --env YARN_IGNORE_NODE 1
- name: Set Variables
if: startsWith(github.ref, 'refs/tags/')
run: |
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
TODO
node_modules/
.yarn/
.yarnrc.yml
*_generic.tar.gz
*_generic.zip
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "houston-common"]
path = houston-common
url = git@github.com:45Drives/houston-common.git
13 changes: 13 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"tailwindCSS.classAttributes": [
"class",
"className",
"ngClass",
"enter-active-class",
"enter-from-class",
"enter-to-class",
"leave-active-class",
"leave-from-class",
"leave-to-class"
]
}
5 changes: 2 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
## Cockpit File Sharing 3.3.7-1
## Cockpit File Sharing 4.2.5-1

* Samba - fix saving global advanced settings with '=' in their value
* NFS - better whitespace handling while parsing exports file
* iSCSI Release
47 changes: 32 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@
# If not, see <https://www.gnu.org/licenses/>.

# PLUGIN_SRCS is space-delimited list of subdirectories containg a plugin project.
# You can leave it empty for automatic detection based on directories containing a package.json file.
PLUGIN_SRCS=
PLUGIN_SRCS=file-sharing

# For installing to a remote machine for testing with `make install-remote`
REMOTE_TEST_HOST=192.168.207.27
REMOTE_TEST_HOST=192.168.45.23
REMOTE_TEST_USER=root

# Restarts cockpit after install
Expand Down Expand Up @@ -53,35 +52,44 @@ BUILD_FLAGS=-- --minify false
endif

ifndef PLUGIN_SRCS
PLUGIN_SRCS:=$(patsubst %/package.json,%,$(wildcard */package.json))
# PLUGIN_SRCS:=$(filter-out %-old houston-common, $(patsubst %/package.json,%,$(wildcard */package.json)))
$(error PLUGIN_SRCS not set - please edit Makefile)
endif

OUTPUTS:=$(addsuffix /dist/index.html, $(PLUGIN_SRCS))

NPM_PREFIX:=$(shell command -v yarn > /dev/null 2>&1 && echo 'yarn --cwd' || echo 'npm --prefix')
NPM_UPDATE:=$(shell command -v yarn > /dev/null 2>&1 && echo 'yarn upgrade --cwd' || echo 'npm update --prefix')

VERSION_FILES:=$(addsuffix /src/version.js, $(PLUGIN_SRCS))
OS_PACKAGE_RELEASE?=built_from_source

default: $(VERSION_FILES) $(OUTPUTS)
default: $(OUTPUTS)

all: default

.PHONY: default all install clean help install-local install-remote install
.PHONY: default all install clean help install-local install-remote install houston-common bootstrap-yarn

bootstrap-yarn: .yarnrc.yml

.yarnrc.yml:
./bootstrap.sh

houston-common/Makefile:
git submodule update --init

$(VERSION_FILES): ./manifest.json
echo 'export const pluginVersion = "$(shell jq -r '.version' ./manifest.json)-$(shell jq -r '.buildVersion' ./manifest.json)$(OS_PACKAGE_RELEASE)";' > $@
houston-common: houston-common/Makefile bootstrap-yarn
$(MAKE) -C houston-common

houston-common-%:
$(MAKE) -C houston-common $*

# build outputs
.SECONDEXPANSION:
$(OUTPUTS): %/dist/index.html: $$(shell find '$$*' -type d \( -name node_modules -o -path '$$*/dist' -o -path '*node_modules*' \) -prune -o -type f -not \( -name .gitignore \) -print)
$(OUTPUTS): %/dist/index.html: bootstrap-yarn houston-common $$(shell find '$$*' -type d \( -name node_modules -o -path '$$*/dist' -o -path '*node_modules*' \) -prune -o -type f -not \( -name .gitignore \) -print)
@echo -e $(call cyantext,Building $*)
$(NPM_PREFIX) $* install
yarn --cwd $* install
ifeq ($(AUTO_UPGRADE_DEPS),1)
$(NPM_UPDATE) $*
yarn upgrade --cwd $*
endif
$(NPM_PREFIX) $* run build $(BUILD_FLAGS)
yarn --cwd $* run build $(BUILD_FLAGS)
@echo -e $(call greentext,Done building $*)
@echo

Expand Down Expand Up @@ -141,6 +149,10 @@ package-generic: default
clean: FORCE
rm $(dir $(OUTPUTS)) -rf

clean-all: clean FORCE
rm .yarnrc.yml .yarn/ -rf
find . -name node_modules -type d -exec rm -rf {} \; -prune

help:
@echo 'make usage'
@echo
Expand All @@ -158,4 +170,9 @@ help:
@echo 'build cleanup:'
@echo ' make clean'

test-%:
yarn --cwd $* run test

test: houston-common-test $(addprefix test-, $(PLUGIN_SRCS))

FORCE:
42 changes: 22 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ sudo apt install cockpit-file-sharing
### Direct from .deb
Installing this way may work for other versions of Ubuntu and Debian, but it is unsupported. You won't get automatic updates this way.
```bash
curl -LO https://github.com/45Drives/cockpit-file-sharing/releases/download/v3.3.7/cockpit-file-sharing_3.3.7-1focal_all.deb
sudo apt install ./cockpit-file-sharing_3.3.7-1focal_all.deb
curl -LO https://github.com/45Drives/cockpit-file-sharing/releases/download/v4.1.0/cockpit-file-sharing_4.1.0-1focal_all.deb
sudo apt install ./cockpit-file-sharing_4.1.0-1focal_all.deb
```
## Rocky 8
### From 45Drives Repo (Recommended, Rocky 8 only)
Expand All @@ -51,38 +51,39 @@ sudo dnf install cockpit-file-sharing
Installing this way may work for other versions of Rocky/Centos/RHEL/Fedora/etc, but it is unsupported. You won't get automatic updates this way.
```bash
# dnf or yum
sudo dnf install https://github.com/45Drives/cockpit-file-sharing/releases/download/v3.3.7/cockpit-file-sharing-3.3.7-1.el8.noarch.rpm
sudo dnf install https://github.com/45Drives/cockpit-file-sharing/releases/download/v4.1.0/cockpit-file-sharing-4.1.0-1.el8.noarch.rpm
```
## Generic Installation
1. Install Dependencies
```bash
# debian-like
cockpit
attr
cockpit-bridge
coreutils
attr
findutils
hostname
iproute2
libc-bin
systemd
nfs-kernel-server
samba
samba-common-bin
systemd
winbind
gawk
# RHEL-like
cockpit
attr
cockpit-bridge
coreutils
attr
findutils
hostname
iproute
glibc-common
systemd
nfs-utils
samba-common-tools
samba-winbind-clients
system
gawk
```
2. Download pre-built archive and install
```bash
curl -LO https://github.com/45Drives/cockpit-file-sharing/releases/download/v3.3.7/cockpit-file-sharing_3.3.7_generic.zip
unzip cockpit-file-sharing_3.3.7_generic.zip
cd cockpit-file-sharing_3.3.7_generic
curl -LO https://github.com/45Drives/cockpit-file-sharing/releases/download/v4.1.0/cockpit-file-sharing_4.1.0_generic.zip
unzip cockpit-file-sharing_4.1.0_generic.zip
cd cockpit-file-sharing_4.1.0_generic
# no need to run `make` first, the plugin is pre-built
sudo make install
```
Expand All @@ -95,12 +96,13 @@ Simply click the `+` in the top right of the shares list, fill out the required
* Share Name - Unique name for the share
* Share Description - Optional description for the share
* Path - The path to share out from the server
* Valid Users/Groups
* Allow-lists for users and groups
* By default, any user or group is allowed
* ~~Valid Users/Groups~~ removed in v4 - valid users property still available through advanced settings.
* ~~Allow-lists for users and groups~~
* ~~By default, any user or group is allowed~~
* Guest Ok - Allow accessing share with no password, privileges mapped to `guest account` (default=`nobody`)
* Read Only - Disallow creation/modification of files/directories
* Browsable - Controls whether this share is seen in the list of available shares in a net view and in the browse list
* Inherit Permissions - New directories inherit the mode of the parent directory, including bits such as setgid. New files inherit their read/write bits from the parent directory.
* Windows ACLs - Administer share permissions from Windows, sets the following advanced settings
```ini
map acl inherit = yes
Expand Down
16 changes: 16 additions & 0 deletions bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# bootstrap.sh

set -e
set -o pipefail
set -x

command -v sponge >/dev/null || { echo "Missing 'sponge'. Please install moreutils." >&2 ; exit 1 ; }

jq 'del(.packageManager)' ./package.json | sponge ./package.json

rm .yarnrc.yml .yarn -rf

yarn set version stable

yarn config set nodeLinker node-modules
Loading
Loading