Compare commits

...

23 Commits

Author SHA1 Message Date
mojothemonkey2
5690ccc1b5 CPU temp support for other platforms (fix #661) (#677)
Signed-off-by: link <a624669980@163.com>
Co-authored-by: link <a624669980@163.com>
2022-11-16 17:30:19 +08:00
LinkLeong
13c2967889 update changelog 2022-11-16 05:57:39 +00:00
a624669980@163.com
8a37f9c879 Merge branch 'heads/v0.3.7' 2022-11-15 15:56:08 +08:00
Tiger Wang
96e9284235 Update README.md
Signed-off-by: Tiger Wang <tigerwang@outlook.com>
2022-11-07 11:22:16 -05:00
Tiger Wang
06f83d3d68 Update bug_report.md
Signed-off-by: Tiger Wang <tigerwang@outlook.com>
2022-11-04 07:36:52 -04:00
Tiger Wang
29e701cb7c fix potential goroutine leak due to http request without a timeout (#656) 2022-11-03 18:07:49 -04:00
Tiger Wang
43cc7596d2 bump version (#650) 2022-11-02 11:07:30 -04:00
John Guan
11f800d138 Update feedback.yml 2022-11-02 11:31:14 +08:00
John Guan
a58a9e5477 update issue templates 2022-11-02 11:29:21 +08:00
John Guan
5f015e9038 update issue templates 2022-11-02 11:26:24 +08:00
John Guan
3922296d9b Revert "Update alpha_bug_report.yml"
This reverts commit 908a16ace4.
2022-11-02 11:24:58 +08:00
John Guan
908a16ace4 Update alpha_bug_report.yml 2022-11-02 11:24:37 +08:00
John Guan
f7a3863720 Update .gitignore 2022-11-02 10:50:01 +08:00
link
e94c2ff5c5 Update release.yml
Signed-off-by: link <a624669980@163.com>
2022-10-31 14:40:32 +08:00
link
89487eb5db Update CHANGELOG.md
Signed-off-by: link <a624669980@163.com>
2022-10-29 10:36:51 +08:00
Tiger Wang
0fb5cab480 move common proxy to CasaOS-Common (#643)
...and use gateway proxy from CasaOS-Common
2022-10-28 17:34:18 -04:00
link
f210f29ae5 Update CHANGELOG.md
Signed-off-by: link <a624669980@163.com>
2022-10-28 08:27:00 +08:00
Tiger Wang
7bd5c6a2b4 remove repeating logging to reduce unnecessary verbosity 2022-10-27 11:59:35 -04:00
link
230f1585a3 V0.3.7 (#629)
* add send notify function

* add shell script

* add system notiry

* remove disk and test common package

* update http status

* add share function to common

* remove temp path

* remove /DATA directory initialization - moved to local-storage (#578)

* update goreleaser configuration

* wip

* change service type to notify for systemd so its status is OK only when service is initialized successfully

* update CasaOS-Common to fix runtime error

* wip

* add send notify function

* add shell script

* add system notiry

* remove disk and test common package

* update http status

* add share function to common

* remove temp path

* remove /DATA directory initialization - moved to local-storage (#578)

* update goreleaser configuration

* wip

* change service type to notify for systemd so its status is OK only when service is initialized successfully

* update CasaOS-Common to fix runtime error

* wip

* wip

* wip

* wip

* wip

* Utilization interface to supplement disk information

* fix upload file

* wip

* wip

* add update url

* wip

* wip

* add change log

* update changelog

* update release

Signed-off-by: link <a624669980@163.com>
Co-authored-by: Tiger Wang <tigerwang@outlook.com>
2022-10-26 15:46:40 +08:00
Tiger Wang
c0b3260a6c use $BASH instead of $SHELL in setup and cleanup script in case of running under non-bash shell. (#617)
fixes https://github.com/IceWhaleTech/CasaOS/issues/572
2022-10-21 13:40:31 -04:00
link
9ed82cd55e Update CHANGELOG.md
Signed-off-by: link <a624669980@163.com>
2022-10-20 17:29:02 +08:00
Tiger Wang
381fb85b1d v0.3.7 (#600)
* add send notify function

* add shell script

* add system notiry

* remove disk and test common package

* update http status

* add share function to common

* remove temp path

* remove /DATA directory initialization - moved to local-storage (#578)

* update goreleaser configuration

* wip

* change service type to notify for systemd so its status is OK only when service is initialized successfully

* update CasaOS-Common to fix runtime error

* wip

* add send notify function

* add shell script

* add system notiry

* remove disk and test common package

* update http status

* add share function to common

* remove temp path

* remove /DATA directory initialization - moved to local-storage (#578)

* update goreleaser configuration

* wip

* change service type to notify for systemd so its status is OK only when service is initialized successfully

* update CasaOS-Common to fix runtime error

* wip

* wip

* wip

* wip

* wip

* Utilization interface to supplement disk information

* fix upload file

* wip

* wip

* add update url

* wip

* wip

* add change log

* update changelog

Co-authored-by: LinkLeong <a624669980@163.com>
2022-10-20 14:25:26 +08:00
link
8cec47e4db Update demo.yml
Signed-off-by: link <a624669980@163.com>
2022-10-19 11:41:09 +08:00
19 changed files with 163 additions and 56 deletions

View File

@@ -28,5 +28,19 @@ If applicable, add screenshots to help explain your problem.
- Browser [e.g. chrome, safari] - Browser [e.g. chrome, safari]
- Version [e.g. 22] - Version [e.g. 22]
**Logs**
run following command to collect corresponding logs:
```bash
sudo journalctl -xef -u casaos-gateway
sudo journalctl -xef -u casaos-user-service
sudo journalctl -xef -u casaos-local-storage
sudo journalctl -xef -u casaos.service
```
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

23
.github/ISSUE_TEMPLATE/feedback.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: "Feedback"
description: Feedback, showcases, thoughts, needs and questions, etc.
title: "[Feedback] "
labels: ["feedback"]
body:
- type: markdown
attributes:
value: |
### ❤️ Thanks for your feedback!
> Come join our [Discord community](https://discord.gg/knqAbbBbeX) and paint the ideal home cloud with us.
- type: textarea
id: description
attributes:
label: Description
placeholder: What do you want to tell us?
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional Information
description: Please add logs/files/screenshots if you have them to help us better understanding.

View File

@@ -33,7 +33,7 @@ jobs:
- name: Get old instance and snapshot name, create new instance name - name: Get old instance and snapshot name, create new instance name
run: | run: |
echo "OLD_INSTANCE_SNAPSHOT_NAME=$(aws lightsail get-instance-snapshots | grep '"name": "0.3.3-demo-1658402149' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g' | sed 's/name://g')" >> $GITHUB_ENV echo "OLD_INSTANCE_SNAPSHOT_NAME=$(aws lightsail get-instance-snapshots | grep '"name": "casaos-0.3.6-1666150291' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g' | sed 's/name://g')" >> $GITHUB_ENV
echo "OLD_INSTANCE_NAME=$(aws lightsail get-instances | grep '"name": "CasaOS-Demo-[0-9]' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g' | sed 's/name://g')" >> $GITHUB_ENV echo "OLD_INSTANCE_NAME=$(aws lightsail get-instances | grep '"name": "CasaOS-Demo-[0-9]' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g' | sed 's/name://g')" >> $GITHUB_ENV
echo "NEW_INSTANCE_NAME=CasaOS-Demo-$(date +%s)" >> $GITHUB_ENV echo "NEW_INSTANCE_NAME=CasaOS-Demo-$(date +%s)" >> $GITHUB_ENV

View File

@@ -63,4 +63,9 @@ jobs:
dist/linux-arm-7-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm-7-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz dist/linux-arm-7-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm-7-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz
dist/linux-arm64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz dist/linux-arm64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz
dist/linux-amd64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-amd64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz dist/linux-amd64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-amd64-casaos-${{ steps.get_version.outputs.VERSION }}.tar.gz
dist/linux-arm-7-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm-7-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz
dist/linux-arm64-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-arm64-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz
dist/linux-amd64-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz:/IceWhaleTech/CasaOS/releases/download/${{ steps.get_version.outputs.VERSION }}/linux-amd64-casaos-migration-tool-${{ steps.get_version.outputs.VERSION }}.tar.gz

5
.gitignore vendored
View File

@@ -36,4 +36,7 @@ main
github.com github.com
.all-contributorsrc .all-contributorsrc
dist dist
CasaOS CasaOS
# System Files
.DS_Store

View File

@@ -18,6 +18,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
## [0.3.8-alpha.1] 2022-11-16
### Added
- [System] Add system announcement
- [App] Allow to turn off the display of "Existing Docker Apps" in the settings.
### Changed
- [System] Improve the feedback function, you can submit feedback in the bottom right corner of WebUI.
### Fixed
- [System] Fix CPU Temp for other platforms ([#661](https://github.com/IceWhaleTech/CasaOS/issues/661))
## [0.3.7.1] 2022-11-04 ## [0.3.7.1] 2022-11-04
### Fixed ### Fixed
@@ -39,8 +52,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [Apps] App list update mechanism improved, now you can see the latest apps in App Store immediately. - [Apps] App list update mechanism improved, now you can see the latest apps in App Store immediately.
- [Storage] Fixed a lot of known issues - [Storage] Fixed a lot of known issues
### Added
- [Storage] Disk merge (Beta), you can merge multiple disks into a single storage space (currently you need to enable this feature from the command line)
## [0.3.6-alpha.1] - 2022-09-06 ### Changed
- [Files] Changed the cache file storage location, now the file upload size is not limited by the system disk capacity.
- [Scripts] Updated installation and upgrade scripts to support more Debian-based Linux distributions.
- [Engineering] Refactored Local Storage into a standalone service as part of CasaOS modularization.
### Fixed
- [Apps] App list update mechanism improved, now you can see the latest apps in App Store immediately.
- [Storage] Fixed a lot of known issues
## [0.3.6] - 2022-09-06
### Added ### Added
- [System] Added power and temperature info to performance widget (Intel) - [System] Added power and temperature info to performance widget (Intel)

View File

@@ -120,13 +120,13 @@ Community Support
Freshly install a system from the list above and run this command: Freshly install a system from the list above and run this command:
```sh ```sh
wget -qO- https://get.casaos.io | bash wget -qO- https://get.casaos.io | sudo bash
``` ```
or or
```sh ```sh
curl -fsSL https://get.casaos.io | bash curl -fsSL https://get.casaos.io | sudo bash
``` ```
### Uninstall CasaOS ### Uninstall CasaOS
@@ -141,7 +141,7 @@ casaos-uninstall
Before v0.3.3 Before v0.3.3
```sh ```sh
curl -fsSL https://get.icewhale.io/casaos-uninstall.sh | bash curl -fsSL https://get.icewhale.io/casaos-uninstall.sh | sudo bash
``` ```
## Community ## Community
@@ -162,38 +162,8 @@ We believes that through community-driven collaborative innovation and open comm
CasaOS is a community-driven open source project and the people involved are CasaOS users. That means CasaOS will always need contributions from community members just like you! CasaOS is a community-driven open source project and the people involved are CasaOS users. That means CasaOS will always need contributions from community members just like you!
<details> - See <https://wiki.casaos.io/en/contribute> for ways of contribution to CasaOS
<summary><b>How can I get involved? 🧐</b></summary> - See <https://wiki.casaos.io/en/contribute/development> if you want to be involved in code contribution specificially
<p>
### Coding 💻 (WIP)
We are refining documentation that can be used for effective community collaboration. Feel free to start a discussion if you have a good idea.
### Helping Users 💬
If you have extensive knowledge of CasaOS and related areas. We highly encourage you to help others as much as you can in Discord and Discussions.
Discord: [https://discord.gg/knqAbbBbeX](https://discord.gg/knqAbbBbeX)
GitHub Discussions: [https://github.com/IceWhaleTech/CasaOS/discussions](https://github.com/IceWhaleTech/CasaOS/discussions)
### Helping with Translations 🌍 (WIP)
CasaOS officially supports English and Chinese. You are welcome to help make CasaOS available in more languages.
### Performing Alpha Testing ⚠️
Alpha testing is quality assurance testing that is engaged and driven by the community. It's a great way to get involved in contributing and experiencing the latest features before a new release.
The documentation is being refined and you can contact @JohnGuan via [Discord](https://discord.gg/knqAbbBbeX). Ask to join the #casaos-alpha channel.
### Writing Documentation 📖 (WIP)
Help make our documentation better by writing new content for the CasaOS Wiki, correcting existing material, or translating content into new languages.
</p>
</details>
## Credits ## Credits

View File

@@ -45,7 +45,7 @@ SETUP_SCRIPT_FILEPATH="${SETUP_SCRIPT_DIRECTORY}/${SETUP_SCRIPT_FILENAME}"
{ {
echo "🟩 Running ${SETUP_SCRIPT_FILENAME}..." echo "🟩 Running ${SETUP_SCRIPT_FILENAME}..."
$SHELL "${SETUP_SCRIPT_FILEPATH}" "${BUILD_PATH}" $BASH "${SETUP_SCRIPT_FILEPATH}" "${BUILD_PATH}"
} || { } || {
echo "🟥 ${SETUP_SCRIPT_FILENAME} failed." echo "🟥 ${SETUP_SCRIPT_FILENAME} failed."
exit 1 exit 1

View File

@@ -1,4 +1,14 @@
#!/bin/bash #!/bin/bash
###
# @Author: LinkLeong link@icewhale.org
# @Date: 2022-11-15 15:51:44
# @LastEditors: LinkLeong
# @LastEditTime: 2022-11-15 15:53:37
# @FilePath: /CasaOS/build/sysroot/usr/share/casaos/cleanup/script.d/03-cleanup-casaos.sh
# @Description:
# @Website: https://www.casaos.io
# Copyright (c) 2022 by icewhale, All Rights Reserved.
###
set -e set -e

2
go.mod
View File

@@ -4,7 +4,7 @@ go 1.16
require ( require (
github.com/Curtis-Milo/nat-type-identifier-go v0.0.0-20220215191915-18d42168c63d github.com/Curtis-Milo/nat-type-identifier-go v0.0.0-20220215191915-18d42168c63d
github.com/IceWhaleTech/CasaOS-Common v0.0.0-20220929035515-b1287110d6d8 github.com/IceWhaleTech/CasaOS-Common v0.3.7-5
github.com/IceWhaleTech/CasaOS-Gateway v0.3.6 github.com/IceWhaleTech/CasaOS-Gateway v0.3.6
github.com/Microsoft/go-winio v0.5.0 // indirect github.com/Microsoft/go-winio v0.5.0 // indirect
github.com/ambelovsky/go-structs v1.1.0 // indirect github.com/ambelovsky/go-structs v1.1.0 // indirect

4
go.sum
View File

@@ -84,8 +84,8 @@ github.com/Curtis-Milo/nat-type-identifier-go v0.0.0-20220215191915-18d42168c63d
github.com/Curtis-Milo/nat-type-identifier-go v0.0.0-20220215191915-18d42168c63d/go.mod h1:lW9x+yEjqKdPbE3+cf2fGPJXCw/hChX3Omi9QHTLFsQ= github.com/Curtis-Milo/nat-type-identifier-go v0.0.0-20220215191915-18d42168c63d/go.mod h1:lW9x+yEjqKdPbE3+cf2fGPJXCw/hChX3Omi9QHTLFsQ=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/IceWhaleTech/CasaOS-Common v0.0.0-20220901034123-ca130f6b5ce9/go.mod h1:2MiivEMzvh41codhEKUcn46WK3Ffesop/04qa9jsvQk= github.com/IceWhaleTech/CasaOS-Common v0.0.0-20220901034123-ca130f6b5ce9/go.mod h1:2MiivEMzvh41codhEKUcn46WK3Ffesop/04qa9jsvQk=
github.com/IceWhaleTech/CasaOS-Common v0.0.0-20220929035515-b1287110d6d8 h1:r8nhgQ6tnrn6ikXN9aLH/K4H4H64Nc0hZ6jyW2B22x0= github.com/IceWhaleTech/CasaOS-Common v0.3.7-5 h1:CLPeUaFoGCA3WNnOWxtdFbBmLIg7odCQglZJ/c878uU=
github.com/IceWhaleTech/CasaOS-Common v0.0.0-20220929035515-b1287110d6d8/go.mod h1:2MiivEMzvh41codhEKUcn46WK3Ffesop/04qa9jsvQk= github.com/IceWhaleTech/CasaOS-Common v0.3.7-5/go.mod h1:2MiivEMzvh41codhEKUcn46WK3Ffesop/04qa9jsvQk=
github.com/IceWhaleTech/CasaOS-Gateway v0.3.6 h1:2tQQo85+jzbbjqIsKKn77QlAA73bc7vZsVCFvWnK4mg= github.com/IceWhaleTech/CasaOS-Gateway v0.3.6 h1:2tQQo85+jzbbjqIsKKn77QlAA73bc7vZsVCFvWnK4mg=
github.com/IceWhaleTech/CasaOS-Gateway v0.3.6/go.mod h1:hnZwGUzcOyiufMpVO7l3gu2gAm6Ws4TY4Nlj3kMshXA= github.com/IceWhaleTech/CasaOS-Gateway v0.3.6/go.mod h1:hnZwGUzcOyiufMpVO7l3gu2gAm6Ws4TY4Nlj3kMshXA=
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=

View File

@@ -8,7 +8,7 @@ import (
"path/filepath" "path/filepath"
"time" "time"
"github.com/IceWhaleTech/CasaOS-Gateway/common" "github.com/IceWhaleTech/CasaOS-Common/model"
"github.com/IceWhaleTech/CasaOS/model/notify" "github.com/IceWhaleTech/CasaOS/model/notify"
"github.com/IceWhaleTech/CasaOS/pkg/cache" "github.com/IceWhaleTech/CasaOS/pkg/cache"
"github.com/IceWhaleTech/CasaOS/pkg/config" "github.com/IceWhaleTech/CasaOS/pkg/config"
@@ -56,6 +56,7 @@ func init() {
service.Cache = cache.Init() service.Cache = cache.Init()
service.GetToken() service.GetToken()
service.GetCPUThermalZone()
service.NewVersionApp = make(map[string]string) service.NewVersionApp = make(map[string]string)
route.InitFunction() route.InitFunction()
@@ -112,7 +113,7 @@ func main() {
} }
routers := []string{"sys", "apps", "container", "app-categories", "port", "file", "folder", "batch", "image", "samba", "notify"} routers := []string{"sys", "apps", "container", "app-categories", "port", "file", "folder", "batch", "image", "samba", "notify"}
for _, v := range routers { for _, v := range routers {
err = service.MyService.Gateway().CreateRoute(&common.Route{ err = service.MyService.Gateway().CreateRoute(&model.Route{
Path: "/v1/" + v, Path: "/v1/" + v,
Target: "http://" + listener.Addr().String(), Target: "http://" + listener.Addr().String(),
}) })
@@ -126,7 +127,7 @@ func main() {
time.Sleep(time.Second * 2) time.Sleep(time.Second * 2)
// v0.3.6 // v0.3.6
if config.ServerInfo.HttpPort != "" { if config.ServerInfo.HttpPort != "" {
changePort := common.ChangePortRequest{} changePort := model.ChangePortRequest{}
changePort.Port = config.ServerInfo.HttpPort changePort.Port = config.ServerInfo.HttpPort
err := service.MyService.Gateway().ChangePort(&changePort) err := service.MyService.Gateway().ChangePort(&changePort)
if err == nil { if err == nil {

View File

@@ -1,3 +1,13 @@
/*
* @Author: LinkLeong link@icewhale.org
* @Date: 2022-11-15 15:51:44
* @LastEditors: LinkLeong
* @LastEditTime: 2022-11-15 15:55:16
* @FilePath: /CasaOS/route/init.go
* @Description:
* @Website: https://www.casaos.io
* Copyright (c) 2022 by icewhale, All Rights Reserved.
*/
package route package route
import ( import (

View File

@@ -12,6 +12,7 @@ import (
"time" "time"
"unsafe" "unsafe"
http2 "github.com/IceWhaleTech/CasaOS-Common/utils/http"
"github.com/IceWhaleTech/CasaOS/model" "github.com/IceWhaleTech/CasaOS/model"
"github.com/IceWhaleTech/CasaOS/pkg/config" "github.com/IceWhaleTech/CasaOS/pkg/config"
"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err" "github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
@@ -342,7 +343,7 @@ func GetSystemNetInfo(c *gin.Context) {
func GetSystemProxy(c *gin.Context) { func GetSystemProxy(c *gin.Context) {
url := c.Query("url") url := c.Query("url")
resp, err := http.Get(url) resp, err := http2.Get(url, 30*time.Second)
if err != nil { if err != nil {
return return
} }

View File

@@ -11,7 +11,7 @@
package service package service
import ( import (
gateway "github.com/IceWhaleTech/CasaOS-Gateway/common" "github.com/IceWhaleTech/CasaOS-Common/external"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/patrickmn/go-cache" "github.com/patrickmn/go-cache"
"gorm.io/gorm" "gorm.io/gorm"
@@ -35,12 +35,12 @@ type Repository interface {
System() SystemService System() SystemService
Shares() SharesService Shares() SharesService
Connections() ConnectionsService Connections() ConnectionsService
Gateway() gateway.ManagementService Gateway() external.ManagementService
} }
func NewService(db *gorm.DB, RuntimePath string) Repository { func NewService(db *gorm.DB, RuntimePath string) Repository {
gatewayManagement, err := gateway.NewManagementService(RuntimePath) gatewayManagement, err := external.NewManagementService(RuntimePath)
if err != nil && len(RuntimePath) > 0 { if err != nil && len(RuntimePath) > 0 {
panic(err) panic(err)
} }
@@ -68,10 +68,10 @@ type store struct {
system SystemService system SystemService
shares SharesService shares SharesService
connections ConnectionsService connections ConnectionsService
gateway gateway.ManagementService gateway external.ManagementService
} }
func (c *store) Gateway() gateway.ManagementService { func (c *store) Gateway() external.ManagementService {
return c.gateway return c.gateway
} }
func (s *store) Connections() ConnectionsService { func (s *store) Connections() ConnectionsService {

View File

@@ -16,6 +16,7 @@ import (
command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command" command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err" "github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
"github.com/IceWhaleTech/CasaOS/pkg/utils/file" "github.com/IceWhaleTech/CasaOS/pkg/utils/file"
"github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
"github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/disk" "github.com/shirou/gopsutil/v3/disk"
"github.com/shirou/gopsutil/v3/host" "github.com/shirou/gopsutil/v3/host"
@@ -300,12 +301,46 @@ func (s *systemService) IsServiceRunning(name string) bool {
return strings.TrimSpace(status) == "running" return strings.TrimSpace(status) == "running"
} }
// find thermal_zone of cpu.
// assertions:
// * thermal_zone "type" and "temp" are required fields
// (https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-thermal)
func GetCPUThermalZone() string {
keyName := "cpu_thermal_zone"
var path string
if result, ok := Cache.Get(keyName); ok {
path, ok = result.(string)
if ok {
return path
}
}
for i := 0; i < 100; i++ {
path := "/sys/devices/virtual/thermal/thermal_zone" + strconv.Itoa(i)
if _, err := os.Stat(path); !os.IsNotExist(err) {
name := strings.TrimSuffix(string(file.ReadFullFile(path + "/type")), "\n")
cpu_types := []string{"x86_pkg_temp", "cpu", "CPU", "soc"}
for _, s := range cpu_types {
if strings.HasPrefix(name, s) {
loger.Info(fmt.Sprintf("CPU thermal zone found: %s, path: %s.", name, path))
Cache.SetDefault(keyName, path)
return path
}
}
} else {
loger.Error("CPUThermalZone not found. CPU Temp will not be displayed.")
break
}
}
return ""
}
func (s *systemService) GetCPUTemperature() int { func (s *systemService) GetCPUTemperature() int {
outPut := "" outPut := ""
if file.Exists("/sys/class/thermal/thermal_zone0/temp") { path := GetCPUThermalZone()
outPut = string(file.ReadFullFile("/sys/class/thermal/thermal_zone0/temp")) if len(path)>0 {
} else if file.Exists("/sys/class/hwmon/hwmon0/temp1_input") { outPut = string(file.ReadFullFile(path + "/temp"))
outPut = string(file.ReadFullFile("/sys/class/hwmon/hwmon0/temp1_input"))
} else { } else {
outPut = "0" outPut = "0"
} }

View File

@@ -1,3 +1,13 @@
/*
* @Author: LinkLeong link@icewhale.org
* @Date: 2022-11-15 15:51:44
* @LastEditors: LinkLeong
* @LastEditTime: 2022-11-15 15:56:03
* @FilePath: /CasaOS/types/system.go
* @Description:
* @Website: https://www.casaos.io
* Copyright (c) 2022 by icewhale, All Rights Reserved.
*/
/*@Author: LinkLeong link@icewhale.com /*@Author: LinkLeong link@icewhale.com
*@Date: 2022-02-17 18:53:22 *@Date: 2022-02-17 18:53:22
*@LastEditors: LinkLeong *@LastEditors: LinkLeong
@@ -9,6 +19,6 @@
*/ */
package types package types
const CURRENTVERSION = "0.3.7.1" const CURRENTVERSION = "0.3.8"
const BODY = " " const BODY = " "