git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Mon, 11 Apr 2022 09:05:37 +0000 (09:05 +0000)
committervasary.daniel <TFS\vasary.daniel>
Mon, 11 Apr 2022 09:05:37 +0000 (09:05 +0000)
server/-dependencies/pom.xml
server/hu.user.mediacube.executors.tests/META-INF/MANIFEST.MF
server/hu.user.mediacube.executors.tests/settings/application.yaml
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/OctopusTests.java [new file with mode: 0644]
server/user.jobengine.executors/META-INF/MANIFEST.MF
server/user.jobengine.executors/src/user/jobengine/server/steps/shared/OctopusDataMiner.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java

index 6d86d8438b1b5fbf568bc45e91646f45d00f7f74..5fe2be4474b729983a550da5766af3db692be3b3 100644 (file)
                                                                <artifact>\r
                                                                        <id>com.microsoft.sqlserver:sqljdbc:6.0.8112-100</id>\r
                                                                </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>org.apache.logging.log4j:log4j-api:2.8.2</id>\r
-                                                               </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>org.apache.logging.log4j:log4j-core:2.8.2</id>\r
-                                                                       <source>true</source>\r
-                                                               </artifact>\r
-                                                               <artifact>\r
-                                                                       <id>org.apache.logging.log4j:log4j-slf4j-impl:2.8.2</id>\r
-                                                               </artifact>\r
+<!--                                                           <artifact> -->\r
+<!--                                                                   <id>org.apache.logging.log4j:log4j-api:2.8.2</id> -->\r
+<!--                                                           </artifact> -->\r
+<!--                                                           <artifact> -->\r
+<!--                                                                   <id>org.apache.logging.log4j:log4j-core:2.8.2</id> -->\r
+<!--                                                           </artifact> -->\r
+<!--                                                           <artifact> -->\r
+<!--                                                                   <id>org.apache.logging.log4j:log4j-slf4j-impl:2.8.2</id> -->\r
+<!--                                                           </artifact> -->\r
                                                                <artifact>\r
                                                                        <id>org.apache.servicemix.bundles:org.apache.servicemix.bundles.quartz:2.3.0_2</id>\r
                                                                        <!-- <override>true</override> -->\r
index 356d56da6435e49bacea52a196898b98322689cc..9935785caa71d398db83e4cf43dabbaa5f4de321 100644 (file)
@@ -7,8 +7,6 @@ Fragment-Host: user.jobengine.executors;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.apache.commons.io.filefilter;version="2.2.0",
  org.apache.commons.io.output;version="2.2.0",
- org.apache.commons.logging,
- org.apache.commons.logging.impl,
  org.apache.commons.net.ftp;version="3.6.0",
  org.apache.ibatis.jdbc;version="3.5.2",
  org.codehaus.groovy.control;version="3.0.3",
index 62ec246946447c11f9c8d0141ab00f07678d9ace..f86325fe7336a6caeabbc953e3fbef7909037e2d 100644 (file)
@@ -1,6 +1,6 @@
 datasource:\r
    mediacube:\r
-      url: jdbc:db2://localhost:50000/mc\r
+      url: jdbc:db2://192.168.224.128:50000/mc\r
       user: db2admin\r
       password: password\r
       external-indexer: false\r
@@ -8,7 +8,7 @@ datasource:
       login-timeout: 3\r
       pool-size: 10\r
    mediacube-nosql:\r
-      url: jdbc:db2://localhost:50000/mc\r
+      url: jdbc:db2://192.168.224.128:50000/mc\r
       user: db2admin\r
       password: password\r
       schema: test\r
@@ -29,7 +29,7 @@ services:
       disabled: true\r
    octopus:\r
       api:\r
-         address: http://10.10.1.11/api/v1\r
+         address: http://192.168.224.128:91/api/v1\r
          user: mama\r
          password: napocska\r
 #      rundowns-collection-name: rundowns\r
diff --git a/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/OctopusTests.java b/server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/OctopusTests.java
new file mode 100644 (file)
index 0000000..be865b6
--- /dev/null
@@ -0,0 +1,26 @@
+package hu.user.mediacube.executors.tests;\r
+\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.junit.Test;\r
+\r
+import com.ibm.nosql.json.api.DBObject;\r
+\r
+import user.commons.octopus.IOctopusAPI;\r
+import user.commons.octopus.OctopusAPI;\r
+\r
+public class OctopusTests {\r
+       @Test\r
+       public void test0() throws Exception {\r
+               IOctopusAPI api = new OctopusAPI();\r
+               List<DBObject> rundowns = api.getRundowns(new Date());\r
+               rundowns.forEach(r -> processRundown(r));\r
+       }\r
+\r
+       private void processRundown(DBObject r) {\r
+               // NoSQLUtils.asString(r, null))\r
+               System.out.println(r);\r
+       }\r
+\r
+}\r
index f5af6b8cb915802d9afa9eec954265bfff1e260d..bcccc737bc1e56b81d1c5288ef93a314ee6074a7 100644 (file)
@@ -23,7 +23,8 @@ Require-Bundle: user.jobengine.osgi.commons;bundle-version="1.0.0",
  org.jboss.resteasy.jaxrs;bundle-version="3.0.11",
  org.jboss.resteasy.jaxrs-api;bundle-version="3.0.11",
  org.jboss.resteasy.multipart-provider;bundle-version="3.0.11",
- org.jboss.resteasy.validator-provider-11;bundle-version="3.0.11"
+ org.jboss.resteasy.validator-provider-11;bundle-version="3.0.11",
+ user.jobengine.log4j;bundle-version="1.0.0"
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: groovy.lang;version="3.0.3",
@@ -43,8 +44,6 @@ Import-Package: groovy.lang;version="3.0.3",
  org.apache.http.params,
  org.apache.http.protocol,
  org.apache.ibatis.jdbc;version="3.5.2",
- org.apache.logging.log4j;version="2.8.2",
- org.apache.logging.log4j.message;version="2.8.2",
  org.joda.time;version="2.2.0",
  org.joda.time.base;version="2.2.0",
  sqlj.runtime.ref,
index a3f45946b98127c48c18f1025255fe247f9ebe4b..2beaa5be74f304563b76c6f71fc10e008e7d5618 100644 (file)
@@ -46,14 +46,12 @@ public class OctopusDataMiner {
        private static final String LINEFEED = "\r\n";\r
        private static final String SIMPLE_LINEFEED = "\n";\r
        private static final String SAVING_STORY_ID = "Saving story {}";\r
-       private static final String FIELDS_STORIES = "id,name,modified,type,format,mosObjects,script,scheduleFrom,scheduleTo,customColumns,CustomColumn.label,CustomColumn.value,reporters,User.longName,User.userName";\r
+       private static final String FIELDS_STORIES = "id,name,modified,type,format,mosObjects,script,scheduleFrom,scheduleTo,customColumns,CustomColumn.label,CustomColumn.value,reporters,User.longName,User.userName,descriptions,StoryDescription.text";\r
        private static final String FIELDS_RUNDOWN = "id,name,modified,scheduledStart,channel,Channel.name,rundownType,RundownType.name";\r
        private static final String FIELDS_RUNDOWN_STORYIDS = "id,slugs,Slug.storyId,Slug.position";\r
        private static final String FIELDS_STORYFOLDER = "id,name,modified";\r
        private static final String FIELDS_STORYFOLDER_STORYIDS = "id,stories,Story.id";\r
        private static final String RUNDOWN = "Rundown";\r
-       // private static final String OCTOPUS_DEVICE_NAME = "Octopus-Device-Name";\r
-       // private static final String OCTOPUS_DEVICE_ID = "Octopus-Device-Id";\r
        private static final String FIELDS = "fields";\r
        private static final String EXIT = "Exit";\r
        private static final String RESULT = "result";\r
@@ -64,12 +62,6 @@ public class OctopusDataMiner {
        private static final String MOSLABEL = "MOS: ";\r
        private static final Object STORY = "Story";\r
 \r
-       // private static String OCTOPUS_API_ADDRESS =\r
-       // SystemConfiguration.getInstance().value("services.octopus.api.address");\r
-       // private static String OCTOPUS_API_USER =\r
-       // SystemConfiguration.getInstance().value("services.octopus.api.user");\r
-       // private static String OCTOPUS_API_PASSWORD =\r
-       // SystemConfiguration.getInstance().value("services.octopus.api.password");\r
        private DB db;\r
        private ResteasyWebTarget webTarget;\r
        private HashSet<Long> storyIDs = new HashSet<>();\r
@@ -268,27 +260,43 @@ public class OctopusDataMiner {
                return scriptContent;\r
        }\r
 \r
-       private String extractCustomColumnValue(String columnName, BasicDBObject story) {\r
+       /***\r
+        * Get all custom columns label/non-null-value pair as map\r
+        * \r
+        * @param story\r
+        * @return\r
+        */\r
+       private BasicDBObject getCustomColumns(BasicDBObject story) {\r
+               BasicDBObject result = new BasicDBObject();\r
                List<BasicDBObject> customColumns = NoSQLUtils.asList(story, IOctopusAPI.CUSTOM_COLUMNS);\r
                if (customColumns == null)\r
                        return null;\r
-               String result = null;\r
                for (BasicDBObject customColumn : customColumns) {\r
-                       if (!customColumn.containsKey(IOctopusAPI.LABEL))\r
-                               continue;\r
-                       String currentName = customColumn.getString(IOctopusAPI.LABEL);\r
+                       String currentName = NoSQLUtils.asString(customColumn, IOctopusAPI.LABEL);\r
                        if (currentName == null)\r
                                continue;\r
-                       if (!currentName.toLowerCase().equals(columnName.toLowerCase()))\r
-                               continue;\r
-                       if (!customColumn.containsKey(IOctopusAPI.VALUE))\r
+                       String currentValue = NoSQLUtils.asString(customColumn, IOctopusAPI.VALUE);\r
+                       if (currentValue == null)\r
                                continue;\r
-                       result = customColumn.getString(IOctopusAPI.VALUE);\r
-                       break;\r
+                       result.put(currentName, currentValue);\r
                }\r
                return result;\r
        }\r
 \r
+       private String getDescriptions(BasicDBObject story) {\r
+               StringBuilder result = new StringBuilder();\r
+               List<BasicDBObject> descriptions = NoSQLUtils.asList(story, IOctopusAPI.DESCRIPTIONS);\r
+               if (descriptions == null)\r
+                       return null;\r
+               for (BasicDBObject description : descriptions) {\r
+                       String currentDesc = NoSQLUtils.asString(description, IOctopusAPI.TEXT);\r
+                       if (currentDesc == null)\r
+                               continue;\r
+                       result.append(currentDesc);\r
+               }\r
+               return result.toString();\r
+       }\r
+\r
        private BasicDBList extractRelevantMOSObjects(BasicDBObject story) {\r
                List<BasicDBObject> mosObjects = NoSQLUtils.asList(story, IOctopusAPI.MOS_OBJECTS);\r
                if (mosObjects == null)\r
@@ -440,16 +448,11 @@ public class OctopusDataMiner {
                        throw new RuntimeException(e.getString("message"));\r
 \r
                }\r
-               // {"exception":{"message":"Invalid\r
-               // credentials.","publicName":"AuthenticationFailedException"}}\r
-\r
                return result;\r
        }\r
 \r
        private Builder query(String path, String fields) {\r
                ResteasyWebTarget target = webTarget.path(path).queryParam(FIELDS, fields);\r
-               // Builder result = target.request().header(OCTOPUS_DEVICE_ID,\r
-               // OCTOPUS_API_USER).header(OCTOPUS_DEVICE_NAME, OCTOPUS_API_PASSWORD);\r
                Builder result = target.request();\r
                return result;\r
        }\r
@@ -654,13 +657,18 @@ public class OctopusDataMiner {
                else\r
                        story.put(IOctopusAPI.MOS_OBJECTS, modifiedMOS);\r
 \r
-               String parentStoryId = extractCustomColumnValue(IOctopusAPI.PARENT_STORY_ID, story);\r
+               BasicDBObject customColumns = getCustomColumns(story);\r
+               String parentStoryId = NoSQLUtils.asString(customColumns, IOctopusAPI.PARENT_STORY_ID);\r
                if (parentStoryId == null) {\r
                        logger.warn("Missing {} in story", IOctopusAPI.PARENT_STORY_ID, story.toPrettyString(null));\r
                        story.append(IOctopusAPI.PARENT_STORY_ID, storyID);\r
                } else\r
                        story.append(IOctopusAPI.PARENT_STORY_ID, parentStoryId);\r
 \r
+               String location = NoSQLUtils.asString(customColumns, IOctopusAPI.LOCATION_HU);\r
+               story.append(IOctopusAPI.LOCATION, location);\r
+               story.append(IOctopusAPI.DESCRIPTIONS, getDescriptions(story));\r
+\r
                story.remove(IOctopusAPI.CUSTOM_COLUMNS);\r
 \r
                logger.debug(SAVING_STORY_ID, storyID);\r
index 00d3861fcacb696cc6f5b2ba1f8a8abddd4e7616..15afc1b72a38d50d1005704bfb53de3c97186a13 100644 (file)
@@ -9,9 +9,12 @@ import com.ibm.nosql.json.api.DBObject;
 import user.commons.configuration.SystemConfiguration;\r
 \r
 public interface IOctopusAPI {\r
-       static final String RUNDOWN_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.rundowns-collection-name");\r
-       static final String STORY_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.stories-collection-name");\r
-       static final String FOLDER_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.folders-collection-name");\r
+       static final String RUNDOWN_COLLECTION = SystemConfiguration.getInstance()\r
+                       .value("services.octopus.rundowns-collection-name");\r
+       static final String STORY_COLLECTION = SystemConfiguration.getInstance()\r
+                       .value("services.octopus.stories-collection-name");\r
+       static final String FOLDER_COLLECTION = SystemConfiguration.getInstance()\r
+                       .value("services.octopus.folders-collection-name");\r
        static final String TIME_COLLECTION_NAME = "time";\r
        static final String SCRIPT_CONTENT = "script_content";\r
        static final String RUNDOWN_TYPE = "rundownType";\r
@@ -19,8 +22,11 @@ public interface IOctopusAPI {
        static final String LASTUPDATE_TIME = "lastUpdateTime";\r
        static final String NEXIO_MOS = "NEXIO.MOS";\r
        static final String PARENT_STORY_ID = "parentStoryId";\r
+       static final String LOCATION_HU = "HelyszĂ­n";\r
+       static final String LOCATION = "location";\r
        static final String VALUE = "value";\r
        static final String CUSTOM_COLUMNS = "customColumns";\r
+       static final String DESCRIPTIONS = "descriptions";\r
        static final String MOS_ID = "mosId";\r
        static final String MOS_OBJECTS = "mosObjects";\r
        static final String NAME = "name";\r