mirror of
https://github.com/IceWhaleTech/CasaOS.git
synced 2025-06-16 05:55:33 +00:00
0.3.5 (#464)
* initial completion of the sharing function * Adjusting multi-partition disk mounts * Add file sharing function * update usb auto mount shell * update samba config * add umount disk function * update change log * update usb auto mount \ * update usb auto mount * Update periodical.go * Update periodical.go * resolve alpha.1 issues * Update UI
This commit is contained in:
parent
091be6d12e
commit
b6f413b9e9
1
.gitignore
vendored
1
.gitignore
vendored
@ -38,3 +38,4 @@ main
|
||||
CasaOS
|
||||
github.com
|
||||
.all-contributorsrc
|
||||
build
|
@ -5,15 +5,18 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/config"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/samba"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/command"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/encryption"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/file"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
|
||||
"github.com/IceWhaleTech/CasaOS/service"
|
||||
model2 "github.com/IceWhaleTech/CasaOS/service/model"
|
||||
uuid "github.com/satori/go.uuid"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func InitFunction() {
|
||||
@ -24,7 +27,8 @@ func InitFunction() {
|
||||
// Soon to be removed
|
||||
ChangeAPIUrl()
|
||||
MoveUserToDB()
|
||||
InitNetworkMount()
|
||||
go InitNetworkMount()
|
||||
|
||||
}
|
||||
|
||||
func CheckSerialDiskMount() {
|
||||
@ -141,12 +145,14 @@ func MoveUserToDB() {
|
||||
}
|
||||
|
||||
func InitNetworkMount() {
|
||||
time.Sleep(time.Second * 10)
|
||||
connections := service.MyService.Connections().GetConnectionsList()
|
||||
for _, v := range connections {
|
||||
connection := service.MyService.Connections().GetConnectionByID(fmt.Sprint(v.ID))
|
||||
directories, err := samba.GetSambaSharesList(connection.Host, connection.Port, connection.Username, connection.Password)
|
||||
if err != nil {
|
||||
service.MyService.Connections().DeleteConnection(fmt.Sprint(connection.ID))
|
||||
loger.Error("mount samba err", zap.Any("err", err), zap.Any("info", connection))
|
||||
continue
|
||||
}
|
||||
baseHostPath := "/mnt/" + connection.Host
|
||||
|
@ -1,6 +1,7 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"reflect"
|
||||
"strconv"
|
||||
@ -255,6 +256,8 @@ func DeleteDisksUmount(c *gin.Context) {
|
||||
service.MyService.Disk().UmountPointAndRemoveDir(v.Path)
|
||||
//delete data
|
||||
service.MyService.Disk().DeleteMountPoint(v.Path, v.MountPoint)
|
||||
|
||||
service.MyService.Shares().DeleteShareByPath(v.MountPoint)
|
||||
}
|
||||
|
||||
service.MyService.Disk().RemoveLSBLKCache()
|
||||
@ -367,7 +370,7 @@ func PostDiskAddPartition(c *gin.Context) {
|
||||
js := make(map[string]interface{})
|
||||
c.ShouldBind(&js)
|
||||
path := js["path"].(string)
|
||||
//name := js["name"].(string)
|
||||
name := js["name"].(string)
|
||||
format := js["format"].(bool)
|
||||
|
||||
if len(path) == 0 {
|
||||
@ -412,10 +415,16 @@ func PostDiskAddPartition(c *gin.Context) {
|
||||
// c.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.DISK_NEEDS_FORMAT, Message: common_err.GetMsg(common_err.DISK_NEEDS_FORMAT)})
|
||||
// return
|
||||
// }
|
||||
fmt.Println(name)
|
||||
if len(name) == 0 {
|
||||
name = "Storage"
|
||||
}
|
||||
fmt.Println(name)
|
||||
for i := 0; i < len(currentDisk.Children); i++ {
|
||||
childrenName := currentDisk.Children[i].Label
|
||||
if len(childrenName) == 0 {
|
||||
childrenName = "Storage_" + currentDisk.Children[i].Name
|
||||
//childrenName = name + "_" + currentDisk.Children[i].Name
|
||||
childrenName = name + "_" + strconv.Itoa(i+1)
|
||||
}
|
||||
mountPath := "/DATA/" + childrenName
|
||||
if !file.CheckNotExist(mountPath) {
|
||||
|
@ -1120,7 +1120,7 @@ func ContainerUpdateInfo(c *gin.Context) {
|
||||
showENV := info.Config.Labels["show_env"]
|
||||
showENVList := strings.Split(showENV, ",")
|
||||
showENVMap := make(map[string]string)
|
||||
if len(showENVList) > 0 {
|
||||
if len(showENVList) > 0 && showENVList[0] != "" {
|
||||
for _, name := range showENVList {
|
||||
showENVMap[name] = "1"
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.com
|
||||
* @Date: 2022-07-26 11:08:48
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-05 12:16:39
|
||||
* @LastEditTime: 2022-08-17 18:25:42
|
||||
* @FilePath: /CasaOS/route/v1/samba.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@ -85,6 +85,7 @@ func PostSambaSharesCreate(c *gin.Context) {
|
||||
shareDBModel.Anonymous = true
|
||||
shareDBModel.Path = v.Path
|
||||
shareDBModel.Name = filepath.Base(v.Path)
|
||||
os.Chmod(v.Path, 0777)
|
||||
service.MyService.Shares().CreateShare(shareDBModel)
|
||||
}
|
||||
|
||||
@ -127,8 +128,8 @@ func PostSambaConnectionsCreate(c *gin.Context) {
|
||||
c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
|
||||
return
|
||||
}
|
||||
connection.Host = strings.Split(connection.Host, "/")[0]
|
||||
// check is exists
|
||||
|
||||
connections := service.MyService.Connections().GetConnectionByHost(connection.Host)
|
||||
if len(connections) > 0 {
|
||||
c.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.Record_ALREADY_EXIST, Message: common_err.GetMsg(common_err.Record_ALREADY_EXIST), Data: common_err.GetMsg(common_err.Record_ALREADY_EXIST)})
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.com
|
||||
* @Date: 2022-07-11 16:02:29
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-11 14:20:02
|
||||
* @LastEditTime: 2022-08-17 19:14:50
|
||||
* @FilePath: /CasaOS/route/v1/storage.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@ -11,8 +11,8 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
||||
"github.com/IceWhaleTech/CasaOS/model"
|
||||
"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
|
||||
@ -70,7 +70,12 @@ func GetStorageList(c *gin.Context) {
|
||||
stor.Type = v.FsType
|
||||
stor.DriveName = v.Name
|
||||
if len(v.Label) == 0 {
|
||||
stor.Label = "Storage" + strconv.Itoa(diskNumber) + "_" + strconv.Itoa(children)
|
||||
if stor.MountPoint == "/" {
|
||||
stor.Label = "System"
|
||||
} else {
|
||||
stor.Label = filepath.Base(stor.MountPoint)
|
||||
}
|
||||
|
||||
children += 1
|
||||
} else {
|
||||
stor.Label = v.Label
|
||||
|
@ -535,13 +535,14 @@ func (ds *dockerService) DockerContainerCreate(m model.CustomizationPostData, id
|
||||
// info.NetworkSettings = &types.NetworkSettings{}
|
||||
hostConfig = info.HostConfig
|
||||
config = info.Config
|
||||
}
|
||||
|
||||
} else {
|
||||
config.Cmd = m.Cmd
|
||||
config.Image = m.Image
|
||||
config.Env = envArr
|
||||
config.Hostname = m.HostName
|
||||
config.ExposedPorts = ports
|
||||
}
|
||||
|
||||
config.Labels["origin"] = m.Origin
|
||||
config.Labels["casaos"] = "casaos"
|
||||
config.Labels["web"] = m.PortMap
|
||||
|
@ -1,3 +1,13 @@
|
||||
/*
|
||||
* @Author: LinkLeong link@icewhale.org
|
||||
* @Date: 2021-12-07 17:14:41
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-17 18:46:43
|
||||
* @FilePath: /CasaOS/service/model/o_disk.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
* Copyright (c) 2022 by icewhale, All Rights Reserved.
|
||||
*/
|
||||
package model
|
||||
|
||||
//SerialAdvanced Technology Attachment (STAT)
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: LinkLeong link@icewhale.org
|
||||
* @Date: 2022-07-26 11:21:14
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-11 14:04:00
|
||||
* @LastEditTime: 2022-08-18 11:16:25
|
||||
* @FilePath: /CasaOS/service/shares.go
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
@ -30,12 +30,18 @@ type SharesService interface {
|
||||
DeleteShare(id string)
|
||||
UpdateConfigFile()
|
||||
InitSambaConfig()
|
||||
DeleteShareByPath(path string)
|
||||
}
|
||||
|
||||
type sharesStruct struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func (s *sharesStruct) DeleteShareByPath(path string) {
|
||||
s.db.Where("path LIKE ?", path+"%").Delete(&model.SharesDBModel{})
|
||||
s.UpdateConfigFile()
|
||||
}
|
||||
|
||||
func (s *sharesStruct) GetSharesByName(name string) (shares []model2.SharesDBModel) {
|
||||
s.db.Select("anonymous,path,id").Where("name = ?", name).Find(&shares)
|
||||
|
||||
|
@ -1,3 +1,13 @@
|
||||
<!--
|
||||
* @Author: LinkLeong link@icewhale.org
|
||||
* @Date: 2022-08-18 11:14:30
|
||||
* @LastEditors: LinkLeong
|
||||
* @LastEditTime: 2022-08-18 11:17:26
|
||||
* @FilePath: /CasaOS/web/index.html
|
||||
* @Description:
|
||||
* @Website: https://www.casaos.io
|
||||
* Copyright (c) 2022 by icewhale, All Rights Reserved.
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="">
|
||||
|
||||
@ -20,7 +30,7 @@
|
||||
<title>
|
||||
CasaOS
|
||||
</title>
|
||||
<link href="/ui/css/13.a16d5119.css" rel="prefetch"><link href="/ui/css/14.cf8c898a.css" rel="prefetch"><link href="/ui/css/4.f17f9b01.css" rel="prefetch"><link href="/ui/css/5.e8438f80.css" rel="prefetch"><link href="/ui/css/6.d72d6157.css" rel="prefetch"><link href="/ui/css/7.805596b0.css" rel="prefetch"><link href="/ui/css/8.92188e4d.css" rel="prefetch"><link href="/ui/css/9.dccf29b4.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.c78d232d.css" rel="preload" as="style"><link href="/ui/css/vendors~app.c42f9a2b.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.c42f9a2b.css" rel="stylesheet"><link href="/ui/css/app.c78d232d.css" rel="stylesheet"></head>
|
||||
<link href="/ui/css/13.4aea6393.css" rel="prefetch"><link href="/ui/css/14.177dd094.css" rel="prefetch"><link href="/ui/css/4.5facaf2f.css" rel="prefetch"><link href="/ui/css/5.3f6e4ac6.css" rel="prefetch"><link href="/ui/css/6.0cf49524.css" rel="prefetch"><link href="/ui/css/7.515410b8.css" rel="prefetch"><link href="/ui/css/8.d30a96e7.css" rel="prefetch"><link href="/ui/css/9.3e385d0d.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.66eff8da.css" rel="preload" as="style"><link href="/ui/css/vendors~app.3967bc71.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.3967bc71.css" rel="stylesheet"><link href="/ui/css/app.66eff8da.css" rel="stylesheet"></head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
@ -32,3 +42,4 @@
|
||||
<script type="text/javascript" src="/ui/js/vendors~app.js"></script><script type="text/javascript" src="/ui/js/app.js"></script></body>
|
||||
|
||||
</html>
|
||||
|
||||
|
100
web/js/4.js
100
web/js/4.js
File diff suppressed because one or more lines are too long
@ -18,7 +18,7 @@
|
||||
/*!**************************************************!*\
|
||||
!*** ./src/assets/background/preview-widget.svg ***!
|
||||
\**************************************************/
|
||||
/*! no static exports found */function(module,exports,__webpack_require__){eval('module.exports = __webpack_require__.p + "img/preview-widget.5069b926.svg";\n\n//# sourceURL=webpack:///./src/assets/background/preview-widget.svg?')},"./src/assets/background/wallpaper01.jpg":
|
||||
/*! no static exports found */function(module,exports,__webpack_require__){eval('module.exports = __webpack_require__.p + "img/preview-widget.e228363c.svg";\n\n//# sourceURL=webpack:///./src/assets/background/preview-widget.svg?')},"./src/assets/background/wallpaper01.jpg":
|
||||
/*!***********************************************!*\
|
||||
!*** ./src/assets/background/wallpaper01.jpg ***!
|
||||
\***********************************************/
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user