Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
m3_webInterface
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
m3
m3_webInterface
Commits
efdf8b93
Commit
efdf8b93
authored
3 weeks ago
by
Ulises Morales Ramírez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update remoto
parent
e31273c7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
0 deletions
+39
-0
views.py
catalog/views.py
+39
-0
No files found.
catalog/views.py
View file @
efdf8b93
...
...
@@ -597,6 +597,45 @@ def run_update_and_report(request):
if
request
.
method
!=
'POST'
:
return
JsonResponse
({
'status'
:
'error'
,
'message'
:
'Only POST requests are allowed'
},
status
=
405
)
# Ruta absoluta al script en el home de geoint
script_path
=
'/home/geoint/m3_webInterface/update.sh'
if
not
os
.
path
.
exists
(
script_path
):
return
JsonResponse
({
'status'
:
'error'
,
'message'
:
'update.sh not found'
},
status
=
404
)
try
:
# Ejecutar el script como usuario geoint usando sudo
result
=
subprocess
.
run
(
[
'sudo'
,
'-u'
,
'geoint'
,
script_path
],
# Usar sudo para cambiar de usuario
check
=
True
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
,
text
=
True
,
cwd
=
'/home/geoint/m3_webInterface'
# Opcional: establecer directorio de trabajo
)
output
=
{
'status'
:
'success'
,
'return_code'
:
result
.
returncode
,
'stdout'
:
result
.
stdout
,
'stderr'
:
result
.
stderr
}
return
JsonResponse
(
output
)
except
subprocess
.
CalledProcessError
as
e
:
return
JsonResponse
({
'status'
:
'error'
,
'message'
:
'Script execution failed'
,
'return_code'
:
e
.
returncode
,
'stdout'
:
e
.
stdout
,
'stderr'
:
e
.
stderr
},
status
=
500
)
except
Exception
as
e
:
return
JsonResponse
({
'status'
:
'error'
,
'message'
:
str
(
e
)},
status
=
500
)
if
request
.
method
!=
'POST'
:
return
JsonResponse
({
'status'
:
'error'
,
'message'
:
'Only POST requests are allowed'
},
status
=
405
)
# Get the base directory (where manage.py is located)
base_dir
=
settings
.
BASE_DIR
script_path
=
os
.
path
.
join
(
base_dir
,
'update.sh'
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment