sos-berlin / joc-cockpit Goto Github PK
View Code? Open in Web Editor NEWJobScheduler 1 + 2: JOC Cockpit GUI
JobScheduler 1 + 2: JOC Cockpit GUI
i have a workflow with on job from job template. when i click on the job an then on node-properties and then back out of the workflow, a new draft ist created. i do not change anything in the workflow.
i am on version 2.6.0
here is the workflow
{ "version": "1.6.0", "timeZone": "Europe/Vienna", "instructions": [ { "TYPE": "Execute.Named", "jobName": "bericht", "defaultArguments": { "erdname": "\"Lager_Klingersil\"", "erdpath": "\"lager\"" }, "label": "bericht" } ], "jobs": { "bericht": { "agentName": "iskdt01", "withSubagentClusterIdExpr": false, "executable": { "TYPE": "ShellScriptExecutable", "script": "set ERDFILE=%ERDNAME%.erd\nset HTMFILE=%ERDNAME%.htm\nset XLSFILE=%ERDNAME%.xls\nset XLSBASE=\\\\dskdt01\\files\\rkp_pool\\intranet\\Statistik\\excel\n\nset\n\nnet use \\\\dskdt01\\files\\group /u:js7agent Kuihfws7878w3456 \ncopy \\\\dskdt01\\files\\group\\eis\\%ERDPATH%\\%ERDFILE% c:\\temp\n\"C:\\Program Files (x86)\\aruba\\EIS\\EISBuild\\Bin\\EISBuild.exe\" \"c:\\temp\\%ERDFILE%\" /r /b /user=brain /pwd=odin /role=admin /o\"\\\\dskdt01\\files\\rkp_pool\\intranet\\Statistik\\%HTMFILE%\" /o\"%XLSBASE%\\%XLSFILE%\"", "env": { "ERDNAME": "$erdname", "ERDPATH": "$erdpath" }, "v1Compatible": false }, "skipIfNoAdmissionForOrderDay": false, "parallelism": 1, "graceTimeout": 1, "failOnErrWritten": false, "warnOnErrWritten": false, "jobTemplate": { "name": "Eis.ExecuteErd", "hash": "898ebfeb4e44316f822305dba54e517b56af3ddd86c952f562c13d8776a0a2f0" }, "title": "Eis.ExecuteErd" } } }
When removing the last Job in the workflow-editor, most of the time the Start and End Icons are gone and you cannot add a job anymore.
Workaround: Click on another workflow an click back.
Version 2.5.4
In Mange Controllers/Agents the item "Import Agent Configuration" is not working.
The dropdown File-Type shows emtpy items. zips or jsons cannot be dropped and when using the file-selection upload of json is not working.
Upload of a zip is allowed but the agent is not imported.
Version. 2.6.1 (Latest UI Patch)
when i change the name of a schedule, the old orders with the old name are not removed from daily-plan even after restart of daily-plan-service. they stay in state "planned".
redeployment of all workflows does not help.
i installed the latests patches (JOC-1591)
joc_1 | JS7 entrypoint script: updating image joc_1 | .. patch_api [INFO] extracting /var/sos-berlin.com/js7/joc/resources/joc/patches/js7_joc.2.6.1-PATCH.API-2.JOC-1586.JOC-1591.JOC-1592.jar -> /var/sos-berlin.com/js7/joc/webapps/joc/WEB-INF/classes joc_1 | Archive: /var/sos-berlin.com/js7/joc/resources/joc/patches/js7_joc.2.6.1-PATCH.API-2.JOC-1586.JOC-1591.JOC-1592.jar joc_1 | inflating: com/sos/joc/dailyplan/impl/DailyPlanOrdersGenerateImpl.class joc_1 | inflating: com/sos/joc/db/inventory/os/InventoryOperatingSystemsDBLayer.class joc_1 | inflating: com/sos/joc/inventory/impl/ReleaseResourceImpl$1.class joc_1 | inflating: com/sos/joc/inventory/impl/ReleaseResourceImpl.class joc_1 | .. patch_api [INFO] no API patches available from .tar.gz files in directory: /var/sos-berlin.com/js7/joc/resources/joc/patches joc_1 | .. patch_gui [INFO] applying GUI patch tarball: /var/sos-berlin.com/js7/joc/resources/joc/patches/js7_joc.2.6.1-PATCH.GUI-1.JOC-1585.tar.gz
In Job Options (Open Cockpit > Configuration > Controllers > Workflows > Open a workflow GUI editor > Select a job > Click on "More Options" in the site's header > Click on the 2nd tab of job properties (Job Options)), after filling in Credential Key
field and not checking Load User Profile
and clicking on Deploy
button, the user gets a red error popup with the text BadRequestError: JSON DecodingFailure at ... withUserProfile: Missing required field.
and the job doesn't get deployed.
This behaviour doesn't manifest itself, if also Load User Profile
checkbox is checked. In this case, the job gets deployed and no alert is shown.
Create a workflow and a job
Fill in field "Credential Key" in Job Options (accessible via activating the toggle "More Options")
Do not check the "Load User Profile".
Click on "Deploy"
After a while, the alert appears.
JOC cockpit allows the user to deploy a job with Credential Key
filled out & without Load User Profile
checked, without any errors.
These are probably relevant JOC entries (the sensitive information was replaced by "..."):
2024-01-08T16:41:27,305 TRACE JControllerProxy-35 c.s.j.p.u.StoreDeployments - {"TYPE":"Workflow","path":"AdvMedia","versionId":"fd1426cb-f434-4177-a6cb-09ae2d11b7de","timeZone":"...","orderPreparation":{"parameters":{"js7Workflow.path":{"type":"String","final":""/AdvMedia""}}},"instructions":[{"TYPE":"Execute.Named","jobName":"call-ssis-package","label":"call-ssis-package"},{"TYPE":"Execute.Named","jobName":"sftp-ftp-dmz","label":"sftp-ftp-dmz"}],"jobs":{"call-ssis-package":{"agentPath":"Primary","executable":{"TYPE":"ShellScriptExecutable","script":"...","login":{"credentialKey":"bbb"}},"processLimit":1,"sigkillDelay":1},"sftp-ftp-dmz":{"agentPath":"Primary","executable":{"TYPE":"ShellScriptExecutable","script":"..."},"processLimit":1,"sigkillDelay":1,"jobResourcePaths":["sftp-resource"]}}}
2024-01-08T16:41:27,308 DEBUG JControllerProxy-35 c.s.c.h.SOSHibernateSession - [./inventory/deployment/deploy][update]DBItemDeploymentHistory[id=64,account=root,path=/AdvMedia,name=AdvMedia,title=,folder=/,type=1,inventoryConfigurationId=5,controllerInstanceId=0,controllerId=controller,content={"TYPE":"Workflow","path":"AdvMedia","versionId":"fd1426cb-f434-4177-a6cb-09ae2d11b7de","timeZone":"...","orderPreparation":{"parameters":{"js7Workflow.path":{"type":"String","final":""/AdvMedia""}}},"instructions":[{"TYPE":"Execute.Named","jo,invContent={"TYPE":"Workflow","version":"1.6.3","timeZone":"...","instructions":[{"TYPE":"Execute.Named","jobName":"call-ssis-package","label":"call-ssis-package"},{"TYPE":"Execute.Named","jobName":"sftp-ftp-dmz","label":"sftp-ftp-dmz"}],"jobs":{"call-ssis,updateableContent=,signedContent...,commitId=fd1426cb-f434-4177-a6cb-09ae2d11b7de,version=,operation=0,state=1,errorMessage=JSON DecodingFailure at .jobs.call-ssis-package.executable.withUserProfile: Missing required field,deploymentDate=2024-01-08 15:41:27,deleteDate=,auditlogId=583,workflowCount=0,lockCount=0,fosCount=0,jobResourceCount=0,boardCount=0]
(some entries omitted)
2024-01-08T16:41:27,325 ERROR JControllerProxy-35 c.s.j.c.ProblemHelper - BadRequestError: JSON DecodingFailure at .jobs.call-ssis-package.executable.withUserProfile: Missing required field
2024-01-08T16:41:27,325 TRACE JControllerProxy-35 c.s.c.h.SOSHibernateSession - [./inventory/deployment/deploy][close]
2024-01-08T16:41:27,325 DEBUG JControllerProxy-35 c.s.c.h.SOSHibernateSession - [./inventory/deployment/deploy][closeTransaction][rollback]NOT_ACTIVE
2024-01-08T16:41:27,325 DEBUG JControllerProxy-35 c.s.c.h.SOSHibernateSession - [./inventory/deployment/deploy][closeSession]
2024-01-08T16:41:27,349 DEBUG Thread-EventBus-1 c.s.j.c.e.EventService - add event for controller: com.sos.joc.model.event.EventSnapshot@12744b6b[path=,eventId=1704728487,eventType=ProblemEvent,objectType=PROBLEM,workflow=,accessToken=,message=BadRequestError: JSON DecodingFailure at .jobs.call-ssis-package.executable.withUserProfile: Missing required field]
2024-01-08T16:41:28,536 DEBUG qtp85445963-19 c.s.j.c.e.EventServiceFactory - Events for controller: [com.sos.joc.model.event.EventSnapshot@6074b103[path=/,eventId=1704728486,eventType=InventoryUpdated,objectType=FOLDER,workflow=,accessToken=,message=], com.sos.joc.model.event.EventSnapshot@12744b6b[path=,eventId=1704728486,eventType=ProblemEvent,objectType=PROBLEM,workflow=,accessToken=***,message=BadRequestError: JSON DecodingFailure at .jobs.call-ssis-package.executable.withUserProfile: Missing required field]]
I am not sure if the error originates in the frontend or backend, but the HTTP requests during the deployment attempts (requests to /joc/api/inventory/deployment/deploy
and /joc/api/inventory/read/folder
) all return 2XX responses.
According to the logs, the problem might have originated in sos-webservices
, but could also be connected to an issue in frontend. Therefore, I am reporting it here in frontend repository.
My hunch is that the field withUserProfile
is marked as required in the backend & not marked as required in the frontend. Thus, the frontend doesn't send it (based on the 1st log entry) and the backend complains.
Today i did an upgrade of my docker-compose project from 2.5.3 to 2.5.4.
the compose project ist like in the documentation.
i did:
docker-compose down
change .env
docker-compose pull
docker-compose up -d
after that joc did not start. it said that some colums are missing.
i did:
docker-compose exec joc /bin/sh -c /opt/sos-berlin.com/js7/joc/install/joc_install_tables.sh
this fixed the missing columns and joc is running but when i restart joc i got this error:
java.sql.SQLException: Duplicate entry '6b1ba1a4d7b2' for key 'UNIQUE_IOS_HOST'
this is the data in the table:
MariaDB [js7db]> select * from INV_OPERATING_SYSTEMS;
+----+--------------+-------+--------------+-------------------+---------------------+
| ID | HOSTNAME | NAME | ARCHITECTURE | DISTRIBUTION | MODIFIED |
+----+--------------+-------+--------------+-------------------+---------------------+
| 1 | 9b171e666910 | Linux | amd64 | 5.15.0-41-generic | 2023-07-13 06:20:57 |
| 2 | ad3d54c92194 | Linux | amd64 | 5.15.0-41-generic | 2023-07-13 06:24:01 |
| 3 | a7b79da77df0 | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 07:31:53 |
| 4 | 36c1c53e238c | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 07:32:16 |
| 6 | b96dd00385ba | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 15:12:52 |
| 8 | 4f29eb464ca1 | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 15:13:17 |
| 9 | f80d40461c97 | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 15:17:12 |
| 10 | 6b1ba1a4d7b2 | Linux | amd64 | 5.15.0-41-generic | 2023-07-28 15:18:11 |
+----+--------------+-------+--------------+-------------------+---------------------+
the key is in the table but why das joc generate the same key twice when it starts.
Maybe you could clarify how an minor version update with docker-compose is done right.
From my interpretation of the current documentation a "down, version change, pull, up" cycle should be the way to go.
Greetings,
Franz
After renaming a job-template the update-job button does not show any workflows anymore. in the workflow the name of the template is shown with the new name.
the only way to solve this is to rerun the wizard of every dependent job in every workflow where the job-template is used
Version: 2.6.1 (Latest Patch)
i have deleted a schedule but the orders do not go away from the daily plan. i have canceled the already submitted orders so they are in planned state. when i restart the daily-plan service the orders are submitted again and planed for the next 7 days.
the deleted schedules are not in the inventory and the trash anymore.
to create an new daily plan with overwrite-option also does not help.
version 2.6.1 (Patch level 1585)
this is in the logs when i try to remove the order:
2023-08-02T06:48:08,607 INFO qtp363988129-2996 c.s.j.d.c.JOCOrderResourceImpl - [deleteOrdersFromPlan][getOrderFilter][jobscheduler]missing permissions
when i click on the edit icon in the daily plan i get an exception:
com.sos.joc.exceptions.DBMissingDataException: Couldn't find the configuration: Scada.Sch.Test
at com.sos.joc.classes.inventory.JocInventory.getConfiguration(JocInventory.java:644) ~[sos-webservices-joc-global-2.6.1.jar:?]
at com.sos.joc.classes.inventory.JocInventory.getConfiguration(JocInventory.java:582) ~[sos-webservices-joc-global-2.6.1.jar:?]
at com.sos.joc.classes.inventory.JocInventory.getConfiguration(JocInventory.java:577) ~[sos-webservices-joc-global-2.6.1.jar:?]
at com.sos.joc.inventory.impl.common.AReadConfiguration.read(AReadConfiguration.java:40) ~[sos-webservices-joc-2.6.1.jar:?]
at com.sos.joc.inventory.impl.ReadConfigurationResourceImpl.read(ReadConfigurationResourceImpl.java:27) ~[sos-webservices-joc-2.6.1.jar:?]
at jdk.internal.reflect.GeneratedMethodAccessor591.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.