diff --git a/Dockerfile b/Dockerfile
index 64d37ca2..8a5e72b2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@ ARG PROJECT_NAME=jobs
# COMPOSER_TOKEN can also be passed via the COMPOSER_GITHUB_TOKEN file
ARG COMPOSER_TOKEN=placeholder_token_you_must_replace_via_args_in_compose_file
-ARG INSTALL_XDEBUG=false
+ARG INSTALL_XDEBUG=true
ARG COMPOSER_INSTALL=true
ENV PROJECT_DIR=/var/www/html/${PROJECT_NAME}.neighborhoods.com
@@ -17,12 +17,13 @@ COPY . $PROJECT_DIR
# Copy xdebug configration for remote debugging
COPY docker/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
+COPY docker/bwilson.ini /usr/local/etc/php/conf.d/bwilson.ini
RUN bash docker/build.sh \
--composer-token ${COMPOSER_TOKEN} \
--xdebug ${INSTALL_XDEBUG} \
--composer-install ${COMPOSER_INSTALL}
-CMD ["php-fpm"]
+#CMD ["php-fpm"]
EXPOSE 9000
diff --git a/README.md b/README.md
index 0a9c045e..ba5a7688 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,16 @@
-# nhds/jobs
-A Distributed Task Manager
+# ⚡ Neighborhoods Kōjō ⚡
+# 工場
+A distributed task manager.
-* Including `NHDS\Jobs` with your project with composer
-```bash
-$ composer require nhds/jobs
-```
-
-* Running the `NHDS\Jobs` service
-```bash
-$ vendor/bin/jobs process:pool:server:start $PWD/PATH/TO/services.yaml
-```
+### `Kōjō` is a collection of the following components:
+* Distributed task management.
+* Distributed, cooperative, process-aware semaphores and mutex's.
+* Static cron scheduling.
+* Multi-process model.
+* Status system.
+* Distributed IPC.
-* Running an exmaple
+### Example usage
```bash
-$ vendor/bin/phpunit --filter Foreman
-$ vendor/bin/jobs process:pool:server:start $PWD/example/config/root.yaml
-```
+$ bin/kojo process:pool:server:start $PWD/example
+```
\ No newline at end of file
diff --git a/bin/kojo b/bin/kojo
new file mode 100755
index 00000000..3ca4df93
--- /dev/null
+++ b/bin/kojo
@@ -0,0 +1,55 @@
+#!/usr/bin/env php
+getMessage();
+ exit(1);
+}
+$containerBuilderFacade = new Facade();
+$discoverableDirectories[] = __DIR__ . '/../src';
+$finder = new Finder();
+$finder->name('*.yml');
+if (isset($argv[2]) && is_string($argv[2]) && is_dir($argv[2])) {
+ $discoverableDirectories[] = $argv[2];
+}elseif (isset($argv[1]) && is_string($argv[1]) && $argv[1] === Start::OPT_RUN_SERVER) {
+ foreach ($argv as $argument) {
+ if (strstr($argument, Start::OPT_YSDP) !== false) {
+ $ymlServicesFilePath = explode(Start::OPT_YSDP, $argument);
+ $discoverableDirectories[] = $ymlServicesFilePath[1];
+ }
+ }
+ $finder->files()->in($discoverableDirectories);
+ $containerBuilderFacade->addFinder($finder);
+ $server = $containerBuilderFacade->getContainerBuilder()->get('process.pool.server');
+ $server->setParentProcessPath('');
+ $server->start();
+ exit();
+}
+$finder->files()->in($discoverableDirectories);
+$containerBuilderFacade->addFinder($finder);
+$containerBuilder = $containerBuilderFacade->getContainerBuilder();
+$consoleApplication = $containerBuilder->get('neighborhoods.kojo.symfony.component.console.application');
+$consoleApplication->run();
+
+return;
\ No newline at end of file
diff --git a/composer.json b/composer.json
index d6619f64..74393b74 100644
--- a/composer.json
+++ b/composer.json
@@ -1,7 +1,7 @@
{
- "name": "nhds/jobs",
+ "name": "neighborhoods/kojo",
"type": "library",
- "description": "NHDS Jobs is meant to solve the problem of easily writing distributed, fast, fault tolerant tasks.",
+ "description": "Neighborhoods Kōjō is a distributed task manager.",
"license": "proprietary",
"keywords": [],
"authors": [
@@ -10,38 +10,44 @@
"email": "brad.wilson@neighborhoods.com"
}
],
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://satis.neighborhoods.com"
+ }
+ ],
"require": {
"php": ">=7.1",
+ "symfony/filesystem": "^4.0",
+ "symfony/config": "^4.0",
+ "symfony/yaml": "^4.0",
+ "symfony/dependency-injection": "^4.0",
+ "symfony/expression-language": "^4.0",
+ "symfony/cache": "^4.0",
+ "symfony/console": "^4.0",
+ "symfony/finder": "^4.0",
"zendframework/zend-db": "^2.8",
"dragonmantank/cron-expression": "^2.0",
- "symfony/filesystem": "~4.0.3",
- "symfony/config": "~4.0.3",
- "symfony/yaml": "~4.0.3",
- "symfony/dependency-injection": "~4.0.3",
- "symfony/expression-language": "~4.0.3",
- "symfony/cache": "~4.0.3",
- "symfony/console": "~4.0.3"
+ "ocramius/proxy-manager": "^2.1",
+ "neighborhoods/pylon": "dev-master"
},
"require-dev": {
- "phpunit/phpunit": "^6.4",
- "phpunit/dbunit": "^3.0",
- "symfony/finder": "^4.0"
+ "phpunit/phpunit": "^7.0",
+ "phpunit/dbunit": "^4.0",
+ "neighborhoods/scaffolding": "dev-master"
},
"bin": [
- "src/bin/jobs",
- "src/bin/server"
+ "bin/kojo"
],
"autoload": {
"psr-4": {
- "NHDS\\Jobs\\": "src",
- "NHDS\\Toolkit\\": "nhdstoolkitsrc"
+ "Neighborhoods\\Kojo\\": "src"
}
},
"autoload-dev": {
"psr-4": {
- "NHDS\\Jobs\\Test\\": "tests",
- "NHDS\\Watch\\": "nhdswatchsrc",
- "NHDS\\Jobs\\Example\\": "example"
+ "Neighborhoods\\Kojo\\Test\\": "tests",
+ "Neighborhoods\\Kojo\\Example\\": "example"
}
}
}
\ No newline at end of file
diff --git a/composer.lock b/composer.lock
index 89914db6..387b8cce 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,27 +4,27 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "f7cf05b6dafa72c1ea53e8c6286187ec",
+ "content-hash": "8ab4eba30edc2b648550deb3e48a2b3d",
"packages": [
{
"name": "dragonmantank/cron-expression",
- "version": "v2.0.0",
+ "version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b"
+ "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8a84aee649c3a3ba03a721c1fb080e08dfbcd68b",
- "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/3f00985deec8df53d4cc1e5c33619bda1ee309a5",
+ "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5",
"shasum": ""
},
"require": {
"php": ">=7.0.0"
},
"require-dev": {
- "phpunit/phpunit": "~5.7"
+ "phpunit/phpunit": "~6.4"
},
"type": "library",
"autoload": {
@@ -53,7 +53,163 @@
"cron",
"schedule"
],
- "time": "2017-10-12T15:59:13+00:00"
+ "time": "2018-04-06T15:51:55+00:00"
+ },
+ {
+ "name": "neighborhoods/pylon",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "git@github.com:neighborhoods/pylon.git",
+ "reference": "395e9d30b4ef5ba3e117851be97587464fc101e3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/neighborhoods/pylon/zipball/395e9d30b4ef5ba3e117851be97587464fc101e3",
+ "reference": "395e9d30b4ef5ba3e117851be97587464fc101e3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/config": "^4.0",
+ "symfony/dependency-injection": "^4.0",
+ "symfony/finder": "^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Neighborhoods\\Pylon\\": "src"
+ }
+ },
+ "license": [
+ "proprietary"
+ ],
+ "authors": [
+ {
+ "name": "Brad Wilson",
+ "email": "brad.wilson@neighborhoods.com"
+ }
+ ],
+ "description": "Neighborhoods Pylon is a collection of useful, but most importantly, generic objects.",
+ "time": "2018-04-18T19:29:35+00:00"
+ },
+ {
+ "name": "ocramius/package-versions",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Ocramius/PackageVersions.git",
+ "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f",
+ "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0.0",
+ "php": "^7.1.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.6.3",
+ "ext-zip": "*",
+ "infection/infection": "^0.7.1",
+ "phpunit/phpunit": "^7.0.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
+ "time": "2018-02-05T13:05:30+00:00"
+ },
+ {
+ "name": "ocramius/proxy-manager",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Ocramius/ProxyManager.git",
+ "reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/e18ac876b2e4819c76349de8f78ccc8ef1554cd7",
+ "reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7",
+ "shasum": ""
+ },
+ "require": {
+ "ocramius/package-versions": "^1.1.1",
+ "php": "^7.1.0",
+ "zendframework/zend-code": "^3.1.0"
+ },
+ "require-dev": {
+ "couscous/couscous": "^1.5.2",
+ "ext-phar": "*",
+ "humbug/humbug": "dev-master@DEV",
+ "nikic/php-parser": "^3.0.4",
+ "phpbench/phpbench": "^0.12.2",
+ "phpstan/phpstan": "^0.6.4",
+ "phpunit/phpunit": "^5.6.4",
+ "phpunit/phpunit-mock-objects": "^3.4.1",
+ "squizlabs/php_codesniffer": "^2.7.0"
+ },
+ "suggest": {
+ "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
+ "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
+ "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
+ "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "ProxyManager\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.io/"
+ }
+ ],
+ "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
+ "homepage": "https://github.com/Ocramius/ProxyManager",
+ "keywords": [
+ "aop",
+ "lazy loading",
+ "proxy",
+ "proxy pattern",
+ "service proxies"
+ ],
+ "time": "2017-05-04T11:12:50+00:00"
},
{
"name": "psr/cache",
@@ -199,16 +355,16 @@
},
{
"name": "psr/simple-cache",
- "version": "1.0.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
"require": {
@@ -243,20 +399,20 @@
"psr-16",
"simple-cache"
],
- "time": "2017-01-02T13:31:39+00:00"
+ "time": "2017-10-23T01:57:42+00:00"
},
{
"name": "symfony/cache",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "1ebe207de664355b1699d35b12b0563c38a47b4e"
+ "reference": "681c245e629409a2f1ded6bf783e833d291d8af2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/1ebe207de664355b1699d35b12b0563c38a47b4e",
- "reference": "1ebe207de664355b1699d35b12b0563c38a47b4e",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/681c245e629409a2f1ded6bf783e833d291d8af2",
+ "reference": "681c245e629409a2f1ded6bf783e833d291d8af2",
"shasum": ""
},
"require": {
@@ -312,20 +468,20 @@
"caching",
"psr6"
],
- "time": "2018-01-03T17:15:19+00:00"
+ "time": "2018-04-02T14:35:51+00:00"
},
{
"name": "symfony/config",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "0e86d267db0851cf55f339c97df00d693fe8592f"
+ "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/0e86d267db0851cf55f339c97df00d693fe8592f",
- "reference": "0e86d267db0851cf55f339c97df00d693fe8592f",
+ "url": "https://api.github.com/repos/symfony/config/zipball/7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
+ "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
"shasum": ""
},
"require": {
@@ -336,6 +492,8 @@
"symfony/finder": "<3.4"
},
"require-dev": {
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/event-dispatcher": "~3.4|~4.0",
"symfony/finder": "~3.4|~4.0",
"symfony/yaml": "~3.4|~4.0"
},
@@ -372,20 +530,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2018-01-03T07:38:00+00:00"
+ "time": "2018-03-19T22:35:49+00:00"
},
{
"name": "symfony/console",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e"
+ "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
- "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
+ "url": "https://api.github.com/repos/symfony/console/zipball/aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
+ "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
"shasum": ""
},
"require": {
@@ -440,20 +598,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2018-01-03T07:38:00+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "67bf5e4f4da85624f30a5e43b7f43225c8b71959"
+ "reference": "9f1cea656afc5512c6f5e58d61fcea12acee113e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/67bf5e4f4da85624f30a5e43b7f43225c8b71959",
- "reference": "67bf5e4f4da85624f30a5e43b7f43225c8b71959",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9f1cea656afc5512c6f5e58d61fcea12acee113e",
+ "reference": "9f1cea656afc5512c6f5e58d61fcea12acee113e",
"shasum": ""
},
"require": {
@@ -511,11 +669,11 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2018-01-04T15:52:56+00:00"
+ "time": "2018-04-02T09:52:41+00:00"
},
{
"name": "symfony/expression-language",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
@@ -565,16 +723,16 @@
},
{
"name": "symfony/filesystem",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed"
+ "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
- "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21",
+ "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21",
"shasum": ""
},
"require": {
@@ -610,20 +768,69 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2018-01-03T07:38:00+00:00"
+ "time": "2018-02-22T10:50:29+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ca27c02b7a3fef4828c998c2ff9ba7aae1641c49",
+ "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-04-04T05:10:37+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.6.0",
+ "version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
+ "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
+ "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"shasum": ""
},
"require": {
@@ -635,7 +842,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.6-dev"
+ "dev-master": "1.7-dev"
}
},
"autoload": {
@@ -669,20 +876,20 @@
"portable",
"shim"
],
- "time": "2017-10-11T12:05:26+00:00"
+ "time": "2018-01-30T19:27:44+00:00"
},
{
"name": "symfony/yaml",
- "version": "v4.0.3",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "b84f646b9490d2101e2c25ddeec77ceefbda2eee"
+ "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/b84f646b9490d2101e2c25ddeec77ceefbda2eee",
- "reference": "b84f646b9490d2101e2c25ddeec77ceefbda2eee",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
+ "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
"shasum": ""
},
"require": {
@@ -727,20 +934,73 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2018-01-03T07:38:00+00:00"
+ "time": "2018-04-03T05:24:00+00:00"
+ },
+ {
+ "name": "zendframework/zend-code",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-code.git",
+ "reference": "6b1059db5b368db769e4392c6cb6cc139e56640d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-code/zipball/6b1059db5b368db769e4392c6cb6cc139e56640d",
+ "reference": "6b1059db5b368db769e4392c6cb6cc139e56640d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1",
+ "zendframework/zend-eventmanager": "^2.6 || ^3.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.0",
+ "ext-phar": "*",
+ "phpunit/phpunit": "^6.2.3",
+ "zendframework/zend-coding-standard": "^1.0.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
+ "zendframework/zend-stdlib": "Zend\\Stdlib component"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev",
+ "dev-develop": "3.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Code\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides facilities to generate arbitrary code using an object oriented interface",
+ "homepage": "https://github.com/zendframework/zend-code",
+ "keywords": [
+ "code",
+ "zf2"
+ ],
+ "time": "2017-10-20T15:21:32+00:00"
},
{
"name": "zendframework/zend-db",
- "version": "2.9.2",
+ "version": "2.9.3",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-db.git",
- "reference": "1651abb1b33fc8fbd2d78ff9e2abb526cc2cf666"
+ "reference": "5b4f2c42f94c9f7f4b2f456a0ebe459fab12b3d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-db/zipball/1651abb1b33fc8fbd2d78ff9e2abb526cc2cf666",
- "reference": "1651abb1b33fc8fbd2d78ff9e2abb526cc2cf666",
+ "url": "https://api.github.com/repos/zendframework/zend-db/zipball/5b4f2c42f94c9f7f4b2f456a0ebe459fab12b3d9",
+ "reference": "5b4f2c42f94c9f7f4b2f456a0ebe459fab12b3d9",
"shasum": ""
},
"require": {
@@ -785,20 +1045,74 @@
"db",
"zf"
],
- "time": "2017-12-11T14:57:52+00:00"
+ "time": "2018-04-09T13:21:36+00:00"
+ },
+ {
+ "name": "zendframework/zend-eventmanager",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-eventmanager.git",
+ "reference": "9d72db10ceb6e42fb92350c0cb54460da61bd79c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/9d72db10ceb6e42fb92350c0cb54460da61bd79c",
+ "reference": "9d72db10ceb6e42fb92350c0cb54460da61bd79c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "athletic/athletic": "^0.1",
+ "container-interop/container-interop": "^1.1.0",
+ "phpunit/phpunit": "^6.0.7 || ^5.7.14",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
+ },
+ "suggest": {
+ "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev",
+ "dev-develop": "3.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\EventManager\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Trigger and listen to events within a PHP application",
+ "homepage": "https://github.com/zendframework/zend-eventmanager",
+ "keywords": [
+ "event",
+ "eventmanager",
+ "events",
+ "zf2"
+ ],
+ "time": "2017-07-11T19:17:22+00:00"
},
{
"name": "zendframework/zend-stdlib",
- "version": "3.1.0",
+ "version": "3.1.1",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-stdlib.git",
- "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78"
+ "reference": "10ef03144902d1955f935fff5346ed52f7d99bcc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78",
- "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78",
+ "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/10ef03144902d1955f935fff5346ed52f7d99bcc",
+ "reference": "10ef03144902d1955f935fff5346ed52f7d99bcc",
"shasum": ""
},
"require": {
@@ -807,7 +1121,7 @@
"require-dev": {
"athletic/athletic": "~0.1",
"phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "^2.6.2"
+ "zendframework/zend-coding-standard": "~1.0.0"
},
"type": "library",
"extra": {
@@ -830,7 +1144,7 @@
"stdlib",
"zf2"
],
- "time": "2016-09-13T14:38:50+00:00"
+ "time": "2018-04-12T16:05:42+00:00"
}
],
"packages-dev": [
@@ -933,6 +1247,50 @@
],
"time": "2017-10-19T19:58:43+00:00"
},
+ {
+ "name": "neighborhoods/scaffolding",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "git@github.com:neighborhoods/Scaffolding.git",
+ "reference": "fda6e2b4b314bc8c41c93f5e2fce63222bf40861"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/neighborhoods/Scaffolding/zipball/fda6e2b4b314bc8c41c93f5e2fce63222bf40861",
+ "reference": "fda6e2b4b314bc8c41c93f5e2fce63222bf40861",
+ "shasum": ""
+ },
+ "require": {
+ "neighborhoods/pylon": "dev-master",
+ "php": ">=7.1",
+ "phpunit/dbunit": "^4.0",
+ "phpunit/phpunit": "^7.0",
+ "symfony/config": "^4.0",
+ "symfony/dependency-injection": "^4.0",
+ "symfony/expression-language": "^4.0",
+ "symfony/filesystem": "^4.0",
+ "symfony/finder": "^4.0",
+ "symfony/yaml": "^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Neighborhoods\\Scaffolding\\": "src"
+ }
+ },
+ "license": [
+ "proprietary"
+ ],
+ "authors": [
+ {
+ "name": "Neighborhoods.com",
+ "email": "brad.wilson@neighborhoods.com"
+ }
+ ],
+ "description": "Neighborhoods Scaffolding is meant to make the creation of contract testing easy and fast.",
+ "time": "2018-04-18T19:29:54+00:00"
+ },
{
"name": "phar-io/manifest",
"version": "1.0.1",
@@ -1091,16 +1449,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "4.2.0",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da"
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
"shasum": ""
},
"require": {
@@ -1138,7 +1496,7 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2017-11-27T17:38:31+00:00"
+ "time": "2017-11-30T07:14:17+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -1189,28 +1547,28 @@
},
{
"name": "phpspec/prophecy",
- "version": "1.7.3",
+ "version": "1.7.6",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf"
+ "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
+ "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
- "sebastian/comparator": "^1.1|^2.0",
+ "sebastian/comparator": "^1.1|^2.0|^3.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
},
"require-dev": {
"phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7"
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
},
"type": "library",
"extra": {
@@ -1248,33 +1606,33 @@
"spy",
"stub"
],
- "time": "2017-11-24T13:59:53+00:00"
+ "time": "2018-04-18T13:57:24+00:00"
},
{
"name": "phpunit/dbunit",
- "version": "3.0.3",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/dbunit.git",
- "reference": "0fa4329e490480ab957fe7b1185ea0996ca11f44"
+ "reference": "e77b469c3962b5a563f09a2a989f1c9bd38b8615"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/0fa4329e490480ab957fe7b1185ea0996ca11f44",
- "reference": "0fa4329e490480ab957fe7b1185ea0996ca11f44",
+ "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/e77b469c3962b5a563f09a2a989f1c9bd38b8615",
+ "reference": "e77b469c3962b5a563f09a2a989f1c9bd38b8615",
"shasum": ""
},
"require": {
"ext-pdo": "*",
"ext-simplexml": "*",
- "php": "^7.0",
- "phpunit/phpunit": "^6.0",
+ "php": "^7.1",
+ "phpunit/phpunit": "^7.0",
"symfony/yaml": "^3.0 || ^4.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1300,44 +1658,44 @@
"testing",
"xunit"
],
- "time": "2018-01-23T13:32:26+00:00"
+ "time": "2018-02-07T06:47:59+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "5.3.0",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1"
+ "reference": "774a82c0c5da4c1c7701790c262035d235ab7856"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1",
- "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/774a82c0c5da4c1c7701790c262035d235ab7856",
+ "reference": "774a82c0c5da4c1c7701790c262035d235ab7856",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-xmlwriter": "*",
- "php": "^7.0",
+ "php": "^7.1",
"phpunit/php-file-iterator": "^1.4.2",
"phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^2.0.1",
+ "phpunit/php-token-stream": "^3.0",
"sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.0",
+ "sebastian/environment": "^3.1",
"sebastian/version": "^2.0.1",
"theseer/tokenizer": "^1.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^7.0"
},
"suggest": {
- "ext-xdebug": "^2.5.5"
+ "ext-xdebug": "^2.6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.3.x-dev"
+ "dev-master": "6.0-dev"
}
},
"autoload": {
@@ -1363,7 +1721,7 @@
"testing",
"xunit"
],
- "time": "2017-12-06T09:29:45+00:00"
+ "time": "2018-04-06T15:39:20+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -1455,28 +1813,28 @@
},
{
"name": "phpunit/php-timer",
- "version": "1.0.9",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f",
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1491,7 +1849,7 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -1500,33 +1858,33 @@
"keywords": [
"timer"
],
- "time": "2017-02-26T11:10:40+00:00"
+ "time": "2018-02-01T13:07:23+00:00"
},
{
"name": "phpunit/php-token-stream",
- "version": "2.0.2",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "791198a2c6254db10131eecfe8c06670700904db"
+ "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
- "reference": "791198a2c6254db10131eecfe8c06670700904db",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace",
+ "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
- "php": "^7.0"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.2.4"
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1549,20 +1907,20 @@
"keywords": [
"tokenizer"
],
- "time": "2017-11-27T05:48:46+00:00"
+ "time": "2018-02-01T13:16:43+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "6.5.5",
+ "version": "7.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "83d27937a310f2984fd575686138597147bdc7df"
+ "reference": "6d51299e307dc510149e0b7cd1931dd11770e1cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/83d27937a310f2984fd575686138597147bdc7df",
- "reference": "83d27937a310f2984fd575686138597147bdc7df",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6d51299e307dc510149e0b7cd1931dd11770e1cb",
+ "reference": "6d51299e307dc510149e0b7cd1931dd11770e1cb",
"shasum": ""
},
"require": {
@@ -1574,15 +1932,15 @@
"myclabs/deep-copy": "^1.6.1",
"phar-io/manifest": "^1.0.1",
"phar-io/version": "^1.0",
- "php": "^7.0",
+ "php": "^7.1",
"phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^5.3",
+ "phpunit/php-code-coverage": "^6.0.1",
"phpunit/php-file-iterator": "^1.4.3",
"phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^1.0.9",
- "phpunit/phpunit-mock-objects": "^5.0.5",
- "sebastian/comparator": "^2.1",
- "sebastian/diff": "^2.0",
+ "phpunit/php-timer": "^2.0",
+ "phpunit/phpunit-mock-objects": "^6.1.1",
+ "sebastian/comparator": "^2.1 || ^3.0",
+ "sebastian/diff": "^3.0",
"sebastian/environment": "^3.1",
"sebastian/exporter": "^3.1",
"sebastian/global-state": "^2.0",
@@ -1590,16 +1948,12 @@
"sebastian/resource-operations": "^1.0",
"sebastian/version": "^2.0.1"
},
- "conflict": {
- "phpdocumentor/reflection-docblock": "3.0.2",
- "phpunit/dbunit": "<3.0"
- },
"require-dev": {
"ext-pdo": "*"
},
"suggest": {
"ext-xdebug": "*",
- "phpunit/php-invoker": "^1.1"
+ "phpunit/php-invoker": "^2.0"
},
"bin": [
"phpunit"
@@ -1607,7 +1961,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "6.5.x-dev"
+ "dev-master": "7.1-dev"
}
},
"autoload": {
@@ -1633,33 +1987,30 @@
"testing",
"xunit"
],
- "time": "2017-12-17T06:31:19+00:00"
+ "time": "2018-04-18T13:41:53+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "5.0.6",
+ "version": "6.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
+ "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
- "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/70c740bde8fd9ea9ea295be1cd875dd7b267e157",
+ "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.5",
- "php": "^7.0",
+ "php": "^7.1",
"phpunit/php-text-template": "^1.2.1",
"sebastian/exporter": "^3.1"
},
- "conflict": {
- "phpunit/phpunit": "<6.0"
- },
"require-dev": {
- "phpunit/phpunit": "^6.5"
+ "phpunit/phpunit": "^7.0"
},
"suggest": {
"ext-soap": "*"
@@ -1667,7 +2018,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0.x-dev"
+ "dev-master": "6.1-dev"
}
},
"autoload": {
@@ -1692,7 +2043,7 @@
"mock",
"xunit"
],
- "time": "2018-01-06T05:45:45+00:00"
+ "time": "2018-04-11T04:50:36+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -1741,30 +2092,30 @@
},
{
"name": "sebastian/comparator",
- "version": "2.1.2",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "11c07feade1d65453e06df3b3b90171d6d982087"
+ "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/11c07feade1d65453e06df3b3b90171d6d982087",
- "reference": "11c07feade1d65453e06df3b3b90171d6d982087",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ed5fd2281113729f1ebcc64d101ad66028aeb3d5",
+ "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/diff": "^2.0",
+ "php": "^7.1",
+ "sebastian/diff": "^3.0",
"sebastian/exporter": "^3.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.4"
+ "phpunit/phpunit": "^7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1801,32 +2152,33 @@
"compare",
"equality"
],
- "time": "2018-01-12T06:34:42+00:00"
+ "time": "2018-04-18T13:33:00+00:00"
},
{
"name": "sebastian/diff",
- "version": "2.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
+ "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/e09160918c66281713f1c324c1f4c4c3037ba1e8",
+ "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.2"
+ "phpunit/phpunit": "^7.0",
+ "symfony/process": "^2 || ^3.3 || ^4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1851,9 +2203,12 @@
"description": "Diff implementation",
"homepage": "https://github.com/sebastianbergmann/diff",
"keywords": [
- "diff"
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
],
- "time": "2017-08-03T08:09:46+00:00"
+ "time": "2018-02-01T13:45:15+00:00"
},
{
"name": "sebastian/environment",
@@ -2253,55 +2608,6 @@
"homepage": "https://github.com/sebastianbergmann/version",
"time": "2016-10-03T07:35:21+00:00"
},
- {
- "name": "symfony/finder",
- "version": "v4.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
- "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
- "shasum": ""
- },
- "require": {
- "php": "^7.1.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Finder Component",
- "homepage": "https://symfony.com",
- "time": "2018-01-03T07:38:00+00:00"
- },
{
"name": "theseer/tokenizer",
"version": "1.1.0",
@@ -2344,16 +2650,16 @@
},
{
"name": "webmozart/assert",
- "version": "1.2.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
"shasum": ""
},
"require": {
@@ -2390,12 +2696,15 @@
"check",
"validate"
],
- "time": "2016-11-23T20:04:58+00:00"
+ "time": "2018-01-29T19:49:41+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {
+ "neighborhoods/pylon": 20,
+ "neighborhoods/scaffolding": 20
+ },
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
diff --git a/docker/build.sh b/docker/build.sh
index 70c6717c..b82b6997 100755
--- a/docker/build.sh
+++ b/docker/build.sh
@@ -82,6 +82,6 @@ fi
if [ "$INSTALL_XDEBUG" = true ]; then
echo "Installing the xdebug extension..."
- pecl install xdebug
+ pecl install xdebug-2.7.0alpha1
docker-php-ext-enable xdebug
fi
diff --git a/docker/xdebug.ini b/docker/xdebug.ini
index ca72d4a4..976bd78b 100644
--- a/docker/xdebug.ini
+++ b/docker/xdebug.ini
@@ -8,4 +8,4 @@ xdebug.remote_autostart=1
xdebug.remote_connect_back=0
xdebug.remote_mode=req
xdebug.remote_port=9000
-xdebug.remote_host=dockerhost
+xdebug.remote_host=docker.for.mac.localhost
\ No newline at end of file
diff --git a/example/Environment/Parameters.yml b/example/Environment/Parameters.yml
new file mode 100644
index 00000000..ac91cdb2
--- /dev/null
+++ b/example/Environment/Parameters.yml
@@ -0,0 +1,8 @@
+parameters:
+ neighborhoods.kojo.environment.parameters.redis_port: '%env(REDIS_PORT)%'
+ neighborhoods.kojo.environment.parameters.redis_host: '%env(REDIS_HOST)%'
+ neighborhoods.kojo.environment.parameters.database_user_name: '%env(DATABASE_USERNAME)%'
+ neighborhoods.kojo.environment.parameters.database_password: '%env(DATABASE_PASSWORD)%'
+ neighborhoods.kojo.environment.parameters.database_adapter: '%env(DATABASE_ADAPTER)%'
+ neighborhoods.kojo.environment.parameters.database_host: '%env(DATABASE_HOST)%'
+ neighborhoods.kojo.environment.parameters.database_name: '%env(DATABASE_NAME)%'
\ No newline at end of file
diff --git a/example/Worker.php b/example/Worker.php
index 5a480b17..eaa697f3 100644
--- a/example/Worker.php
+++ b/example/Worker.php
@@ -1,12 +1,25 @@
_getApiV1WorkerService()->getNewJobScheduler();
+// $newJobScheduler->setJobTypeCode('type_code_1')
+// ->setWorkAtDateTime(new \DateTime('now'))
+// ->save()
+// ->getJobId();
+ $this->_getApiV1WorkerService()->requestCompleteSuccess()->applyRequest();
+
return $this;
}
}
\ No newline at end of file
diff --git a/example/Worker/Bootstrap.php b/example/Worker/Bootstrap.php
index 4dc1efd5..2ac05af7 100644
--- a/example/Worker/Bootstrap.php
+++ b/example/Worker/Bootstrap.php
@@ -1,19 +1,18 @@
_getDbConnectionContainer(ContainerInterface::NAME_JOB)->setPdo($pdo);
- $this->_getDbConnectionContainer(ContainerInterface::NAME_SCHEMA)->setPdo($pdo);
+ $pdo = new \PDO('mysql:dbname=kojo;host=mysql', 'root', 'nhdsroot');
+ $this->_setJobPdo($pdo);
+ $this->_setSchemaPdo($pdo);
return $this;
}
diff --git a/example/Worker/Bootstrap.yml b/example/Worker/Bootstrap.yml
new file mode 100644
index 00000000..d98f3ccd
--- /dev/null
+++ b/example/Worker/Bootstrap.yml
@@ -0,0 +1,9 @@
+services:
+ neighborhoods.kojo.example.worker.bootstrap:
+ class: Neighborhoods\Kojo\Example\Worker\Bootstrap
+ parent: worker.bootstrap_abstract
+ public: false
+ shared: false
+ worker.bootstrap:
+ alias: neighborhoods.kojo.example.worker.bootstrap
+ public: false
\ No newline at end of file
diff --git a/example/config/root.yml b/example/config/root.yml
deleted file mode 100644
index a926dacc..00000000
--- a/example/config/root.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-services:
- nhds.jobs.db.connection.container-schema:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_SCHEMA')"]]
- nhds.jobs.db.connection.container-job:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_JOB')"]]
- nhds.jobs.example.worker.bootstrap:
- class: NHDS\Jobs\Example\Worker\Bootstrap
- calls:
- - [addDbConnectionContainer, ['@nhds.jobs.db.connection.container-job']]
- - [addDbConnectionContainer, ['@nhds.jobs.db.connection.container-schema']]
- worker.bootstrap:
- alias: nhds.jobs.example.worker.bootstrap
\ No newline at end of file
diff --git a/nhdstoolkitsrc/ContainerBuilder/AwareTrait.php b/nhdstoolkitsrc/ContainerBuilder/AwareTrait.php
deleted file mode 100644
index a6d69d24..00000000
--- a/nhdstoolkitsrc/ContainerBuilder/AwareTrait.php
+++ /dev/null
@@ -1,57 +0,0 @@
-_servicesYamlFilePaths[$servicesYamlFilePath])) {
- $this->_servicesYamlFilePaths[$servicesYamlFilePath] = $servicesYamlFilePath;
- }else {
-
- throw new \LogicException('Services YML file path "' . $servicesYamlFilePath . '" is already set.');
- }
-
- return $this;
- }
-
- protected function _getServicesYmlFilePaths(): array
- {
- if (empty($this->_servicesYamlFilePaths)) {
- throw new \LogicException('Services YML file paths is empty.');
- }
-
- return $this->_servicesYamlFilePaths;
- }
-
- public function getContainerBuilder(): ContainerBuilder
- {
- if ($this->_containerBuilder === null) {
- $containerBuilder = new ContainerBuilder();
- $loader = new YamlFileLoader($containerBuilder, new FileLocator(__DIR__));
- foreach ($this->_getServicesYmlFilePaths() as $servicesYmlFilePath) {
- $loader->import($servicesYmlFilePath);
- }
- $passes = [new AnalyzeServiceReferencesPass(), new InlineServiceDefinitionsPass()];
- $repeatedPass = new RepeatedPass($passes);
- $repeatedPass->process($containerBuilder);
- $containerBuilder->set('container_builder', $containerBuilder);
- $containerBuilder->compile(true);
- $this->_containerBuilder = $containerBuilder;
- }
-
- return $this->_containerBuilder;
- }
-}
\ No newline at end of file
diff --git a/nhdstoolkitsrc/Data/Property/Persistent/AwareTrait.php b/nhdstoolkitsrc/Data/Property/Persistent/AwareTrait.php
deleted file mode 100644
index bc67b0ab..00000000
--- a/nhdstoolkitsrc/Data/Property/Persistent/AwareTrait.php
+++ /dev/null
@@ -1,127 +0,0 @@
-_hasPersistentProperties()) {
- $this->_persistentProperties = $persistentProperties;
- $this->_changedPersistentProperties = $persistentProperties;
- }else {
- throw new \LogicException('Persistent properties is already set.');
- }
-
- return $this;
- }
-
- protected function _emptyPersistentProperties()
- {
- if ($this->_hasPersistentProperties()) {
- $this->_persistentProperties = [];
- $this->_changedPersistentProperties = [];
- }else {
- throw new \LogicException('Persistent properties is not set.');
- }
-
- return $this;
- }
-
- protected function _hydrate(array $persistentProperties)
- {
- $this->_persistentProperties = array_replace($this->_persistentProperties, $persistentProperties);
- $this->_changedPersistentProperties = [];
-
- return $this;
- }
-
- protected function _createPersistentProperty(string $persistentPropertyName, $persistentPropertyValue)
- {
- if ($this->_hasPersistentProperty($persistentPropertyName)) {
- throw new \LogicException('Persistent property ' . $persistentPropertyName . ' is already set.');
- }else {
- $this->_persistentProperties[$persistentPropertyName] = $persistentPropertyValue;
- $this->_changedPersistentProperties[$persistentPropertyName] = $persistentPropertyValue;
- }
-
- return $this;
- }
-
- protected function _readPersistentProperty(string $persistentPropertyName)
- {
- if (!isset($this->_persistentProperties[$persistentPropertyName])) {
- throw new \LogicException('Persistent property ' . $persistentPropertyName . ' is not set');
- }
-
- return $this->_persistentProperties[$persistentPropertyName];
- }
-
- protected function _unsetPersistentProperty(string $persistentPropertyName)
- {
- if ($this->_hasPersistentProperty($persistentPropertyName)) {
- unset($this->_persistentProperties[$persistentPropertyName]);
- $this->_changedPersistentProperties[$persistentPropertyName] = null;
- }else {
- throw new \LogicException('Persistent property is not set.');
- }
-
- return $this;
- }
-
- public function readPersistentProperties(): array
- {
- if (!$this->_hasPersistentProperties()) {
- throw new \LogicException('Persistent properties is not set.');
- }
-
- return $this->_persistentProperties;
- }
-
- protected function _createOrUpdatePersistentProperty(string $persistentPropertyName, $persistentPropertyValue)
- {
- $this->_persistentProperties[$persistentPropertyName] = $persistentPropertyValue;
- $this->_changedPersistentProperties[$persistentPropertyName] = $persistentPropertyValue;
-
- return $this;
- }
-
- protected function _hasPersistentProperty(string $persistentPropertyName): bool
- {
- return isset($this->_persistentProperties[$persistentPropertyName]);
- }
-
- protected function _hasPersistentProperties(): bool
- {
- return empty($this->_persistentProperties) ? false : true;
- }
-
- public function hasChangedPersistentProperties(): bool
- {
- return empty($this->_changedPersistentProperties) ? false : true;
- }
-
- protected function _readChangedPersistentProperties(): array
- {
- if (!$this->hasChangedPersistentProperties()) {
- throw new \LogicException('Changed persistent properties is not set.');
- }
-
- return $this->_changedPersistentProperties;
- }
-
- protected function _emptyChangedPersistentProperties()
- {
- if ($this->hasChangedPersistentProperties()) {
- $this->_changedPersistentProperties = [];
- }else {
- throw new \LogicException('Changed persistent properties is not set.');
- }
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/nhdstoolkitsrc/Data/Property/Strict/AwareTrait.php b/nhdstoolkitsrc/Data/Property/Strict/AwareTrait.php
deleted file mode 100644
index 4c6b7d7f..00000000
--- a/nhdstoolkitsrc/Data/Property/Strict/AwareTrait.php
+++ /dev/null
@@ -1,52 +0,0 @@
-_exists($propertyName), new \LogicException($propertyName . ' is already created.'));
- $this->_strictProperties[$propertyName] = $propertyValue;
-
- return $this;
- }
-
- protected function &_read(string $propertyName)
- {
- assert($this->_exists($propertyName), new \LogicException($propertyName . ' is not created.'));
-
- return $this->_strictProperties[$propertyName];
- }
-
- protected function _update(string $propertyName, $propertyValue)
- {
- assert($this->_exists($propertyName), new \LogicException($propertyName . ' is not created.'));
- $this->_strictProperties[$propertyName] = $propertyValue;
-
- return $this;
- }
-
- protected function _createOrUpdate(string $propertyName, $propertyValue)
- {
- $this->_strictProperties[$propertyName] = $propertyValue;
-
- return $this;
- }
-
- protected function _delete(string $propertyName)
- {
- assert($this->_exists($propertyName), new \LogicException($propertyName . ' is not created.'));
- unset($this->_strictProperties[$propertyName]);
-
- return $this;
- }
-
- protected function _exists(string $propertyName): bool
- {
- return isset($this->_strictProperties[$propertyName]) ? true : false;
- }
-}
\ No newline at end of file
diff --git a/nhdstoolkitsrc/Time.php b/nhdstoolkitsrc/Time.php
deleted file mode 100644
index a8ddefba..00000000
--- a/nhdstoolkitsrc/Time.php
+++ /dev/null
@@ -1,46 +0,0 @@
-setTimezone($this->getDateTimeZone($timezoneCode));
-
- return $now;
- }
-
- public function getUnixReferenceTimeNow(): string
- {
- return sprintf('%.06f', microtime(true));
- }
-
- public function validateTimestamp(string $timestamp, string $format = TimeInterface::MYSQL_DATE_TIME_FORMAT): bool
- {
- $dateTime = \DateTime::createFromFormat($format, $timestamp);
-
- return $dateTime && $dateTime->format($format) == $timestamp;
- }
-
- public function getDateTimeZone(string $timezoneCode = self::DEFAULT_TIMEZONE_CODE): \DateTimeZone
- {
- if (!isset($this->_dateTimeZones[$timezoneCode])) {
- $dateTimeZone = new \DateTimeZone($timezoneCode);
- $this->_dateTimeZones[$timezoneCode] = $dateTimeZone;
- }
-
- return clone $this->_dateTimeZones[$timezoneCode];
- }
-
- public function getNewDateInterval(string $intervalSpec): \DateInterval
- {
- return new \DateInterval($intervalSpec);
- }
-}
\ No newline at end of file
diff --git a/nhdstoolkitsrc/Time/AwareTrait.php b/nhdstoolkitsrc/Time/AwareTrait.php
deleted file mode 100644
index 69a9a16f..00000000
--- a/nhdstoolkitsrc/Time/AwareTrait.php
+++ /dev/null
@@ -1,31 +0,0 @@
-_time === null) {
- $this->_time = $time;
- }else {
- throw new \Exception('Time is already set.');
- }
-
- return $this;
- }
-
- protected function _getTime(): TimeInterface
- {
- if ($this->_time === null) {
- throw new \LogicException('Time is not set.');
- }
-
- return $this->_time;
- }
-}
\ No newline at end of file
diff --git a/nhdstoolkitsrc/TimeInterface.php b/nhdstoolkitsrc/TimeInterface.php
deleted file mode 100644
index 4e499d15..00000000
--- a/nhdstoolkitsrc/TimeInterface.php
+++ /dev/null
@@ -1,21 +0,0 @@
-addServicesYmlFilePath($ymlServiceFilePath);
- $testCaseService = $this->getContainerBuilder()->get('nhds.watch.testcase.service');
- $this->setTestCaseService($testCaseService);
-
- parent::setUp();
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/Fixture/AbstractTest.php b/nhdswatchsrc/Fixture/AbstractTest.php
deleted file mode 100644
index 666990cc..00000000
--- a/nhdswatchsrc/Fixture/AbstractTest.php
+++ /dev/null
@@ -1,119 +0,0 @@
-addServicesYmlFilePath($ymlServiceFilePath);
- $testCaseService = $this->getContainerBuilder()->get('nhds.watch.testcase.service');
- $this->setTestCaseService($testCaseService);
- $tearDown = $this->_getTestContainerBuilder()->get('db.tear_down');
- $tearDown->uninstall();
- $setup = $this->_getTestContainerBuilder()->get('db.setup');
- $setup->install();
- $redis = $this->_getTestContainerBuilder()->get('redis');
- $redis->flushAll();
-
- parent::setUp();
- }
-
- protected function getConnection()
- {
- $pdo = $this->_getTestContainerBuilder()->get('pdo');
-
- return $this->createDefaultDBConnection($pdo);
- }
-
- protected function getDataSet()
- {
- $reflectionClass = new ReflectionClass($this);
- $testClassFilePath = $reflectionClass->getFileName();
- $testClassDirectoryPath = dirname($testClassFilePath);
- $className = $reflectionClass->getShortName();
- $fixturesDirectoryPath = $testClassDirectoryPath . '/fixtures/' . $className;
- $finder = new Finder();
- $finder->files()->in($fixturesDirectoryPath);
- $finder->sortByName();
- foreach ($finder as $filePath => $file) {
- $this->_addFilePathToYmlDataSet($filePath);
- }
-
- return $this->_getEvaluatedYmlDataSet();
- }
-
- protected function _addFilePathToYmlDataSet(string $ymlDataSetFilePath): AbstractTest
- {
- if (!$this->_exists(YamlDataSet::class)) {
- $ymlParser = new SymfonyYamlParser();
- $ymlParser->setFlags(Yaml::PARSE_CUSTOM_TAGS);
- $this->_create(YamlDataSet::class, new YamlDataSet($ymlDataSetFilePath, $ymlParser));
- }else {
- $this->_getYmlDataSet()->addYamlFile($ymlDataSetFilePath);
- }
-
- return $this;
- }
-
- protected function _getEvaluatedYmlDataSet(): YamlDataSet
- {
- /** @var DefaultTableIterator $tableIterator */
- $tableIterator = $this->_getYmlDataSet()->getIterator();
- $expressionLanguage = new ExpressionLanguage();
- $expressionValues = &$this->_getTestCaseService()->getExpressionValues();
- /** @var DefaultTable $table */
- foreach ($tableIterator as $table) {
- $rowCount = $table->getRowCount();
- while (--$rowCount >= 0) {
- $row = $table->getRow($rowCount);
- foreach ($row as $columnName => $columnValue) {
- if ($columnValue instanceof TaggedValue) {
- if ($columnValue->getTag() === self::YML_SIGIL_PREFIX_FIXTURE_EXPRESSION) {
- $expression = $columnValue->getValue();
- $expressedValue = $expressionLanguage->evaluate($expression, $expressionValues);
- $table->setValue($rowCount, $columnName, $expressedValue);
- }
- }
- }
- }
- }
-
- return $this->_getYmlDataSet();
- }
-
- protected function _getYmlDataSet(): YamlDataSet
- {
- return $this->_read(YamlDataSet::class);
- }
-
- protected function _getTime(): TimeInterface
- {
- return $this->_getTestContainerBuilder()->get('nhds.toolkit.time');
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/Fixture/Expression/NumberPool.php b/nhdswatchsrc/Fixture/Expression/NumberPool.php
deleted file mode 100644
index 62b21f88..00000000
--- a/nhdswatchsrc/Fixture/Expression/NumberPool.php
+++ /dev/null
@@ -1,54 +0,0 @@
-isPoolInitialized($poolName)) {
- $this->_initializePoolName($poolName);
- }
-
- return $this->_nextNumberPool[$poolName];
- }
-
- public function advance(string $poolName): NumberPool
- {
- if (!$this->isPoolInitialized($poolName)) {
- $this->_initializePoolName($poolName);
- }
- ++$this->_nextNumberPool[$poolName];
-
- return $this;
- }
-
- public function rewind(string $poolName): NumberPool
- {
- if (!$this->isPoolInitialized($poolName)) {
- $this->_initializePoolName($poolName);
- }
- ++$this->_nextNumberPool[$poolName];
-
- return $this;
- }
-
- public function isPoolInitialized(string $poolName): bool
- {
- return isset($this->_nextNumberPool[$poolName]) ? true : false;
- }
-
- protected function _initializePoolName(string $poolName): NumberPool
- {
- if (isset($this->_nextNumberPool[$poolName])) {
- throw new \LogicException('Pool name is already initialized.');
- }
-
- $this->_nextNumberPool[$poolName] = 0;
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/Fixture/Expression/Value/AwareTrait.php b/nhdswatchsrc/Fixture/Expression/Value/AwareTrait.php
deleted file mode 100644
index 068c1a3f..00000000
--- a/nhdswatchsrc/Fixture/Expression/Value/AwareTrait.php
+++ /dev/null
@@ -1,33 +0,0 @@
-_expressionValues[$valueName])) {
- throw new \LogicException('Expression value with value name "' . $valueName . '" is already set."');
- }
- $this->_expressionValues[$valueName] = $value;
-
- return $this;
- }
-
- public function hasExpressionValues(): bool
- {
- return empty($this->_expressionValues) ? false : true;
- }
-
- public function &getExpressionValues(): array
- {
- if (empty($this->_expressionValues)) {
- throw new \LogicException('Expression values is empty.');
- }
-
- return $this->_expressionValues;
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/PHPUnit/DbUnit/DataSet/SymfonyYamlParser.php b/nhdswatchsrc/PHPUnit/DbUnit/DataSet/SymfonyYamlParser.php
deleted file mode 100644
index cda78fef..00000000
--- a/nhdswatchsrc/PHPUnit/DbUnit/DataSet/SymfonyYamlParser.php
+++ /dev/null
@@ -1,31 +0,0 @@
-_create(self::PROP_FLAGS, $flags);
-
- return $this;
- }
-
- protected function _getFlags()
- {
- return $this->_read(self::PROP_FLAGS);
- }
-
- public function parseYaml($yamlFile)
- {
- return Yaml::parse(\file_get_contents($yamlFile), $this->_getFlags());
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/TestCase/ContainerBuilder/AwareTrait.php b/nhdswatchsrc/TestCase/ContainerBuilder/AwareTrait.php
deleted file mode 100644
index b76f6451..00000000
--- a/nhdswatchsrc/TestCase/ContainerBuilder/AwareTrait.php
+++ /dev/null
@@ -1,40 +0,0 @@
-_exists('test_container_builder')) {
- $reflectionClass = new ReflectionClass($this);
- $testClassFilePath = $reflectionClass->getFileName();
- $testClassDirectoryPath = dirname($testClassFilePath);
- $shortName = $reflectionClass->getShortName();
- $testServicesYamlFilePath = $testClassDirectoryPath . '/config/' . $shortName . '.yml';
- $testContainerBuilder = new ContainerBuilder();
- $loader = new YamlFileLoader($testContainerBuilder, new FileLocator(__DIR__));
- $loader->load($testServicesYamlFilePath);
- $passes = [new AnalyzeServiceReferencesPass(), new InlineServiceDefinitionsPass()];
- $repeatedPass = new RepeatedPass($passes);
- $repeatedPass->process($testContainerBuilder);
- $testContainerBuilder->set('test_container_builder', $testContainerBuilder);
- $testContainerBuilder->compile(true);
- $this->_create('test_container_builder', $testContainerBuilder);
- }
-
- return $this->_read('test_container_builder');
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/TestCase/Service.php b/nhdswatchsrc/TestCase/Service.php
deleted file mode 100644
index f76b036c..00000000
--- a/nhdswatchsrc/TestCase/Service.php
+++ /dev/null
@@ -1,13 +0,0 @@
-_testCaseService === null) {
- $this->_testCaseService = $testCaseService;
- }else {
- throw new \LogicException('Test case service is already set.');
- }
-
- return $this;
- }
-
- protected function _getTestCaseService(): TestCase\Service
- {
- if ($this->_testCaseService === null) {
- throw new \LogicException('Test case service is not set.');
- }
-
- return $this->_testCaseService;
- }
-}
\ No newline at end of file
diff --git a/nhdswatchsrc/TestCase/ServiceInterface.php b/nhdswatchsrc/TestCase/ServiceInterface.php
deleted file mode 100644
index e04c17b4..00000000
--- a/nhdswatchsrc/TestCase/ServiceInterface.php
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -28,7 +19,7 @@
-
+
./tests/*
diff --git a/src/Api/V1/Job/Scheduler.php b/src/Api/V1/Job/Scheduler.php
new file mode 100644
index 00000000..e8238195
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler.php
@@ -0,0 +1,46 @@
+_getServiceCreate()->setJobTypeCode($jobTypeCode);
+
+ return $this;
+ }
+
+ public function setImportance(int $importance): SchedulerInterface
+ {
+ $this->_getServiceCreate()->setImportance($importance);
+
+ return $this;
+ }
+
+ public function setWorkAtDateTime(\DateTime $workAtDateTime): SchedulerInterface
+ {
+ $this->_getServiceCreate()->setWorkAtDateTime($workAtDateTime);
+
+ return $this;
+ }
+
+ public function getJobId(): int
+ {
+ return $this->_getServiceCreate()->getJobId();
+ }
+
+ public function save(): SchedulerInterface
+ {
+ $this->_getServiceCreate()->save();
+
+ return $this;
+ }
+}
diff --git a/src/Api/V1/Job/Scheduler.yml b/src/Api/V1/Job/Scheduler.yml
new file mode 100644
index 00000000..fac67cf7
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.api.v1.job.scheduler:
+ class: Neighborhoods\Kojo\Api\V1\Job\Scheduler
+ public: false
+ shared: false
+ api.v1.job.scheduler:
+ alias: neighborhoods.kojo.api.v1.job.scheduler
+ public: false
\ No newline at end of file
diff --git a/src/Api/V1/Job/Scheduler/AwareTrait.php b/src/Api/V1/Job/Scheduler/AwareTrait.php
new file mode 100644
index 00000000..109e8a7a
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(SchedulerInterface::class, $apiV1JobScheduler);
+
+ return $this;
+ }
+
+ protected function _getApiV1JobScheduler(): SchedulerInterface
+ {
+ return $this->_read(SchedulerInterface::class);
+ }
+
+ protected function _getApiV1JobSchedulerClone(): SchedulerInterface
+ {
+ return clone $this->_getApiV1JobScheduler();
+ }
+
+ protected function _hasApiV1JobScheduler(): bool
+ {
+ return $this->_exists(SchedulerInterface::class);
+ }
+
+ protected function _unsetApiV1JobScheduler(): self
+ {
+ $this->_delete(SchedulerInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Scheduler/Factory.php b/src/Api/V1/Job/Scheduler/Factory.php
new file mode 100644
index 00000000..acbd2528
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler/Factory.php
@@ -0,0 +1,23 @@
+_getApiV1JobSchedulerClone();
+ $apiV1JobScheduler->setServiceCreate($this->_getServiceCreateFactory()->create());
+
+ return $apiV1JobScheduler;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Scheduler/Factory.yml b/src/Api/V1/Job/Scheduler/Factory.yml
new file mode 100644
index 00000000..7f0bed69
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler/Factory.yml
@@ -0,0 +1,11 @@
+services:
+ neighborhoods.kojo.api.v1.job.scheduler.factory:
+ class: Neighborhoods\Kojo\Api\V1\Job\Scheduler\Factory
+ public: false
+ shared: true
+ calls:
+ - [setServiceCreateFactory, ['@service.create.factory']]
+ - [setApiV1JobScheduler, ['@api.v1.job.scheduler']]
+ api.v1.job.scheduler.factory:
+ alias: neighborhoods.kojo.api.v1.job.scheduler.factory
+ public: false
\ No newline at end of file
diff --git a/src/Api/V1/Job/Scheduler/Factory/AwareTrait.php b/src/Api/V1/Job/Scheduler/Factory/AwareTrait.php
new file mode 100644
index 00000000..b74c6095
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $apiV1JobSchedulerFactory);
+
+ return $this;
+ }
+
+ protected function _getApiV1JobSchedulerFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getApiV1JobSchedulerFactory();
+ }
+
+ protected function _getApiV1JobSchedulerFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _hasApiV1JobSchedulerFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetApiV1JobSchedulerFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Scheduler/FactoryInterface.php b/src/Api/V1/Job/Scheduler/FactoryInterface.php
new file mode 100644
index 00000000..8cf25ffb
--- /dev/null
+++ b/src/Api/V1/Job/Scheduler/FactoryInterface.php
@@ -0,0 +1,18 @@
+_getTypeServiceCreate()->save();
+
+ return $this;
+ }
+
+ public function setCode(string $code): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setCode($code);
+
+ return $this;
+ }
+
+ public function setWorkerClassUri(string $workerModelUri): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setWorkerClassUri($workerModelUri);
+
+ return $this;
+ }
+
+ public function setWorkerMethod(string $workerMethod): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setWorkerMethod($workerMethod);
+
+ return $this;
+ }
+
+ public function setName(string $name): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setName($name);
+
+ return $this;
+ }
+
+ public function setCronExpression(string $cronExpression): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setCronExpression($cronExpression);
+
+ return $this;
+ }
+
+ public function setCanWorkInParallel(bool $canWorkInParallel): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setCanWorkInParallel($canWorkInParallel);
+
+ return $this;
+ }
+
+ public function setDefaultImportance(int $defaultImportance): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setDefaultImportance($defaultImportance);
+
+ return $this;
+ }
+
+ public function setScheduleLimit(int $scheduleLimit): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setScheduleLimit($scheduleLimit);
+
+ return $this;
+ }
+
+ public function setScheduleLimitAllowance(int $scheduleLimitAllowance): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setScheduleLimitAllowance($scheduleLimitAllowance);
+
+ return $this;
+ }
+
+ public function setIsEnabled(bool $isEnabled): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setIsEnabled($isEnabled);
+
+ return $this;
+ }
+
+ public function setAutoCompleteSuccess(bool $autoCompleteSuccess): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setAutoCompleteSuccess($autoCompleteSuccess);
+
+ return $this;
+ }
+
+ public function setAutoDeleteIntervalDuration(string $autoDeleteIntervalDuration): RegistrarInterface
+ {
+ $this->_getTypeServiceCreate()->setAutoDeleteIntervalDuration($autoDeleteIntervalDuration);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar.yml b/src/Api/V1/Job/Type/Registrar.yml
new file mode 100644
index 00000000..e72e0dc5
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.api.v1.job.type.registrar:
+ class: Neighborhoods\Kojo\Api\V1\Job\Type\Registrar
+ public: false
+ shared: false
+ calls:
+ - [setTypeServiceCreate, ['@type.service.create']]
+ api.v1.job.type.registrar:
+ alias: neighborhoods.kojo.api.v1.job.type.registrar
+ public: true
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar/AwareTrait.php b/src/Api/V1/Job/Type/Registrar/AwareTrait.php
new file mode 100644
index 00000000..62074c44
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(RegistrarInterface::class, $ApiV1JobTypeRegistrar);
+
+ return $this;
+ }
+
+ protected function _getApiV1JobTypeRegistrar(): RegistrarInterface
+ {
+ return $this->_read(RegistrarInterface::class);
+ }
+
+ protected function _getApiV1JobTypeRegistrarClone(): RegistrarInterface
+ {
+ return clone $this->_getApiV1JobTypeRegistrar();
+ }
+
+ protected function _hasApiV1JobTypeRegistrar(): bool
+ {
+ return $this->_exists(RegistrarInterface::class);
+ }
+
+ protected function _unsetApiV1JobTypeRegistrar(): self
+ {
+ $this->_delete(RegistrarInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar/Factory.php b/src/Api/V1/Job/Type/Registrar/Factory.php
new file mode 100644
index 00000000..280d9ba8
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar/Factory.php
@@ -0,0 +1,19 @@
+_getApiV1JobTypeRegistrarClone();
+
+ return $apiV1JobTypeRegistrar;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar/Factory.yml b/src/Api/V1/Job/Type/Registrar/Factory.yml
new file mode 100644
index 00000000..9c8241a6
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar/Factory.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.api.v1.job.type.registrar.factory:
+ class: Neighborhoods\Kojo\Api\V1\Job\Type\Registrar\Factory
+ public: false
+ shared: true
+ calls:
+ - [setApiV1JobTypeRegistrar, ['@api.v1.job.type.registrar']]
+ api.v1.job.type.registrar.factory:
+ alias: neighborhoods.kojo.api.v1.job.type.registrar.factory
+ public: true
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar/Factory/AwareTrait.php b/src/Api/V1/Job/Type/Registrar/Factory/AwareTrait.php
new file mode 100644
index 00000000..c476dd8d
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $apiV1JobTypeRegistrarFactory);
+
+ return $this;
+ }
+
+ protected function _getApiV1JobTypeRegistrarFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _getApiV1JobTypeRegistrarFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getApiV1JobTypeRegistrarFactory();
+ }
+
+ protected function _hasApiV1JobTypeRegistrarFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetApiV1JobTypeRegistrarFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/Registrar/FactoryInterface.php b/src/Api/V1/Job/Type/Registrar/FactoryInterface.php
new file mode 100644
index 00000000..25c42c9e
--- /dev/null
+++ b/src/Api/V1/Job/Type/Registrar/FactoryInterface.php
@@ -0,0 +1,11 @@
+_getContainerBuilderFacade()->addFinder($ymlServiceFinder);
+
+ return $this;
+ }
+
+ public function getNewJobTypeRegistrar(): RegistrarInterface
+ {
+ return $this->_getContainerBuilder()->get(self::REGISTRAR_FACTORY_SERVICE_ID)->create();
+ }
+
+ protected function _getContainerBuilder(): ContainerBuilder
+ {
+ return $this->_getContainerBuilderFacade()->getContainerBuilder();
+ }
+
+ protected function _getContainerBuilderFacade(): FacadeInterface
+ {
+ if ($this->_containerBuilderFacade === null) {
+ $containerBuilderFacade = new Facade();
+ $containerBuilderFacade->addFinder($this->_getKojoDiFinder());
+ $this->_containerBuilderFacade = $containerBuilderFacade;
+ }
+
+ return $this->_containerBuilderFacade;
+ }
+
+ protected function _getKojoDiFinder()
+ {
+ if ($this->_kojoDiFinder === null) {
+ $kojoDiFinder = new Finder();
+ $kojoDiFinder->name('*.yml');
+ $kojoDiFinder->files()->in($this->_getKojoApplicationDirectoryPath());
+
+ $this->_kojoDiFinder = $kojoDiFinder;
+ }
+
+ return $this->_kojoDiFinder;
+ }
+
+ protected function _getKojoApplicationDirectoryPath(): string
+ {
+ if ($this->_kojoApplicationDirectoryPath === null) {
+ $this->_kojoApplicationDirectoryPath = dirname(__FILE__) . '/../../../../../src';
+ }
+
+ return $this->_kojoApplicationDirectoryPath;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Job/Type/ServiceInterface.php b/src/Api/V1/Job/Type/ServiceInterface.php
new file mode 100644
index 00000000..3d87df59
--- /dev/null
+++ b/src/Api/V1/Job/Type/ServiceInterface.php
@@ -0,0 +1,9 @@
+_getLogger()->emergency($message, $context);
+ }
+
+ /**
+ * Action must be taken immediately.
+ *
+ * Example: Entire website down, database unavailable, etc. This should
+ * trigger the SMS alerts and wake you up.
+ */
+ public function alert($message, array $context = array())
+ {
+ $this->_getLogger()->alert($message, $context);
+ }
+
+ /**
+ * Critical conditions.
+ *
+ * Example: Application component unavailable, unexpected exception.
+ */
+ public function critical($message, array $context = array())
+ {
+ $this->_getLogger()->critical($message, $context);
+ }
+
+ /** Runtime errors that do not require immediate action but should typically be logged and monitored. */
+ public function error($message, array $context = array())
+ {
+ $this->_getLogger()->error($message, $context);
+ }
+
+ /**
+ * Exceptional occurrences that are not errors.
+ *
+ * Example: Use of deprecated APIs, poor use of an API, undesirable things
+ * that are not necessarily wrong.
+ */
+ public function warning($message, array $context = array())
+ {
+ $this->_getLogger()->warning($message, $context);
+ }
+
+ /** Normal but significant events. */
+ public function notice($message, array $context = array())
+ {
+ $this->_getLogger()->notice($message, $context);
+ }
+
+ /**
+ * Interesting events.
+ *
+ * Example: User logs in, SQL logs.
+ */
+ public function info($message, array $context = array())
+ {
+ $this->_getLogger()->info($message, $context);
+ }
+
+ /** Detailed debug information. */
+ public function debug($message, array $context = array())
+ {
+ $this->_getLogger()->debug($message, $context);
+ }
+
+ /** Logs with an arbitrary level. */
+ public function log($level, $message, array $context = array())
+ {
+ $this->_getLogger()->log($level, $message, $context);
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/Logger/AwareTrait.php b/src/Api/V1/Logger/AwareTrait.php
new file mode 100644
index 00000000..9714ed44
--- /dev/null
+++ b/src/Api/V1/Logger/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(LoggerInterface::class, $apiV1Logger);
+
+ return $this;
+ }
+
+ protected function _getApiV1Logger(): LoggerInterface
+ {
+ return $this->_read(LoggerInterface::class);
+ }
+
+ protected function _getApiV1LoggerClone(): LoggerInterface
+ {
+ return clone $this->_getApiV1Logger();
+ }
+
+ protected function _hasApiV1Logger(): bool
+ {
+ return $this->_exists(LoggerInterface::class);
+ }
+
+ protected function _unsetApiV1Logger(): self
+ {
+ $this->_delete(LoggerInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Api/V1/LoggerInterface.php b/src/Api/V1/LoggerInterface.php
new file mode 100644
index 00000000..3ea60221
--- /dev/null
+++ b/src/Api/V1/LoggerInterface.php
@@ -0,0 +1,8 @@
+_createOrUpdate(self::PROP_RETRY_DATE_TIME, $dateTime);
+
+ return $this;
}
protected function _getDateTime(): \DateTime
@@ -66,7 +72,7 @@ public function requestCompleteFailed(): ServiceInterface
public function applyRequest(): ServiceInterface
{
- if (!$this->_exists(self::PROP_REQUEST_APPPLIED)) {
+ if (!$this->_exists(self::PROP_REQUEST_APPLIED)) {
switch ($this->_read(self::PROP_REQUEST)) {
case self::REQUEST_RETRY:
$updateRetry = $this->_getServiceUpdateRetryFactory()->create();
@@ -90,9 +96,9 @@ public function applyRequest(): ServiceInterface
$updateCompleteFailed->save();
break;
default:
- throw new \UnexpectedValueException('Unexpected value "' . $this->_read(self::PROP_REQUEST) . '"');
+ throw new \UnexpectedValueException('Unexpected value[' . $this->_read(self::PROP_REQUEST) . '].');
}
- $this->_create(self::PROP_REQUEST_APPPLIED, true);
+ $this->_create(self::PROP_REQUEST_APPLIED, true);
}
return $this;
@@ -100,11 +106,21 @@ public function applyRequest(): ServiceInterface
public function isRequestApplied(): bool
{
- return $this->_exists(self::PROP_REQUEST_APPPLIED);
+ return $this->_exists(self::PROP_REQUEST_APPLIED);
+ }
+
+ public function getLogger(): LoggerInterface
+ {
+ return $this->_getApiV1Logger();
+ }
+
+ public function reload(): ServiceInterface
+ {
+ return $this;
}
- public function getNewJobServiceCreate(): CreateInterface
+ public function getNewJobScheduler(): SchedulerInterface
{
- return $this->_getServiceCreateFactory()->create();
+ return $this->_getApiV1JobSchedulerFactory()->create();
}
}
\ No newline at end of file
diff --git a/src/config/Worker/Job/Service.yml b/src/Api/V1/Worker/Service.yml
similarity index 60%
rename from src/config/Worker/Job/Service.yml
rename to src/Api/V1/Worker/Service.yml
index a6d6dd1d..c4fe6e75 100644
--- a/src/config/Worker/Job/Service.yml
+++ b/src/Api/V1/Worker/Service.yml
@@ -1,12 +1,12 @@
services:
- nhds.jobs.worker.job.service:
- class: NHDS\Jobs\Worker\Job\Service
+ neighborhoods.kojo.api.v1.worker.service:
+ class: Neighborhoods\Kojo\Api\V1\Worker\Service
shared: false
calls:
- - [setServiceCreateFactory, ['@service.create.factory']]
- [setServiceUpdateCompleteFailedFactory, ['@service.update.complete.failed.factory']]
- [setServiceUpdateCompleteSuccessFactory, ['@service.update.complete.success.factory']]
- [setServiceUpdateHoldFactory, ['@service.update.hold.factory']]
- [setServiceUpdateRetryFactory, ['@service.update.retry.factory']]
- worker.job.service:
- alias: nhds.jobs.worker.job.service
\ No newline at end of file
+ - [setApiV1JobSchedulerFactory, ['@api.v1.job.scheduler.factory']]
+ api.v1.worker.service:
+ alias: neighborhoods.kojo.api.v1.worker.service
\ No newline at end of file
diff --git a/src/Api/V1/Worker/Service/AwareTrait.php b/src/Api/V1/Worker/Service/AwareTrait.php
new file mode 100644
index 00000000..d20bdd8a
--- /dev/null
+++ b/src/Api/V1/Worker/Service/AwareTrait.php
@@ -0,0 +1,33 @@
+_create(ServiceInterface::class, $workerService);
+
+ return $this;
+ }
+
+ protected function _getApiV1WorkerService(): ServiceInterface
+ {
+ return $this->_read(ServiceInterface::class);
+ }
+
+ protected function _hasApiV1WorkerService(): bool
+ {
+ return $this->_exists(ServiceInterface::class);
+ }
+
+ protected function _unsetApiV1WorkerService(): self
+ {
+ $this->_delete(ServiceInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Worker/Job/ServiceInterface.php b/src/Api/V1/Worker/ServiceInterface.php
similarity index 52%
rename from src/Worker/Job/ServiceInterface.php
rename to src/Api/V1/Worker/ServiceInterface.php
index 39903e72..2b16760b 100644
--- a/src/Worker/Job/ServiceInterface.php
+++ b/src/Api/V1/Worker/ServiceInterface.php
@@ -1,14 +1,15 @@
_create(self::PROP_APPLICATION_NAME, $applicationName);
+
+ return $this;
+ }
+
+ protected function _getApplicationName(): string
+ {
+ if (!$this->_exists(self::PROP_APPLICATION_NAME)) {
+ $this->_create(self::PROP_APPLICATION_NAME, ini_get("newrelic.appname"));
+ }
+
+ return $this->_read(self::PROP_APPLICATION_NAME);
+ }
+
+ public function startTransaction(): NewRelicInterface
+ {
+ if (extension_loaded(self::NEW_RELIC_EXTENSION_NAME)) {
+ newrelic_start_transaction($this->_getApplicationName());
+ }
+
+ return $this;
+ }
+
+ public function endTransaction(): NewRelicInterface
+ {
+ if (extension_loaded(self::NEW_RELIC_EXTENSION_NAME)) {
+ newrelic_end_transaction();
+ }
+
+ return $this;
+ }
+
+ public function ignoreTransaction(): NewRelicInterface
+ {
+ if (extension_loaded(self::NEW_RELIC_EXTENSION_NAME)) {
+ newrelic_ignore_transaction();
+ }
+
+ return $this;
+ }
+
+ public function nameTransaction(string $name): NewRelicInterface
+ {
+ if (extension_loaded(self::NEW_RELIC_EXTENSION_NAME)) {
+ newrelic_name_transaction($name);
+ }
+
+ return $this;
+ }
+
+ public function addCustomParameter(string $key, $value): NewRelicInterface
+ {
+ if (!is_scalar($value)) {
+ throw new \InvalidArgumentException("Value is not a scalar.");
+ }
+ if (extension_loaded(self::NEW_RELIC_EXTENSION_NAME)) {
+ newrelic_add_custom_parameter($key, $value);
+ }
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Apm/NewRelic.yml b/src/Apm/NewRelic.yml
new file mode 100644
index 00000000..bd076463
--- /dev/null
+++ b/src/Apm/NewRelic.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.apm.new_relic:
+ class: Neighborhoods\Kojo\Apm\NewRelic
+ public: false
+ shared: true
+ apm.new_relic:
+ alias: neighborhoods.kojo.apm.new_relic
+ public: false
\ No newline at end of file
diff --git a/src/Apm/NewRelic/AwareTrait.php b/src/Apm/NewRelic/AwareTrait.php
new file mode 100644
index 00000000..d09f8957
--- /dev/null
+++ b/src/Apm/NewRelic/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(NewRelicInterface::class, $apmNewRelic);
+
+ return $this;
+ }
+
+ protected function _getApmNewRelic(): NewRelicInterface
+ {
+ return $this->_read(NewRelicInterface::class);
+ }
+
+ protected function _getApmNewRelicClone(): NewRelicInterface
+ {
+ return clone $this->_getApmNewRelic();
+ }
+
+ protected function _hasApmNewRelic(): bool
+ {
+ return $this->_exists(NewRelicInterface::class);
+ }
+
+ protected function _unsetApmNewRelic(): self
+ {
+ $this->_delete(NewRelicInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Apm/NewRelicInterface.php b/src/Apm/NewRelicInterface.php
new file mode 100644
index 00000000..671752bf
--- /dev/null
+++ b/src/Apm/NewRelicInterface.php
@@ -0,0 +1,21 @@
+_create(CacheItemPoolInterface::class, $cacheItemPool);
-
- return $this;
- }
-
- protected function _getCacheItemPool(): CacheItemPoolInterface
- {
- return $this->_read(CacheItemPoolInterface::class);
- }
-
- protected function _getCacheItemPoolClone(): CacheItemPoolInterface
- {
- return clone $this->_getCacheItemPool();
- }
-}
\ No newline at end of file
diff --git a/src/CacheItemPool/Factory.php b/src/CacheItemPool/Factory.php
new file mode 100644
index 00000000..a2e62970
--- /dev/null
+++ b/src/CacheItemPool/Factory.php
@@ -0,0 +1,21 @@
+_getRedisRepository()->getById(CacheItemPoolInterface::class);
+
+ return new RedisAdapter($redis);
+ }
+}
\ No newline at end of file
diff --git a/src/CacheItemPool/Factory.yml b/src/CacheItemPool/Factory.yml
new file mode 100644
index 00000000..f90ac039
--- /dev/null
+++ b/src/CacheItemPool/Factory.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.cache_item_pool.factory:
+ class: Neighborhoods\Kojo\CacheItemPool\Factory
+ public: false
+ shared: true
+ calls:
+ - [setRedisRepository, ['@redis.repository']]
+ cache_item_pool.factory:
+ alias: neighborhoods.kojo.cache_item_pool.factory
+ public: false
\ No newline at end of file
diff --git a/src/CacheItemPool/Factory/AwareTrait.php b/src/CacheItemPool/Factory/AwareTrait.php
new file mode 100644
index 00000000..27d74d6c
--- /dev/null
+++ b/src/CacheItemPool/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $cacheItemPoolFactory);
+
+ return $this;
+ }
+
+ protected function _getCacheItemPoolFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _getCacheItemPoolFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getCacheItemPoolFactory();
+ }
+
+ protected function _hasCacheItemPoolFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetCacheItemPoolFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/CacheItemPool/FactoryInterface.php b/src/CacheItemPool/FactoryInterface.php
new file mode 100644
index 00000000..23e7867c
--- /dev/null
+++ b/src/CacheItemPool/FactoryInterface.php
@@ -0,0 +1,15 @@
+_getProcessRegistry()->getLastRegisteredProcess()->getUuid();
+ if (!isset($this->_cacheItemPoolCollection[$id])) {
+ $this->_cacheItemPoolCollection[$id] = $this->_getCacheItemPoolFactory()->create();
+ }
+
+ return $this->_cacheItemPoolCollection[$id];
+ }
+}
\ No newline at end of file
diff --git a/src/CacheItemPool/Repository.yml b/src/CacheItemPool/Repository.yml
new file mode 100644
index 00000000..b8e0a3c0
--- /dev/null
+++ b/src/CacheItemPool/Repository.yml
@@ -0,0 +1,11 @@
+services:
+ neighborhoods.kojo.cache_item_pool.repository:
+ class: Neighborhoods\Kojo\CacheItemPool\Repository
+ shared: true
+ public: false
+ calls:
+ - [setCacheItemPoolFactory, ['@cache_item_pool.factory']]
+ - [setProcessRegistry, ['@process.registry']]
+ cache_item_pool.repository:
+ alias: neighborhoods.kojo.cache_item_pool.repository
+ public: false
\ No newline at end of file
diff --git a/src/CacheItemPool/Repository/AwareTrait.php b/src/CacheItemPool/Repository/AwareTrait.php
new file mode 100644
index 00000000..9f68b8a8
--- /dev/null
+++ b/src/CacheItemPool/Repository/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(RepositoryInterface::class, $cacheItemPoolRepository);
+
+ return $this;
+ }
+
+ protected function _getCacheItemPoolRepository(): RepositoryInterface
+ {
+ return $this->_read(RepositoryInterface::class);
+ }
+
+ protected function _getCacheItemPoolRepositoryClone(): RepositoryInterface
+ {
+ return clone $this->_getCacheItemPoolRepository();
+ }
+
+ protected function _hasCacheItemPoolRepository(): bool
+ {
+ return $this->_exists(RepositoryInterface::class);
+ }
+
+ protected function _unsetCacheItemPoolRepository(): self
+ {
+ $this->_delete(RepositoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/CacheItemPool/RepositoryInterface.php b/src/CacheItemPool/RepositoryInterface.php
new file mode 100644
index 00000000..48453182
--- /dev/null
+++ b/src/CacheItemPool/RepositoryInterface.php
@@ -0,0 +1,13 @@
+setName('db:setup:install');
- $this->setDescription('Installs Jobs to a persistent storage engine.');
+ $this->setName(self::COMMAND_NAME);
+ $this->setDescription('Installs Kōjō to a persistent storage engine.');
$this->setHelp($this->_getHelp());
return $this;
@@ -25,6 +26,7 @@ public function _execute(): CommandAbstract
{
$this->_getBootstrap()->instantiate();
$this->_getDbSetup()->install();
+ $this->_getOutput()->writeln('Kōjō has been successfully installed!');
return $this;
}
@@ -32,8 +34,8 @@ public function _execute(): CommandAbstract
protected function _getHelp(): string
{
return <<<'EOD'
-This command installs a Jobs cluster on a persistent storage engine.
-Currently only \PDO compatible storage engines are supported.
+This command installs a Kōjō cluster on a persistent storage engine.
+Currently, only \PDO compatible storage engines are supported.
The client's Bootstrap class will be called prior to setup, and that \PDO class will be used for setup.
EOD;
}
diff --git a/src/Console/Command/Db/Setup/Install.yml b/src/Console/Command/Db/Setup/Install.yml
new file mode 100644
index 00000000..545d3993
--- /dev/null
+++ b/src/Console/Command/Db/Setup/Install.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.console.command.db.setup.install:
+ class: Neighborhoods\Kojo\Console\Command\Db\Setup\Install
+ calls:
+ - [setBootstrap, ['@worker.bootstrap']]
+ - [setDbSetup, ['@db.setup']]
+ console.command.db.setup.install:
+ alias: neighborhoods.kojo.console.command.db.setup.install
\ No newline at end of file
diff --git a/src/Console/Command/Db/TearDown/Uninstall.php b/src/Console/Command/Db/TearDown/Uninstall.php
index 6ece5d66..3d347cee 100644
--- a/src/Console/Command/Db/TearDown/Uninstall.php
+++ b/src/Console/Command/Db/TearDown/Uninstall.php
@@ -1,21 +1,27 @@
setName('db:teardown:uninstall');
- $this->setDescription('Uninstalls Jobs from the persistent storage engine.');
+ $this->setName(self::COMMAND_NAME);
+ $this->setDescription('Uninstalls Kōjō and ALL DATA from the persistent storage engine.');
$this->setHelp($this->_getHelp());
return $this;
@@ -23,18 +29,72 @@ protected function _configure(): CommandAbstract
public function _execute(): CommandAbstract
{
- $this->_getBootstrap()->instantiate();
- $this->_getDbTearDown()->uninstall();
+ if ($this->_isUninstallConfirmedByUser()) {
+ $this->_getBootstrap()->instantiate();
+ $this->_getDbTearDown()->uninstall();
+ $this->_getOutput()->writeln('Kōjō has been successfully uninstalled.');
+ }else {
+ $this->_getOutput()->writeln('Kōjō was not uninstalled.');
+ }
return $this;
}
+ protected function _isUninstallConfirmedByUser(): bool
+ {
+ return $this->_getQuestionHelper()->ask($this->_getInput(), $this->_getOutput(), $this->_getQuestion());
+ }
+
+ protected function _getQuestionHelper(): QuestionHelper
+ {
+ return $this->getHelper('question');
+ }
+
+ protected function _getQuestion(): Question
+ {
+ if ($this->_question === null) {
+ $question = new Question($this->_getQuestionMessage(), false);
+ $question->setValidator($this->_getValidator());
+ $this->_question = $question;
+ }
+
+ return $this->_question;
+ }
+
+ protected function _getValidator(): callable
+ {
+ $validator = function (string $answer): bool{
+ $confirmedByUser = Uninstall::ANSWER_DELETE_CONFIRMED_BY_USER;
+ if (!($confirmedByUser === $answer || Uninstall::ANSWER_DELETE_DECLINED_BY_USER === $answer)) {
+ throw new \RuntimeException('Please type either "delete" or "no" to proceed.');
+ }
+
+ return ($answer === $confirmedByUser);
+ };
+
+ return $validator;
+ }
+
+ protected function _getQuestionMessage(): string
+ {
+ return <<<'EOD'
+ >
+ !!! WARNING !!! >
+ >
+ THIS ACTION WILL PERMANENTLY DELETE ALL OF YOUR KŌJŌ DATA!!! >
+ >
+ THIS ACTION CANNOT BE UNDONE! >
+ >
+Do you want to permanently delete ALL of your Kōjō data?(delete | no) >
+EOD;
+ }
+
protected function _getHelp(): string
{
return <<<'EOD'
-WARNING: THIS WILL DELETE ALL JOB DATA IN PERSISTENT STORAGE.
+WARNING!!! THIS WILL DELETE ALL KŌJŌ DATA IN PERSISTENT STORAGE!>
-This command UNINSTALLS a Jobs cluster from a persistent storage engine.
+This command UNINSTALLS a Kōjō cluster from a persistent storage engine.
Currently only \PDO compatible storage engines are supported.
The client's Bootstrap class will be called prior to setup, and that \PDO class will be used for setup.
EOD;
diff --git a/src/Console/Command/Db/TearDown/Uninstall.yml b/src/Console/Command/Db/TearDown/Uninstall.yml
new file mode 100644
index 00000000..1a061330
--- /dev/null
+++ b/src/Console/Command/Db/TearDown/Uninstall.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.console.command.db.tear_down.uninstall:
+ class: Neighborhoods\Kojo\Console\Command\Db\TearDown\Uninstall
+ calls:
+ - [setBootstrap, ['@worker.bootstrap']]
+ - [setDbTearDown, ['@db.tear_down']]
+ console.command.db.tear_down.uninstall:
+ alias: neighborhoods.kojo.console.command.db.tear_down.uninstall
\ No newline at end of file
diff --git a/src/Console/Command/Process/Pool/Server/Start.php b/src/Console/Command/Process/Pool/Server/Start.php
index 2368a6b5..fed141c3 100644
--- a/src/Console/Command/Process/Pool/Server/Start.php
+++ b/src/Console/Command/Process/Pool/Server/Start.php
@@ -1,25 +1,30 @@
setName('process:pool:server:start');
+ $this->setName(self::COMMAND_NAME);
+ $this->setAliases(self::COMMAND_NAME_ALIASES);
$this->setDescription('Starts a new process pool server.');
$this->setHelp($this->_getHelp());
$this->addOption(
- self::OPT_SERVICES_YML_FILE_PATH,
- 'syfp',
+ self::OPT_SERVICES_YML_DIRECTORY_PATH,
+ self::OPT_YSDP,
InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY,
- 'Additional YML services file paths to load. These are loaded in the order provided.'
+ 'Additional YML services directory paths to load. These are loaded in the order provided.'
);
return $this;
@@ -27,11 +32,12 @@ protected function _configure(): CommandAbstract
public function _execute(): CommandAbstract
{
- $arguments = ['ysfp:' . $this->_getInput()->getArgument(self::ARG_SERVICES_YML_FILE_PATH)];
- foreach ($this->_getInput()->getOption(self::OPT_SERVICES_YML_FILE_PATH) as $servicesYmlFilePath) {
- $arguments[] = 'ysfp:' . $servicesYmlFilePath;
+ $arguments = [self::OPT_RUN_SERVER];
+ $arguments[] = self::OPT_YSDP . $this->_getInput()->getArgument(self::ARG_SERVICES_YML_FILE_PATH);
+ foreach ($this->_getInput()->getOption(self::OPT_SERVICES_YML_DIRECTORY_PATH) as $servicesYmlFilePath) {
+ $arguments[] = self::OPT_YSDP . $servicesYmlFilePath;
}
- pcntl_exec(__DIR__ . '/../../../../../bin/server', $arguments);
+ pcntl_exec(__DIR__ . '/../../../../../../bin/kojo', $arguments);
$this->_getOutput()->writeln('An error occurred trying to start the process pool server.');
return $this;
@@ -40,10 +46,9 @@ public function _execute(): CommandAbstract
protected function _getHelp()
{
return <<<'EOD'
-This command starts a new process pool server.
-Currently only one server can be run at a time for a given machine.
-If a server is already running this command will return immediately.
-More than one server and named servers will be available in future releases.
+This command starts a new collection of process pool servers.
+The number of process pool servers that are started is defined in the dependency injection YML files.
+The default number of servers started is one.
EOD;
}
}
\ No newline at end of file
diff --git a/src/Console/Command/Process/Pool/Server/Start.yml b/src/Console/Command/Process/Pool/Server/Start.yml
new file mode 100644
index 00000000..98fb0007
--- /dev/null
+++ b/src/Console/Command/Process/Pool/Server/Start.yml
@@ -0,0 +1,5 @@
+services:
+ neighborhoods.kojo.console.command.process.pool.server.start:
+ class: Neighborhoods\Kojo\Console\Command\Process\Pool\Server\Start
+ console.command.process.pool.server.start:
+ alias: neighborhoods.kojo.console.command.process.pool.server.start
\ No newline at end of file
diff --git a/src/Console/CommandAbstract.php b/src/Console/CommandAbstract.php
index 5632e9b6..707161e2 100644
--- a/src/Console/CommandAbstract.php
+++ b/src/Console/CommandAbstract.php
@@ -1,18 +1,27 @@
_setInput($input);
$this->_setOutput($output);
- $this->_writeSplash();
+ $this->_writeSplashArt();
$this->_execute();
return $this;
@@ -65,15 +74,9 @@ protected function _getInput(): InputInterface
abstract function _execute(): CommandAbstract;
- protected function _writeSplash(): CommandAbstract
+ protected function _writeSplashArt(): CommandAbstract
{
- $this->_getOutput()->writeln(
- [
- 'NHDS Jobs - A distributed task manager.',
- '=======================================',
- '',
- ]
- );
+ $this->_getOutput()->writeln(self::SPLASH_ART);
return $this;
}
diff --git a/src/Data/AutoSchedule/Sqs.php b/src/Data/AutoSchedule/Sqs.php
deleted file mode 100644
index ae8f0fcc..00000000
--- a/src/Data/AutoSchedule/Sqs.php
+++ /dev/null
@@ -1,44 +0,0 @@
-setTableName(SqsInterface::TABLE_NAME);
- $this->setIdPropertyName(SqsInterface::FIELD_NAME_ID);
-
- return $this;
- }
-
- public function setSqsQueueName(string $sqsQueueName): SqsInterface
- {
- $this->_create(self::FIELD_NAME_SQS_QUEUE_NAME, $sqsQueueName);
-
- return $this;
- }
-
- public function getSqsQueueName(): string
- {
- return $this->_read(self::FIELD_NAME_SQS_QUEUE_NAME);
- }
-
- public function setJobTypeCode(string $jobTypeCode): SqsInterface
- {
- $this->_create(self::FIELD_NAME_JOB_TYPE_CODE, $jobTypeCode);
-
- return $this;
- }
-
- public function getJobTypeCode(): string
- {
- return $this->_read(self::FIELD_NAME_JOB_TYPE_CODE);
- }
-}
\ No newline at end of file
diff --git a/src/Data/AutoSchedule/Sqs/AwareTrait.php b/src/Data/AutoSchedule/Sqs/AwareTrait.php
deleted file mode 100644
index 6f68adc2..00000000
--- a/src/Data/AutoSchedule/Sqs/AwareTrait.php
+++ /dev/null
@@ -1,38 +0,0 @@
-_create(SqsInterface::class, $autoScheduleSqs);
-
- return $this;
- }
-
- protected function _getAutoScheduleSqs(): SqsInterface
- {
- return $this->_read(SqsInterface::class);
- }
-
- protected function _getAutoScheduleSqsClone(): SqsInterface
- {
- return clone $this->_getAutoScheduleSqs();
- }
-
- protected function _hasAutoScheduleSqsClone(): bool
- {
- return $this->_exists(SqsInterface::class);
- }
-
- protected function _unsetAutoScheduleSqs()
- {
- $this->_delete(SqsInterface::class);
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/src/Data/AutoSchedule/SqsInterface.php b/src/Data/AutoSchedule/SqsInterface.php
deleted file mode 100644
index 80cccf48..00000000
--- a/src/Data/AutoSchedule/SqsInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-setTableName(JobInterface::TABLE_NAME);
@@ -340,15 +337,27 @@ public function getDeleteAfterDateTime(): \DateTime
return new \DateTime($deleteAfterDateTimeString);
}
- public function setProcessTypeCode(string $processTypeCode): JobInterface
+ public function setMostRecentHostName(string $mostRecentHostName): JobInterface
+ {
+ $this->_createOrUpdatePersistentProperty(JobInterface::FIELD_NAME_MOST_RECENT_HOST_NAME, $mostRecentHostName);
+
+ return $this;
+ }
+
+ public function getMostRecentHostName(): string
+ {
+ return $this->_readPersistentProperty(JobInterface::FIELD_NAME_MOST_RECENT_HOST_NAME);
+ }
+
+ public function setMostRecentProcessId(int $mostRecentProcessId): JobInterface
{
- $this->_createPersistentProperty(self::FIELD_NAME_PROCESS_TYPE_CODE, $processTypeCode);
+ $this->_createOrUpdatePersistentProperty(JobInterface::FIELD_NAME_MOST_RECENT_PROCESS_ID, $mostRecentProcessId);
return $this;
}
- public function getProcessTypeCode(): string
+ public function getMostRecentProcessId(): int
{
- return $this->_readPersistentProperty(self::FIELD_NAME_PROCESS_TYPE_CODE);
+ return (int)$this->_readPersistentProperty(JobInterface::FIELD_NAME_MOST_RECENT_PROCESS_ID);
}
}
\ No newline at end of file
diff --git a/src/Data/Job.yml b/src/Data/Job.yml
new file mode 100644
index 00000000..d8e85221
--- /dev/null
+++ b/src/Data/Job.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.data.job:
+ class: Neighborhoods\Kojo\Data\Job
+ shared: false
+ parent: db.model
+ data.job:
+ alias: neighborhoods.kojo.data.job
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/AwareTrait.php b/src/Data/Job/AwareTrait.php
index 7f95170d..b61bfa95 100644
--- a/src/Data/Job/AwareTrait.php
+++ b/src/Data/Job/AwareTrait.php
@@ -1,9 +1,9 @@
_getJob();
}
+ protected function _hasJob(): bool
+ {
+ return $this->_exists(JobInterface::class);
+ }
+
protected function _unsetJob()
{
$this->_delete(JobInterface::class);
diff --git a/src/Data/Job/Collection/CrashDetection.php b/src/Data/Job/Collection/CrashDetection.php
index ece1aa73..4617e902 100644
--- a/src/Data/Job/Collection/CrashDetection.php
+++ b/src/Data/Job/Collection/CrashDetection.php
@@ -1,12 +1,12 @@
_create(self::PROP_RECORDS, []);
}
$select = $this->getSelect();
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $statement = $this->_getDbConnectionContainerRepository()
+ ->get(ContainerInterface::ID_JOB)
+ ->getStatement($select);
/** @var \PDOStatement $pdoStatement */
$pdoStatement = $statement->execute()->getResource();
$pdoStatement->setFetchMode($this->_getFetchMode());
diff --git a/src/Data/Job/Collection/Delete.yml b/src/Data/Job/Collection/Delete.yml
new file mode 100644
index 00000000..944f77ae
--- /dev/null
+++ b/src/Data/Job/Collection/Delete.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.data.job.collection.delete:
+ class: Neighborhoods\Kojo\Data\Job\Collection\Delete
+ public: false
+ shared: false
+ parent: data.job.collection_abstract
+ calls:
+ - [setModel, ['@data.job']]
+ - [setIterator, ['@data.job.collection.iterator']]
+ data.job.collection.delete:
+ alias: neighborhoods.kojo.data.job.collection.delete
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/Collection/Delete/AwareTrait.php b/src/Data/Job/Collection/Delete/AwareTrait.php
index 63ddd47a..a4060426 100644
--- a/src/Data/Job/Collection/Delete/AwareTrait.php
+++ b/src/Data/Job/Collection/Delete/AwareTrait.php
@@ -1,9 +1,9 @@
_getRecords()[self::ALIAS_NUMBER_OF_SCHEDULED_JOBS];
+ return $this->_getRecords()[self::ALIAS_NUMBER_OF_SCHEDULED_JOBS];
+ }
+
+ public function decrementNumberOfCurrentlyScheduledJobs(): ScheduleLimitInterface
+ {
+ --$this->_getRecords()[self::ALIAS_NUMBER_OF_SCHEDULED_JOBS];
+
+ return $this;
}
protected function &_getRecords(): array
@@ -26,7 +33,8 @@ protected function &_getRecords(): array
if (!$this->_exists(self::PROP_RECORDS)) {
$this->_prepareCollection();
$select = $this->getSelect();
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $statement = $dbConnectionContainer->getStatement($select);
/** @var \PDOStatement $pdoStatement */
$pdoStatement = $statement->execute()->getResource();
$pdoStatement->setFetchMode($this->_getFetchMode());
@@ -37,6 +45,8 @@ protected function &_getRecords(): array
}else {
$this->_create(self::PROP_RECORDS, $records);
}
+ $numberOfScheduledJobs = (int)$this->_read(self::PROP_RECORDS)[self::ALIAS_NUMBER_OF_SCHEDULED_JOBS];
+ $this->_read(self::PROP_RECORDS)[self::ALIAS_NUMBER_OF_SCHEDULED_JOBS] = $numberOfScheduledJobs;
}
return $this->_read(self::PROP_RECORDS);
@@ -50,7 +60,8 @@ protected function _prepareCollection(): Db\Model\CollectionAbstract
]
);
$this->getSelect()->where->equalTo(JobInterface::FIELD_NAME_TYPE_CODE, $this->_getJobType()->getCode());
- $this->getSelect()->where
+ $this->getSelect()
+ ->where
->nest()
->equalTo(JobInterface::FIELD_NAME_ASSIGNED_STATE, State\Service::STATE_WORKING)
->or
diff --git a/src/Data/Job/Collection/ScheduleLimit.yml b/src/Data/Job/Collection/ScheduleLimit.yml
new file mode 100644
index 00000000..65938011
--- /dev/null
+++ b/src/Data/Job/Collection/ScheduleLimit.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.data.job.collection.schedulelimit:
+ class: Neighborhoods\Kojo\Data\Job\Collection\ScheduleLimit
+ public: false
+ shared: false
+ parent: data.job.collection_abstract
+ calls:
+ - [setModel, ['@data.job']]
+ - [setIterator, ['@data.job.collection.iterator']]
+ data.job.collection.schedulelimit:
+ alias: neighborhoods.kojo.data.job.collection.schedulelimit
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/Collection/ScheduleLimit/AwareTrait.php b/src/Data/Job/Collection/ScheduleLimit/AwareTrait.php
index 9b266a20..0433c61e 100644
--- a/src/Data/Job/Collection/ScheduleLimit/AwareTrait.php
+++ b/src/Data/Job/Collection/ScheduleLimit/AwareTrait.php
@@ -1,10 +1,10 @@
_exists(self::PROP_RECORDS)) {
$this->_prepareCollection();
$select = $this->getSelect();
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $statement = $dbConnectionContainer->getStatement($select);
/** @var \PDOStatement $pdoStatement */
$pdoStatement = $statement->execute()->getResource();
$pdoStatement->setFetchMode(\PDO::FETCH_NUM);
diff --git a/src/Data/Job/Collection/Scheduler.yml b/src/Data/Job/Collection/Scheduler.yml
new file mode 100644
index 00000000..8707a535
--- /dev/null
+++ b/src/Data/Job/Collection/Scheduler.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.data.job.collection.scheduler:
+ class: Neighborhoods\Kojo\Data\Job\Collection\Scheduler
+ public: false
+ shared: false
+ parent: data.job.collection_abstract
+ calls:
+ - [setModel, ['@data.job']]
+ - [setIterator, ['@data.job.collection.iterator']]
+ data.job.collection.scheduler:
+ alias: neighborhoods.kojo.data.job.collection.scheduler
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/Collection/Scheduler/AwareTrait.php b/src/Data/Job/Collection/Scheduler/AwareTrait.php
index 0c5b255e..7e21dd6e 100644
--- a/src/Data/Job/Collection/Scheduler/AwareTrait.php
+++ b/src/Data/Job/Collection/Scheduler/AwareTrait.php
@@ -1,9 +1,9 @@
_create(self::PROP_RECORDS, []);
}
$select = $this->getSelect();
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $statement = $this->_getDbConnectionContainerRepository()
+ ->get(ContainerInterface::ID_JOB)
+ ->getStatement($select);
/** @var \PDOStatement $pdoStatement */
$pdoStatement = $statement->execute()->getResource();
$pdoStatement->setFetchMode($this->_getFetchMode());
@@ -64,12 +66,10 @@ protected function _prepareCollection(): Db\Model\CollectionAbstract
JobInterface::FIELD_NAME_ID,
JobInterface::FIELD_NAME_TYPE_CODE,
JobInterface::FIELD_NAME_CAN_WORK_IN_PARALLEL,
- JobInterface::FIELD_NAME_PROCESS_TYPE_CODE,
]
);
$select->order(
[
- JobInterface::FIELD_NAME_PROCESS_TYPE_CODE . ' DESC',
JobInterface::FIELD_NAME_PRIORITY . ' DESC',
]
);
diff --git a/src/Data/Job/Collection/Selector.yml b/src/Data/Job/Collection/Selector.yml
new file mode 100644
index 00000000..c308af70
--- /dev/null
+++ b/src/Data/Job/Collection/Selector.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.data.job.collection.selector:
+ class: Neighborhoods\Kojo\Data\Job\Collection\Selector
+ public: false
+ shared: false
+ parent: data.job.collection_abstract
+ calls:
+ - [setModel, ['@data.job']]
+ - [setIterator, ['@data.job.collection.iterator']]
+ data.job.collection.selector:
+ alias: neighborhoods.kojo.data.job.collection.selector
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/Collection/Selector/AwareTrait.php b/src/Data/Job/Collection/Selector/AwareTrait.php
index 96cac57c..f39c6896 100644
--- a/src/Data/Job/Collection/Selector/AwareTrait.php
+++ b/src/Data/Job/Collection/Selector/AwareTrait.php
@@ -1,9 +1,9 @@
setCollection($this);
@@ -28,14 +25,4 @@ protected function _getIterator(): IteratorInterface
{
return $this->_read(IteratorInterface::class);
}
-
- protected function _logSelect(): CollectionAbstract
- {
- if ($this->_hasLogger()) {
- $sql = $this->_getDbConnectionContainer(Db\Connection\ContainerInterface::NAME_JOB)->getSql();
- $this->_getLogger()->debug(get_called_class() . ': ' . $sql->buildSqlString($this->getSelect()));
- }
-
- return $this;
- }
}
\ No newline at end of file
diff --git a/src/Data/Job/CollectionAbstract.yml b/src/Data/Job/CollectionAbstract.yml
new file mode 100644
index 00000000..3b365823
--- /dev/null
+++ b/src/Data/Job/CollectionAbstract.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.data.job.collection_abstract:
+ class: Neighborhoods\Kojo\Data\Job\CollectionAbstract
+ abstract: true
+ public: false
+ shared: false
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setDbConnectionContainerRepository, ['@db.connection.container.repository']]
+ data.job.collection_abstract:
+ alias: neighborhoods.kojo.data.job.collection_abstract
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/CollectionInterface.php b/src/Data/Job/CollectionInterface.php
index 76a01747..3363d64a 100644
--- a/src/Data/Job/CollectionInterface.php
+++ b/src/Data/Job/CollectionInterface.php
@@ -1,10 +1,10 @@
_readPersistentProperty(TypeInterface::FIELD_NAME_SCHEDULE_LIMIT);
}
+ public function setScheduleLimitAllowance(int $scheduleLimitAllowance): TypeInterface
+ {
+ if ($scheduleLimitAllowance < 0) {
+ throw new \InvalidArgumentException('Schedule limit allowance is less than zero.');
+ };
+ $this->_createPersistentProperty(TypeInterface::FIELD_NAME_SCHEDULE_LIMIT_ALLOWANCE, $scheduleLimitAllowance);
+
+ return $this;
+ }
+
+ public function getScheduleLimitAllowance(): int
+ {
+ return (int)$this->_readPersistentProperty(TypeInterface::FIELD_NAME_SCHEDULE_LIMIT_ALLOWANCE);
+ }
+
public function setIsEnabled(bool $isEnabled): TypeInterface
{
$this->_createPersistentProperty(TypeInterface::FIELD_NAME_IS_ENABLED, $isEnabled);
@@ -155,16 +170,4 @@ public function getAutoDeleteIntervalDuration(): string
{
return $this->_readPersistentProperty(TypeInterface::FIELD_NAME_AUTO_DELETE_INTERVAL_DURATION);
}
-
- public function setProcessTypeCode(string $processTypeCode): TypeInterface
- {
- $this->_createPersistentProperty(self::FIELD_NAME_PROCESS_TYPE_CODE, $processTypeCode);
-
- return $this;
- }
-
- public function getProcessTypeCode(): string
- {
- return $this->_readPersistentProperty(self::FIELD_NAME_PROCESS_TYPE_CODE);
- }
}
\ No newline at end of file
diff --git a/src/Data/Job/Type.yml b/src/Data/Job/Type.yml
new file mode 100644
index 00000000..e87d4b26
--- /dev/null
+++ b/src/Data/Job/Type.yml
@@ -0,0 +1,9 @@
+services:
+ neighborhoods.kojo.data.job.type:
+ class: Neighborhoods\Kojo\Data\Job\Type
+ public: false
+ shared: false
+ parent: db.model
+ data.job.type:
+ alias: neighborhoods.kojo.data.job.type
+ public: false
\ No newline at end of file
diff --git a/src/Data/Job/Type/AwareTrait.php b/src/Data/Job/Type/AwareTrait.php
index 02cbb853..e86c482e 100644
--- a/src/Data/Job/Type/AwareTrait.php
+++ b/src/Data/Job/Type/AwareTrait.php
@@ -1,15 +1,15 @@
_create(TypeInterface::class, $job);
+ $this->_create(TypeInterface::class, $jobType);
return $this;
}
@@ -29,7 +29,7 @@ public function hasJobType(): bool
return $this->_exists(TypeInterface::class);
}
- protected function _unsetJobType()
+ protected function _unsetJobType(): self
{
$this->_delete(TypeInterface::class);
diff --git a/src/Data/Job/Type/Collection/Iterator.php b/src/Data/Job/Type/Collection/Iterator.php
index 42adcd20..5e36e31a 100644
--- a/src/Data/Job/Type/Collection/Iterator.php
+++ b/src/Data/Job/Type/Collection/Iterator.php
@@ -1,15 +1,15 @@
_pdo === null) {
- throw new \LogicException('PDO is not set.');
+ $this->_pdo = $this->_getDbPDOBuilder()->getPdo();
}
return $this->_pdo;
@@ -53,24 +58,24 @@ public function getConnection(): Connection
return $this->_connection;
}
- public function setName(string $name): ContainerInterface
+ public function setId(string $id): ContainerInterface
{
- if ($this->_name === null) {
- $this->_name = $name;
+ if ($this->_id === null) {
+ $this->_id = $id;
}else {
- throw new \LogicException('Name is already set.');
+ throw new \LogicException('ID is already set.');
}
return $this;
}
- public function getName(): string
+ public function getId(): string
{
- if ($this->_name === null) {
- throw new \LogicException('Name is not set.');
+ if ($this->_id === null) {
+ throw new \LogicException('ID is not set.');
}
- return $this->_name;
+ return $this->_id;
}
public function getSql(): Sql
diff --git a/src/Db/Connection/Container.yml b/src/Db/Connection/Container.yml
new file mode 100644
index 00000000..d5b9048f
--- /dev/null
+++ b/src/Db/Connection/Container.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.db.connection.container:
+ class: Neighborhoods\Kojo\Db\Connection\Container
+ public: true
+ shared: false
+ calls:
+ - [setDbPDOBuilder, ['@db.pdo.builder']]
+ db.connection.container:
+ alias: neighborhoods.kojo.db.connection.container
+ public: true
\ No newline at end of file
diff --git a/src/Db/Connection/Container/AwareTrait.php b/src/Db/Connection/Container/AwareTrait.php
index 981b2e8c..95ba67b2 100644
--- a/src/Db/Connection/Container/AwareTrait.php
+++ b/src/Db/Connection/Container/AwareTrait.php
@@ -1,32 +1,38 @@
_create(ContainerInterface::class, $dbConnectionContainer);
- public function addDbConnectionContainer(ContainerInterface $container)
+ return $this;
+ }
+
+ protected function _getDbConnectionContainer(): ContainerInterface
{
- $containerName = $container->getName();
- if (isset($this->_dbConnectionContainers[$containerName])) {
- throw new \LogicException('The container [' . $containerName . '] is already set.');
- }
+ return $this->_read(ContainerInterface::class);
+ }
- $this->_dbConnectionContainers[$container->getName()] = $container;
+ protected function _getDbConnectionContainerClone(): ContainerInterface
+ {
+ return clone $this->_getDbConnectionContainer();
+ }
- return $this;
+ protected function _hasDbConnectionContainer(): bool
+ {
+ return $this->_exists(ContainerInterface::class);
}
- protected function _getDbConnectionContainer(string $containerName): ContainerInterface
+ protected function _unsetDbConnectionContainer(): self
{
- if (!isset($this->_dbConnectionContainers[$containerName])) {
- throw new \LogicException('The container [' . $containerName . '] is not set.');
- }
+ $this->_delete(ContainerInterface::class);
- return $this->_dbConnectionContainers[$containerName];
+ return $this;
}
}
\ No newline at end of file
diff --git a/src/Db/Connection/Container/Factory.php b/src/Db/Connection/Container/Factory.php
new file mode 100644
index 00000000..17fbcd7b
--- /dev/null
+++ b/src/Db/Connection/Container/Factory.php
@@ -0,0 +1,20 @@
+_getDbConnectionContainerClone();
+
+ return $dbConnectionContainer;
+ }
+}
\ No newline at end of file
diff --git a/src/Db/Connection/Container/Factory.yml b/src/Db/Connection/Container/Factory.yml
new file mode 100644
index 00000000..56bb4b20
--- /dev/null
+++ b/src/Db/Connection/Container/Factory.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.db.connection.container.factory:
+ class: Neighborhoods\Kojo\Db\Connection\Container\Factory
+ public: true
+ shared: true
+ calls:
+ - [setDbConnectionContainer, ['@db.connection.container']]
+ db.connection.container.factory:
+ alias: neighborhoods.kojo.db.connection.container.factory
+ public: true
\ No newline at end of file
diff --git a/src/Db/Connection/Container/Factory/AwareTrait.php b/src/Db/Connection/Container/Factory/AwareTrait.php
new file mode 100644
index 00000000..d6e62837
--- /dev/null
+++ b/src/Db/Connection/Container/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $dbConnectionContainerFactory);
+
+ return $this;
+ }
+
+ protected function _getDbConnectionContainerFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _getDbConnectionContainerFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getDbConnectionContainerFactory();
+ }
+
+ protected function _hasDbConnectionContainerFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetDbConnectionContainerFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Db/Connection/Container/FactoryInterface.php b/src/Db/Connection/Container/FactoryInterface.php
new file mode 100644
index 00000000..ef167709
--- /dev/null
+++ b/src/Db/Connection/Container/FactoryInterface.php
@@ -0,0 +1,13 @@
+_containerCollection[$id])) {
+ throw new \LogicException("Container with ID[$id] is not set.");
+ }
+
+ return $this->_containerCollection[$id];
+ }
+
+ public function add(ContainerInterface $container): RepositoryInterface
+ {
+ $id = $container->getId();
+ if (isset($this->_containerCollection[$id])) {
+ throw new \LogicException("Container with ID[$id] is already set.");
+ }
+ $this->_containerCollection[$id] = $container;
+
+ return $this;
+ }
+
+ public function create(string $id): ContainerInterface
+ {
+ if (isset($this->_containerCollection[$id])) {
+ throw new \LogicException("Container with ID[$id] is already set.");
+ }
+
+ return $this->_containerCollection[$id] = $this->_getDbConnectionContainerFactory()->create()->setId($id);
+ }
+}
\ No newline at end of file
diff --git a/src/Db/Connection/Container/Repository.yml b/src/Db/Connection/Container/Repository.yml
new file mode 100644
index 00000000..3821bce3
--- /dev/null
+++ b/src/Db/Connection/Container/Repository.yml
@@ -0,0 +1,13 @@
+services:
+ neighborhoods.kojo.db.connection.container.repository:
+ class: Neighborhoods\Kojo\Db\Connection\Container\Repository
+ public: false
+ shared: true
+ calls:
+ - [setDbConnectionContainerFactory, ['@db.connection.container.factory']]
+ - [create, ["@=constant(\"\\\\Neighborhoods\\\\Kojo\\\\Db\\\\Connection\\\\ContainerInterface::ID_JOB\")"]]
+ - [create, ["@=constant(\"\\\\Neighborhoods\\\\Kojo\\\\Db\\\\Connection\\\\ContainerInterface::ID_SCHEMA\")"]]
+ - [create, ["@=constant(\"\\\\Neighborhoods\\\\Kojo\\\\Db\\\\Connection\\\\ContainerInterface::ID_STATUS\")"]]
+ db.connection.container.repository:
+ alias: neighborhoods.kojo.db.connection.container.repository
+ public: false
\ No newline at end of file
diff --git a/src/Db/Connection/Container/Repository/AwareTrait.php b/src/Db/Connection/Container/Repository/AwareTrait.php
new file mode 100644
index 00000000..4672a4f0
--- /dev/null
+++ b/src/Db/Connection/Container/Repository/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(RepositoryInterface::class, $dbConnectionContainerRepository);
+
+ return $this;
+ }
+
+ protected function _getDbConnectionContainerRepository(): RepositoryInterface
+ {
+ return $this->_read(RepositoryInterface::class);
+ }
+
+ protected function _getDbConnectionContainerRepositoryClone(): RepositoryInterface
+ {
+ return clone $this->_getDbConnectionContainerRepository();
+ }
+
+ protected function _hasDbConnectionContainerRepository(): bool
+ {
+ return $this->_exists(RepositoryInterface::class);
+ }
+
+ protected function _unsetDbConnectionContainerRepository(): self
+ {
+ $this->_delete(RepositoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Db/Connection/Container/RepositoryInterface.php b/src/Db/Connection/Container/RepositoryInterface.php
new file mode 100644
index 00000000..229148f2
--- /dev/null
+++ b/src/Db/Connection/Container/RepositoryInterface.php
@@ -0,0 +1,15 @@
+_getLoadSelect($propertyName, $propertyValue);
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $statement = $dbConnectionContainer->getStatement($select);
$data = $statement->execute()->current();
if ($data) {
@@ -97,7 +100,8 @@ public function hasId(): bool
protected function _getLoadSelect($field, $value): Select
{
- $select = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->select($this->getTableName());
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $select = $dbConnectionContainer->select($this->getTableName());
$select->where([$field => $value]);
return $select;
@@ -116,9 +120,10 @@ public function save(): ModelInterface
public function delete(): ModelInterface
{
- $delete = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->delete($this->getTableName());
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $delete = $dbConnectionContainer->delete($this->getTableName());
$delete->where([$this->getIdPropertyName() => $this->getId()]);
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($delete);
+ $statement = $dbConnectionContainer->getStatement($delete);
$statement->execute();
$this->_emptyPersistentProperties();
@@ -127,11 +132,12 @@ public function delete(): ModelInterface
protected function insert(): ModelInterface
{
- $insert = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->insert($this->getTableName());
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $insert = $dbConnectionContainer->insert($this->getTableName());
$insert->values($this->_readChangedPersistentProperties());
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($insert);
+ $statement = $dbConnectionContainer->getStatement($insert);
$statement->execute();
- $id = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getDriver()->getLastGeneratedValue();
+ $id = $dbConnectionContainer->getDriver()->getLastGeneratedValue();
$this->setId((int)$id);
$this->_emptyChangedPersistentProperties();
@@ -140,11 +146,12 @@ protected function insert(): ModelInterface
protected function update(): ModelInterface
{
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
$changedPersistentProperties = $this->_readChangedPersistentProperties();
- $update = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->update($this->getTableName());
+ $update = $dbConnectionContainer->update($this->getTableName());
$update->where([$this->getIdPropertyName() => $this->getId()]);
$update->set($changedPersistentProperties);
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($update);
+ $statement = $dbConnectionContainer->getStatement($update);
$statement->execute();
$this->_emptyChangedPersistentProperties();
diff --git a/src/Db/Model.yml b/src/Db/Model.yml
new file mode 100644
index 00000000..b8bc3d71
--- /dev/null
+++ b/src/Db/Model.yml
@@ -0,0 +1,11 @@
+services:
+ neighborhoods.kojo.db.model:
+ class: Neighborhoods\Kojo\Db\Model
+ public: false
+ shared: false
+ abstract: true
+ calls:
+ - [setDbConnectionContainerRepository, ['@db.connection.container.repository']]
+ db.model:
+ alias: neighborhoods.kojo.db.model
+ public: false
\ No newline at end of file
diff --git a/src/Db/Model/AwareTrait.php b/src/Db/Model/AwareTrait.php
index 8c471f3e..419afe41 100644
--- a/src/Db/Model/AwareTrait.php
+++ b/src/Db/Model/AwareTrait.php
@@ -1,9 +1,9 @@
_exists(self::PROP_SELECT)) {
- $dbConnectionContainer = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB);
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
$select = $dbConnectionContainer->select($this->_getModel()->getTableName());
$this->_create(self::PROP_SELECT, $select);
}
@@ -77,7 +79,8 @@ protected function &_getRecords(): array
if (!$this->_exists(self::PROP_RECORDS)) {
$this->_prepareCollection();
$select = $this->getSelect();
- $statement = $this->_getDbConnectionContainer(ContainerInterface::NAME_JOB)->getStatement($select);
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB);
+ $statement = $dbConnectionContainer->getStatement($select);
/** @var \PDOStatement $pdoStatement */
$pdoStatement = $statement->execute()->getResource();
$pdoStatement->setFetchMode($this->_getFetchMode());
@@ -93,4 +96,14 @@ protected function &_getRecords(): array
}
abstract protected function _prepareCollection(): CollectionAbstract;
+
+ protected function _logSelect(): CollectionInterface
+ {
+ if ($this->_hasLogger()) {
+ $sql = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB)->getSql();
+ $this->_getLogger()->debug(get_called_class() . ': ' . $sql->buildSqlString($this->getSelect()));
+ }
+
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/Db/Model/CollectionInterface.php b/src/Db/Model/CollectionInterface.php
index 1d129be0..f8834362 100644
--- a/src/Db/Model/CollectionInterface.php
+++ b/src/Db/Model/CollectionInterface.php
@@ -1,14 +1,14 @@
_pdo === null) {
+ $dsn = $this->_getDataSourceName();
+ $userName = $this->_getUserName();
+ $password = $this->_getPassword();
+ if ($this->_hasOptions()) {
+ $options = $this->_getOptions();
+ }else {
+ $options = [];
+ }
+ $this->_pdo = new \PDO($dsn, $userName, $password, $options);
+ }
+
+ return $this->_pdo;
+ }
+
+ public function setDataSourceName(string $dataSourceName): BuilderInterface
+ {
+ $normalizedDataSourceName = preg_replace_callback(self::REGEX_DSN_URI, function ($matches){
+ return strtolower($matches[0]);
+ }, $dataSourceName, 1);
+ $this->_create(self::PROP_DATA_SOURCE_NAME, $normalizedDataSourceName);
+
+ return $this;
+ }
+
+ protected function _getDataSourceName(): string
+ {
+ return $this->_read(self::PROP_DATA_SOURCE_NAME);
+ }
+
+ public function setUserName(string $userName): BuilderInterface
+ {
+ $this->_create(self::PROP_USER_NAME, $userName);
+
+ return $this;
+ }
+
+ protected function _getUserName(): string
+ {
+ return $this->_read(self::PROP_USER_NAME);
+ }
+
+ public function setPassword(string $password): BuilderInterface
+ {
+ $this->_create(self::PROP_PASSWORD, $password);
+
+ return $this;
+ }
+
+ protected function _getPassword(): string
+ {
+ return $this->_read(self::PROP_PASSWORD);
+ }
+
+ public function setOptions(array $options): BuilderInterface
+ {
+ $this->_create(self::PROP_OPTIONS, $options);
+
+ return $this;
+ }
+
+ protected function _getOptions(): array
+ {
+ return $this->_read(self::PROP_OPTIONS);
+ }
+
+ protected function _hasOptions(): bool
+ {
+ return $this->_exists(self::PROP_OPTIONS);
+ }
+}
\ No newline at end of file
diff --git a/src/Db/PDO/Builder.yml b/src/Db/PDO/Builder.yml
new file mode 100644
index 00000000..1b201947
--- /dev/null
+++ b/src/Db/PDO/Builder.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.db.pdo.builder:
+ class: Neighborhoods\Kojo\Db\PDO\Builder
+ public: false
+ shared: false
+ calls:
+ - [setPassword, ['%neighborhoods.kojo.environment.parameters.database_password%']]
+ - [setUserName, ['%neighborhoods.kojo.environment.parameters.database_user_name%']]
+ - [setDataSourceName, ['%neighborhoods.kojo.environment.parameters.database_adapter%:dbname=%neighborhoods.kojo.environment.parameters.database_name%;host=%neighborhoods.kojo.environment.parameters.database_host%']]
+ db.pdo.builder:
+ alias: neighborhoods.kojo.db.pdo.builder
+ public: false
\ No newline at end of file
diff --git a/src/Db/PDO/Builder/AwareTrait.php b/src/Db/PDO/Builder/AwareTrait.php
new file mode 100644
index 00000000..5ba81fba
--- /dev/null
+++ b/src/Db/PDO/Builder/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(BuilderInterface::class, $dbPDOBuilder);
+
+ return $this;
+ }
+
+ protected function _getDbPDOBuilder(): BuilderInterface
+ {
+ return $this->_read(BuilderInterface::class);
+ }
+
+ protected function _getDbPDOBuilderClone(): BuilderInterface
+ {
+ return clone $this->_getDbPDOBuilder();
+ }
+
+ protected function _hasDbPDOBuilder(): bool
+ {
+ return $this->_exists(BuilderInterface::class);
+ }
+
+ protected function _unsetDbPDOBuilder(): self
+ {
+ $this->_delete(BuilderInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Db/PDO/BuilderInterface.php b/src/Db/PDO/BuilderInterface.php
new file mode 100644
index 00000000..3fb1a611
--- /dev/null
+++ b/src/Db/PDO/BuilderInterface.php
@@ -0,0 +1,17 @@
+_getDbConnectionContainer(ContainerInterface::NAME_SCHEMA)->getAdapter()->query(
- $this->_getDbConnectionContainer(ContainerInterface::NAME_SCHEMA)->getSql()->buildSqlString(
- $this->_getSchemaChanges()
- ),
+ $dbConnectionContainer = $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_SCHEMA);
+ $dbConnectionContainer->getAdapter()->query(
+ $dbConnectionContainer->getSql()->buildSqlString($this->_getSchemaChanges()),
Adapter::QUERY_MODE_EXECUTE
);
diff --git a/src/Db/Schema/VersionInterface.php b/src/Db/Schema/VersionInterface.php
index 8a53392f..f12c26b1 100644
--- a/src/Db/Schema/VersionInterface.php
+++ b/src/Db/Schema/VersionInterface.php
@@ -1,7 +1,7 @@
addColumn(
new Varchar(
'version', 255, true, null,
[
- 'comment' => 'The schema version for jobs.',
+ 'comment' => 'The schema version for Kojo.',
]));
$this->_setSchemaChanges($createTable);
diff --git a/src/Db/Setup/Schema/Version_0_0_0.yml b/src/Db/Setup/Schema/Version_0_0_0.yml
new file mode 100644
index 00000000..e24e654f
--- /dev/null
+++ b/src/Db/Setup/Schema/Version_0_0_0.yml
@@ -0,0 +1,7 @@
+services:
+ neighborhoods.kojo.db.setup.schema.version.0_0_0:
+ class: Neighborhoods\Kojo\Db\Setup\Schema\Version_0_0_0
+ calls:
+ - [setDbConnectionContainerRepository, ["@db.connection.container.repository"]]
+ db.setup.schema.version.0_0_0:
+ alias: neighborhoods.kojo.db.setup.schema.version.0_0_0
\ No newline at end of file
diff --git a/src/Db/Setup/Schema/Version_1_0_0.php b/src/Db/Setup/Schema/Version_1_0_0.php
index a7a9da8c..9b640f58 100644
--- a/src/Db/Setup/Schema/Version_1_0_0.php
+++ b/src/Db/Setup/Schema/Version_1_0_0.php
@@ -1,11 +1,11 @@
'COMMENT',
'unsigned' => true,
]));
+ $createTable->addColumn(
+ new Integer(
+ Type::FIELD_NAME_SCHEDULE_LIMIT_ALLOWANCE, true, null,
+ [
+ 'comment' => 'COMMENT',
+ 'unsigned' => true,
+ ]));
$createTable->addColumn(
new Boolean(
Type::FIELD_NAME_IS_ENABLED, false, null,
@@ -97,12 +104,6 @@ public function assembleSchemaChanges(): VersionInterface
'comment' => 'A ISO 8601 interval duration that describes duration of time past a Job\'s'
. ' completed_at_date_time that a Job record of this Job Type should be deleted from storage.',
]));
- $createTable->addColumn(
- new Varchar(
- Type::FIELD_NAME_PROCESS_TYPE_CODE, 255, false, null,
- [
- 'comment' => 'The process type code used to run this job type.',
- ]));
$createTable->addConstraint(new PrimaryKey(Type::FIELD_NAME_ID, Type::FIELD_NAME_ID));
$createTable->addConstraint(new UniqueKey(Type::FIELD_NAME_TYPE_CODE, Type::FIELD_NAME_TYPE_CODE));
$createTable->addConstraint(
@@ -113,6 +114,7 @@ public function assembleSchemaChanges(): VersionInterface
Type::FIELD_NAME_TYPE_CODE,
Type::FIELD_NAME_DEFAULT_IMPORTANCE,
Type::FIELD_NAME_SCHEDULE_LIMIT,
+ Type::FIELD_NAME_SCHEDULE_LIMIT_ALLOWANCE,
],
Type::INDEX_NAME_SCHEDULER_COVERING
)
@@ -128,6 +130,7 @@ public function assembleSchemaChanges(): VersionInterface
Type::FIELD_NAME_CAN_WORK_IN_PARALLEL,
Type::FIELD_NAME_DEFAULT_IMPORTANCE,
Type::FIELD_NAME_SCHEDULE_LIMIT,
+ Type::FIELD_NAME_SCHEDULE_LIMIT_ALLOWANCE,
Type::FIELD_NAME_AUTO_COMPLETE_SUCCESS,
Type::FIELD_NAME_AUTO_DELETE_INTERVAL_DURATION,
],
diff --git a/src/Db/Setup/Schema/Version_4_0_0.yml b/src/Db/Setup/Schema/Version_4_0_0.yml
new file mode 100644
index 00000000..c3bc7469
--- /dev/null
+++ b/src/Db/Setup/Schema/Version_4_0_0.yml
@@ -0,0 +1,7 @@
+services:
+ neighborhoods.kojo.db.setup.schema.version.4_0_0:
+ class: Neighborhoods\Kojo\Db\Setup\Schema\Version_4_0_0
+ calls:
+ - [setDbConnectionContainerRepository, ["@db.connection.container.repository"]]
+ db.setup.schema.version.4_0_0:
+ alias: neighborhoods.kojo.db.setup.schema.version.4_0_0
\ No newline at end of file
diff --git a/src/Db/Setup/Schema/Version_5_0_0.php b/src/Db/Setup/Schema/Version_5_0_0.php
index 13a96f25..bb6c732f 100644
--- a/src/Db/Setup/Schema/Version_5_0_0.php
+++ b/src/Db/Setup/Schema/Version_5_0_0.php
@@ -1,12 +1,12 @@
addColumn(
new Varchar(
- JobInterface::FIELD_NAME_PROCESS_TYPE_CODE, 255, false, null,
+ JobInterface::FIELD_NAME_MOST_RECENT_HOST_NAME, 255, true, null,
[
- 'comment' => 'The process type code used to run this job.',
+ 'comment' => 'COMMENT',
+ ]));
+ $createTable->addColumn(
+ new Integer(
+ JobInterface::FIELD_NAME_MOST_RECENT_PROCESS_ID, true, null,
+ [
+ 'comment' => 'COMMENT',
+ 'unsigned' => true,
]));
$createTable->addConstraint(new PrimaryKey(JobInterface::FIELD_NAME_ID));
$createTable->addConstraint(
@@ -184,7 +191,6 @@ public function assembleSchemaChanges(): VersionInterface
JobInterface::FIELD_NAME_NEXT_STATE_REQUEST,
JobInterface::FIELD_NAME_ASSIGNED_STATE,
JobInterface::FIELD_NAME_WORK_AT_DATE_TIME,
- JobInterface::FIELD_NAME_PROCESS_TYPE_CODE,
JobInterface::FIELD_NAME_PRIORITY,
JobInterface::FIELD_NAME_TYPE_CODE,
JobInterface::FIELD_NAME_CAN_WORK_IN_PARALLEL,
diff --git a/src/Db/Setup/Schema/Version_5_0_0.yml b/src/Db/Setup/Schema/Version_5_0_0.yml
new file mode 100644
index 00000000..af9b1ced
--- /dev/null
+++ b/src/Db/Setup/Schema/Version_5_0_0.yml
@@ -0,0 +1,7 @@
+services:
+ neighborhoods.kojo.db.setup.schema.version.5_0_0:
+ class: Neighborhoods\Kojo\Db\Setup\Schema\Version_5_0_0
+ calls:
+ - [setDbConnectionContainerRepository, ["@db.connection.container.repository"]]
+ db.setup.schema.version.5_0_0:
+ alias: neighborhoods.kojo.db.setup.schema.version.5_0_0
\ No newline at end of file
diff --git a/src/Db/Setup/Schema/Version_6_0_0.php b/src/Db/Setup/Schema/Version_6_0_0.php
deleted file mode 100644
index b70e3390..00000000
--- a/src/Db/Setup/Schema/Version_6_0_0.php
+++ /dev/null
@@ -1,60 +0,0 @@
-addColumn(
- new BigInteger(
- SqsInterface::FIELD_NAME_ID, false, null,
- [
- 'comment' => 'The unique ID of this sqs auto-schedule record.',
- 'identity' => true,
- 'unsigned' => true,
- ]));
- $createTable->addColumn(
- new Varchar(
- SqsInterface::FIELD_NAME_JOB_TYPE_CODE, 255, false, null,
- [
- 'comment' => 'The job type code to which this auto-schedule record relates.',
- ]));
- $createTable->addColumn(
- new Varchar(
- SqsInterface::FIELD_NAME_SQS_QUEUE_NAME, 255, false, null,
- [
- 'comment' => 'The SQS queue name to which this auto-schedule record relates.',
- ]));
- $createTable->addConstraint(
- new PrimaryKey(
- SqsInterface::FIELD_NAME_ID,
- SqsInterface::FIELD_NAME_ID
- )
- );
- $createTable->addConstraint(
- new Index(
- [
- SqsInterface::FIELD_NAME_JOB_TYPE_CODE,
- SqsInterface::FIELD_NAME_SQS_QUEUE_NAME,
- ],
- SqsInterface::INDEX_NAME_COVERING
- )
- );
-
- $this->_setSchemaChanges($createTable);
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/src/Db/SetupInterface.php b/src/Db/SetupInterface.php
index d9806e56..53f6967b 100644
--- a/src/Db/SetupInterface.php
+++ b/src/Db/SetupInterface.php
@@ -1,9 +1,9 @@
_setSchemaChanges($dropTable);
return $this;
diff --git a/src/Db/TearDown/Schema/Version_0_0_0.yml b/src/Db/TearDown/Schema/Version_0_0_0.yml
new file mode 100644
index 00000000..7745c2ca
--- /dev/null
+++ b/src/Db/TearDown/Schema/Version_0_0_0.yml
@@ -0,0 +1,7 @@
+services:
+ neighborhoods.kojo.db.tear_down.schema.version.0_0_0:
+ class: Neighborhoods\Kojo\Db\TearDown\Schema\Version_0_0_0
+ calls:
+ - [setDbConnectionContainerRepository, ["@db.connection.container.repository"]]
+ db.tear_down.schema.version.0_0_0:
+ alias: neighborhoods.kojo.db.tear_down.schema.version.0_0_0
\ No newline at end of file
diff --git a/src/Db/TearDown/Schema/Version_1_0_0.php b/src/Db/TearDown/Schema/Version_1_0_0.php
index 8dc457c6..f669811b 100644
--- a/src/Db/TearDown/Schema/Version_1_0_0.php
+++ b/src/Db/TearDown/Schema/Version_1_0_0.php
@@ -1,11 +1,11 @@
_setSchemaChanges($dropTable);
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/src/Db/TearDownInterface.php b/src/Db/TearDownInterface.php
index 18ccb945..b8bb4a99 100644
--- a/src/Db/TearDownInterface.php
+++ b/src/Db/TearDownInterface.php
@@ -1,7 +1,7 @@
_addMessage($code);
- }
-
- return $this;
- }
-
- protected function _getPossibleMessages()
- {
- return $this->_possibleMessages;
- }
-
- public function setCode($code)
- {
- $this->code = $code;
- $this->message = '';
- $this->_addMessage($code);
-
- return $this;
- }
-
- public function addMessage($additionalMessage)
- {
- $this->_pushMessage($additionalMessage);
-
- return $this;
- }
-
- public function getPrettyPrintMessages()
- {
- $prettyPrintMessages = "";
- $messages = json_decode($this->getMessage());
- foreach ($messages as $message) {
- $prettyPrintMessages .= $message . "\n";
- }
-
- return $prettyPrintMessages;
- }
-
- protected function _getMessages()
- {
- $possibleMessages = $this->_getPossibleMessages();
-
- return $possibleMessages;
- }
-
- protected function _addMessage($code)
- {
- $messages = $this->_getMessages();
- if (isset($messages[$code])) {
- $message = $messages[$code];
- }else {
- $message = $messages[$code];
- }
-
- $this->_pushMessage($message);
-
- return $this;
- }
-
- protected function _pushMessage($message)
- {
- if ($this->message === "") {
- $messages = array();
- }else {
- $messages = json_decode($this->message);
- }
-
- $messages[] = $message;
- $this->message = json_encode($messages);
-
- return $this;
- }
-
- protected function _addPossibleMessage($code, $message)
- {
- $this->_possibleMessages[$code] = $message;
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/src/Exception/Runtime/Db/Model/LoadException.php b/src/Exception/Runtime/Db/Model/LoadException.php
index 0d310151..6560be66 100644
--- a/src/Exception/Runtime/Db/Model/LoadException.php
+++ b/src/Exception/Runtime/Db/Model/LoadException.php
@@ -1,9 +1,9 @@
_possibleMessages[$code] = $message;
+
+ return $this;
+ }
+
+ protected function _init($message, $code)
+ {
+ if ($message === null) {
+ $this->_addMessage($code);
+ }
+
+ return $this;
+ }
+
+ public function setCode($code)
+ {
+ $this->code = $code;
+ $this->message = '';
+ $this->_addMessage($code);
+
+ return $this;
+ }
+
+ protected function _addMessage($code)
+ {
+ $messages = $this->_getMessages();
+ if (isset($messages[$code])) {
+ $message = $messages[$code];
+ }else {
+ $message = $messages[$code];
+ }
+
+ $this->_pushMessage($message);
+
+ return $this;
+ }
+
+ protected function _getMessages()
+ {
+ $possibleMessages = $this->_getPossibleMessages();
+
+ return $possibleMessages;
+ }
+
+ protected function _getPossibleMessages()
+ {
+ return $this->_possibleMessages;
+ }
+
+ protected function _pushMessage($message)
+ {
+ if ($this->message === "") {
+ $messages = array();
+ }else {
+ $messages = json_decode($this->message);
+ }
+
+ $messages[] = $message;
+ $this->message = json_encode($messages);
+
+ return $this;
+ }
+
+ public function addMessage($additionalMessage)
+ {
+ $this->_pushMessage($additionalMessage);
+
+ return $this;
+ }
+
+ public function getPrettyPrintMessages()
+ {
+ $prettyPrintMessages = "";
+ $messages = json_decode($this->getMessage());
+ foreach ($messages as $message) {
+ $prettyPrintMessages .= $message . "\n";
+ }
+
+ return $prettyPrintMessages;
+ }
}
\ No newline at end of file
diff --git a/src/Exception/Runtime/ExceptionInterface.php b/src/Exception/Runtime/ExceptionInterface.php
new file mode 100644
index 00000000..b2cea9a6
--- /dev/null
+++ b/src/Exception/Runtime/ExceptionInterface.php
@@ -0,0 +1,16 @@
+_getSelector()->getWorkableJob();
- $this->setJob($job);
- $this->_getLocator()->setJob($job);
- if (is_callable($this->_getLocator()->getCallable())) {
+ $this->setJob($this->_getSelector()->getWorkableJob());
+ $this->_getLocator()->setJob($this->_getJob());
+ try{
+ $this->_injectWorkerService();
$this->_updateJobAsWorking();
- $this->_instantiateWorker();
+ $this->_runWorker();
$this->_updateJobAfterWork();
- }else {
- $updatePanic = $this->_getServiceUpdatePanicFactory()->create();
- $updatePanic->setJob($job);
- $updatePanic->save();
- throw new \RuntimeException('Panicking Job[' . $job->getId() . '].');
+ }catch(Locator\Exception | \Error $throwable){
+ $this->_panicJob();
+ $jobId = $this->_getJob()->getId();
+ throw new \RuntimeException("Panicking job with ID[$jobId].", 0, $throwable);
}
- $jobSemaphoreResource = $this->_getNewJobOwnerResource($job);
- $this->_getSemaphore()->releaseLock($jobSemaphoreResource);
+ $this->_getSemaphore()->releaseLock($this->_getNewJobOwnerResource($this->_getJob()));
if (!$this->_getJobType()->getCanWorkInParallel()) {
$this->_publishMessage();
@@ -63,17 +62,28 @@ protected function _workWorker(): ForemanInterface
return $this;
}
- protected function _instantiateWorker(): ForemanInterface
+ protected function _injectWorkerService(): ForemanInterface
+ {
+ $worker = $this->_getLocator()->getClass();
+ if (method_exists($worker, 'setApiV1WorkerService')) {
+ $worker->setApiV1WorkerService($this->_getApiV1WorkerService()->setJob($this->_getJob()));
+ }
+
+ return $this;
+ }
+
+ protected function _runWorker(): ForemanInterface
{
- $job = $this->_getJob();
try{
- $this->_getLogger()->debug('Instantiating Worker for Job[' . $job->getId() . '].');
+ $this->_getApmNewRelic()->startTransaction();
+ $className = $this->_getLocator()->getClassName();
+ $methodName = $this->_getLocator()->getMethodName();
+ $this->_getApmNewRelic()->nameTransaction($className . '::' . $methodName);
call_user_func($this->_getLocator()->getCallable());
- }catch(\Exception $exception){
- $updateCrash = $this->_getServiceUpdateCrashFactory()->create();
- $updateCrash->setJob($job);
- $updateCrash->save();
- throw $exception;
+ $this->_getApmNewRelic()->endTransaction();
+ }catch(\Exception $throwable){
+ $this->_crashJob();
+ throw $throwable;
}
return $this;
@@ -81,17 +91,13 @@ protected function _instantiateWorker(): ForemanInterface
protected function _updateJobAsWorking(): ForemanInterface
{
- $job = $this->_getJob();
try{
$updateWork = $this->_getServiceUpdateWorkFactory()->create();
- $updateWork->setJob($job);
+ $updateWork->setJob($this->_getJob());
$updateWork->save();
}catch(\Exception $exception){
- $updatePanic = $this->_getServiceUpdatePanicFactory()->create();
- $updatePanic->setJob($job);
- $updatePanic->save();
- $jobSemaphoreResource = $this->_getNewJobOwnerResource($job);
- $this->_getSemaphore()->releaseLock($jobSemaphoreResource);
+ $this->_panicJob();
+ $this->_getSemaphore()->releaseLock($this->_getNewJobOwnerResource($this->_getJob()));
throw $exception;
}
@@ -100,21 +106,15 @@ protected function _updateJobAsWorking(): ForemanInterface
protected function _updateJobAfterWork(): ForemanInterface
{
- $job = $this->_getJob();
if ($this->_getJobType()->getAutoCompleteSuccess()) {
$updateCompleteSuccess = $this->_getServiceUpdateCompleteSuccessFactory()->create();
- $updateCompleteSuccess->setJob($job);
+ $updateCompleteSuccess->setJob($this->_getJob());
$updateCompleteSuccess->save();
}else {
- $stateService = $this->_getStateServiceClone();
- $job->load();
- $stateService->setJob($job);
- if (!$this->_getWorkerJobService()->isRequestApplied() || !$stateService->isValidTransition()) {
- $updateCrash = $this->_getServiceUpdateCrashFactory()->create();
- $updateCrash->setJob($job);
- $updateCrash->save();
- $message = 'Worker related to Job with ID[' . $job->getId() . '] did not request a next state.';
- throw new \LogicException($message);
+ if (!$this->_getApiV1WorkerService()->isRequestApplied()) {
+ $this->_panicJob();
+ $jobId = $this->_getJob()->getId();
+ throw new \LogicException("Worker related to job with ID[$jobId] did not request a next state.");
}
}
@@ -133,4 +133,22 @@ protected function _getJobType(): Job\TypeInterface
{
return $this->_getTypeRepository()->getJobType($this->_getJob()->getTypeCode());
}
+
+ protected function _panicJob(): ForemanInterface
+ {
+ $updatePanic = $this->_getServiceUpdatePanicFactory()->create();
+ $updatePanic->setJob($this->_getJob());
+ $updatePanic->save();
+
+ return $this;
+ }
+
+ protected function _crashJob(): ForemanInterface
+ {
+ $updateCrash = $this->_getServiceUpdateCrashFactory()->create();
+ $updateCrash->setJob($this->_getJob());
+ $updateCrash->save();
+
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/config/Foreman.yml b/src/Foreman.yml
similarity index 75%
rename from src/config/Foreman.yml
rename to src/Foreman.yml
index c687b03a..d89fe794 100644
--- a/src/config/Foreman.yml
+++ b/src/Foreman.yml
@@ -1,7 +1,8 @@
services:
- nhds.jobs.foreman:
- class: NHDS\Jobs\Foreman
+ neighborhoods.kojo.foreman:
+ class: Neighborhoods\Kojo\Foreman
shared: false
+ public: false
calls:
- [setTypeRepository, ['@type.repository']]
- [setSelector, ['@selector']]
@@ -13,8 +14,10 @@ services:
- [setServiceUpdateCrashFactory, ['@service.update.crash.factory']]
- [setServiceUpdateCompleteSuccessFactory, ['@service.update.complete.success.factory']]
- [setLogger, ['@process.pool.logger']]
- - [setWorkerJobService, ['@worker.job.service']]
+ - [setApiV1WorkerService, ['@api.v1.worker.service']]
- [setStateService, ['@state.service']]
- [setMessageBroker, ['@message.broker.redis']]
+ - [setApmNewRelic, ['@apm.new_relic']]
foreman:
- alias: nhds.jobs.foreman
\ No newline at end of file
+ alias: neighborhoods.kojo.foreman
+ public: false
\ No newline at end of file
diff --git a/src/Foreman/AwareTrait.php b/src/Foreman/AwareTrait.php
index 48ff6a96..60b342bb 100644
--- a/src/Foreman/AwareTrait.php
+++ b/src/Foreman/AwareTrait.php
@@ -1,9 +1,9 @@
_rescheduleCrashedJobs();
$this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_RESCHEDULE_JOBS)->releaseLock();
}catch(\Exception $exception){
- $this->_getLogger()->debug('Received Exception with message "' . $exception->getMessage() . '"');
if ($this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_RESCHEDULE_JOBS)->hasLock()) {
$this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_RESCHEDULE_JOBS)->releaseLock();
}
@@ -64,7 +63,6 @@ protected function _rescheduleCrashedJobs(): Maintainer
$jobSemaphoreResource->releaseLock();
}
}catch(\Exception $exception){
- $this->_getLogger()->debug('Received Exception with message "' . $exception->getMessage() . '"');
if ($jobSemaphoreResource->hasLock()) {
$jobSemaphoreResource->releaseLock();
}
@@ -94,25 +92,27 @@ public function updatePendingJobs(): MaintainerInterface
protected function _updatePendingJobs(): Maintainer
{
- foreach ($this->_getJobCollectionScheduleLimitCheck()->getIterator() as $job) {
+ foreach ($this->_getJobCollectionScheduleLimitCheck() as $job) {
$jobType = $this->_getTypeRepository()->getJobType($job->getTypeCode());
- $scheduleLimit = $this->_getJobCollectionScheduleLimitByJobType($jobType);
- $numberOfScheduledJobs = $scheduleLimit->getNumberOfCurrentlyScheduledJobs();
+ $scheduleLimitCollection = $this->_getJobCollectionScheduleLimitByJobType($jobType);
+ $numberOfScheduledJobs = $scheduleLimitCollection->getNumberOfCurrentlyScheduledJobs();
+ $scheduleLimit = $jobType->getScheduleLimit();
try{
- if ($numberOfScheduledJobs < $jobType->getScheduleLimit()) {
+ if ($numberOfScheduledJobs <= $scheduleLimit) {
$waitUpdate = $this->_getServiceUpdateWaitFactory()->create();
$waitUpdate->setJob($job);
$waitUpdate->save();
- }else {
+ }elseif ($numberOfScheduledJobs > $scheduleLimit + $jobType->getScheduleLimitAllowance()) {
$failedLimitCheckUpdate = $this->_getServiceUpdateCompleteFailedScheduleLimitCheckFactory()->create();
$failedLimitCheckUpdate->setJob($job);
$failedLimitCheckUpdate->save();
+ $scheduleLimitCollection->decrementNumberOfCurrentlyScheduledJobs();
}
}catch(\Exception $exception){
$updatePanic = $this->_getServiceUpdatePanicFactory()->create();
$updatePanic->setJob($job);
$updatePanic->save();
- $this->_getLogger()->alert('Panicking Job[' . $job->getId() . '].');
+ $this->_getLogger()->alert('Panicking job with ID[' . $job->getId() . '].');
}
}
diff --git a/src/config/Maintainer.yml b/src/Maintainer.yml
similarity index 87%
rename from src/config/Maintainer.yml
rename to src/Maintainer.yml
index aaeb8071..5969d1e1 100644
--- a/src/config/Maintainer.yml
+++ b/src/Maintainer.yml
@@ -1,7 +1,8 @@
services:
- nhds.jobs.maintainer:
- class: NHDS\Jobs\Maintainer
+ neighborhoods.kojo.maintainer:
+ class: Neighborhoods\Kojo\Maintainer
shared: false
+ public: false
calls:
- [setSemaphore, ['@semaphore']]
- [addSemaphoreResourceFactory, ['@semaphore.resource.factory-job']]
@@ -18,4 +19,5 @@ services:
- [setLogger, ['@process.pool.logger']]
- [setMaintainerDelete, ['@maintainer.delete']]
maintainer:
- alias: nhds.jobs.maintainer
\ No newline at end of file
+ alias: neighborhoods.kojo.maintainer
+ public: false
\ No newline at end of file
diff --git a/src/Maintainer/AwareTrait.php b/src/Maintainer/AwareTrait.php
index 4dc9923c..b5f8d910 100644
--- a/src/Maintainer/AwareTrait.php
+++ b/src/Maintainer/AwareTrait.php
@@ -1,9 +1,9 @@
_deleteCompletedJobs();
$this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_MAINTAINER_DELETE)->releaseLock();
}catch(\Exception $exception){
- $this->_getLogger()->debug('Received Exception with message "' . $exception->getMessage() . '"');
if ($this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_MAINTAINER_DELETE)->hasLock()) {
$this->_getSemaphoreResource(self::SEMAPHORE_RESOURCE_NAME_MAINTAINER_DELETE)->releaseLock();
}
diff --git a/src/config/Maintainer/Delete.yml b/src/Maintainer/Delete.yml
similarity index 71%
rename from src/config/Maintainer/Delete.yml
rename to src/Maintainer/Delete.yml
index 386bc3ce..9593344d 100644
--- a/src/config/Maintainer/Delete.yml
+++ b/src/Maintainer/Delete.yml
@@ -1,6 +1,6 @@
services:
- nhds.jobs.maintainer.delete:
- class: NHDS\Jobs\Maintainer\Delete
+ neighborhoods.kojo.maintainer.delete:
+ class: Neighborhoods\Kojo\Maintainer\Delete
calls:
- [setLogger, ['@process.pool.logger']]
- [setJobCollectionDelete, ['@data.job.collection.delete']]
@@ -9,4 +9,4 @@ services:
- [setPageSize, [50]]
- [setOffset, [50]]
maintainer.delete:
- alias: nhds.jobs.maintainer.delete
\ No newline at end of file
+ alias: neighborhoods.kojo.maintainer.delete
\ No newline at end of file
diff --git a/src/Maintainer/Delete/AwareTrait.php b/src/Maintainer/Delete/AwareTrait.php
index 79330f10..663a62bc 100644
--- a/src/Maintainer/Delete/AwareTrait.php
+++ b/src/Maintainer/Delete/AwareTrait.php
@@ -1,9 +1,9 @@
_host === null) {
- $this->_host = $host;
- }else {
- throw new \LogicException('Host is already set.');
- }
-
- return $this;
- }
public function setSubscriptionChannelName(string $channelName): BrokerInterface
{
@@ -37,24 +24,6 @@ public function setSubscriptionChannelName(string $channelName): BrokerInterface
return $this;
}
- public function setPublishChannelName(string $channelName): BrokerInterface
- {
- if ($this->_publishChannelName === null) {
- $this->_publishChannelName = $channelName;
- }
-
- return $this;
- }
-
- protected function _getHost(): string
- {
- if ($this->_host === null) {
- throw new \LogicException('Host is not set.');
- }
-
- return $this->_host;
- }
-
protected function _getSubscriptionChannelName(): string
{
if ($this->_subscriptionChannelName === null) {
@@ -64,32 +33,21 @@ protected function _getSubscriptionChannelName(): string
return $this->_subscriptionChannelName;
}
- protected function _getPublishChannelName(): string
+ public function setPublishChannelName(string $channelName): BrokerInterface
{
if ($this->_publishChannelName === null) {
- throw new \LogicException('Publish channel name is not set.');
- }
-
- return $this->_publishChannelName;
- }
-
- public function setPort(int $port): BrokerInterface
- {
- if ($this->_port === null) {
- $this->_port = $port;
- }else {
- throw new \LogicException('Port is already set.');
+ $this->_publishChannelName = $channelName;
}
return $this;
}
- protected function _getPort(): int
+ protected function _getPublishChannelName(): string
{
- if ($this->_port === null) {
- throw new \LogicException('Port is not set.');
+ if ($this->_publishChannelName === null) {
+ throw new \LogicException('Publish channel name is not set.');
}
- return $this->_port;
+ return $this->_publishChannelName;
}
}
\ No newline at end of file
diff --git a/src/Message/Broker/BrokerInterface.php b/src/Message/Broker/BrokerInterface.php
index bbc90b60..3c57ad80 100644
--- a/src/Message/Broker/BrokerInterface.php
+++ b/src/Message/Broker/BrokerInterface.php
@@ -1,7 +1,7 @@
_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
@@ -29,10 +31,7 @@ public function waitForNewMessage(): BrokerInterface
protected function _getRedisClient(): \Redis
{
if ($this->_redisClient === null) {
- $this->_redisClient = new \Redis();
- // Do not use pconnet.
- $this->_redisClient->connect($this->_getHost(), $this->_getPort());
- $this->_redisClient->setOption(\Redis::OPT_READ_TIMEOUT, '-1');
+ $this->_redisClient = $this->_getRedisRepository()->getById(BrokerInterface::class);
}
return $this->_redisClient;
@@ -44,7 +43,7 @@ public function hasMessage(): bool
$publishChannelLength = $this->getPublishChannelLength();
$subscriptionChannelLength = $this->getSubscriptionChannelLength();
}catch(\Exception $exception){
- $this->_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
@@ -59,7 +58,7 @@ public function getNextMessage(): string
$message = $this->_getRedisClient()->rPop($this->_getPublishChannelName());
}
}catch(\Exception $exception){
- $this->_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
@@ -71,7 +70,7 @@ public function getPublishChannelLength(): int
try{
$publishChannelLength = $this->_getRedisClient()->lLen($this->_getPublishChannelName());
}catch(\Exception $exception){
- $this->_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
@@ -83,7 +82,7 @@ public function getSubscriptionChannelLength(): int
try{
$subscriptionChannelLength = $this->_getRedisClient()->lLen($this->_getSubscriptionChannelName());
}catch(\Exception $exception){
- $this->_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
@@ -95,17 +94,10 @@ public function publishMessage($message): BrokerInterface
try{
$this->_getRedisClient()->lPush($this->_getPublishChannelName(), $message);
}catch(\Exception $exception){
- $this->_getLogger()->warning($exception->getMessage());
+ $this->_getLogger()->critical($exception->getMessage());
throw $exception;
}
return $this;
}
-
- public function __destruct()
- {
- $this->_getRedisClient()->close();
-
- return $this;
- }
}
\ No newline at end of file
diff --git a/src/Message/Broker/Redis.yml b/src/Message/Broker/Redis.yml
new file mode 100644
index 00000000..cd9cc56a
--- /dev/null
+++ b/src/Message/Broker/Redis.yml
@@ -0,0 +1,19 @@
+services:
+ neighborhoods.kojo.message.broker.redis:
+ class: Neighborhoods\Kojo\Message\Broker\Redis
+ shared: false
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setSubscriptionChannelName, ['job_listener_subscribe']]
+ - [setPublishChannelName, ['job_listener_publish']]
+ - [setRedisRepository, ['@redis.repository']]
+ message.broker.redis:
+ alias: neighborhoods.kojo.message.broker.redis
+ neighborhoods.kojo.message.broker.redis[process.listener.mutex.redis]:
+ class: Neighborhoods\Kojo\Message\Broker\Redis
+ shared: false
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setRedisRepository, ['@redis.repository']]
+ message.broker.redis[process.listener.mutex.redis]:
+ alias: neighborhoods.kojo.message.broker.redis[process.listener.mutex.redis]
\ No newline at end of file
diff --git a/src/Message/Broker/Type/Collection.php b/src/Message/Broker/Type/Collection.php
index 061acb7d..ddf99744 100644
--- a/src/Message/Broker/Type/Collection.php
+++ b/src/Message/Broker/Type/Collection.php
@@ -1,10 +1,10 @@
_types[$typeCode])) {
- throw new \LogicException('Process type is not set.');
+ throw new \LogicException('Broker type is not set.');
}
return clone $this->_types[$typeCode];
diff --git a/src/Message/Broker/Type/Collection.yml b/src/Message/Broker/Type/Collection.yml
new file mode 100644
index 00000000..ca252f4b
--- /dev/null
+++ b/src/Message/Broker/Type/Collection.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.message.broker.type.collection-job:
+ class: Neighborhoods\Kojo\Message\Broker\Type\Collection
+ calls:
+ - [addBrokerType, ['job_broker', '@message.broker.redis']]
+ - [addBrokerType, ['process.listener.mutex.redis', '@message.broker.redis[process.listener.mutex.redis]']]
+ message.broker.type.collection-job:
+ alias: neighborhoods.kojo.message.broker.type.collection-job
\ No newline at end of file
diff --git a/src/Message/Broker/Type/Collection/AwareTrait.php b/src/Message/Broker/Type/Collection/AwareTrait.php
index 1b6c690f..647461f0 100644
--- a/src/Message/Broker/Type/Collection/AwareTrait.php
+++ b/src/Message/Broker/Type/Collection/AwareTrait.php
@@ -1,10 +1,10 @@
_processPrototypes as $processPrototype) {
$processPrototype->setProcessPool($pool);
- $processPrototype->setParentProcessPath($pool->getProcessPath());
+ $processPrototype->setParentProcessPath($pool->getProcess()->getPath());
+ $processPrototype->setParentProcessUuid($pool->getProcess()->getUuid());
+ $parentProcessTerminationSignalNumber = $pool->getProcess()->getTerminationSignalNumber();
+ $processPrototype->setParentProcessTerminationSignalNumber($parentProcessTerminationSignalNumber);
}
return $this;
diff --git a/src/Process/Collection.yml b/src/Process/Collection.yml
new file mode 100644
index 00000000..d94f0643
--- /dev/null
+++ b/src/Process/Collection.yml
@@ -0,0 +1,33 @@
+services:
+ neighborhoods.kojo.process.collection:
+ shared: true
+ class: Neighborhoods\Kojo\Process\Collection
+ calls:
+ - [setIterator, ['@process.collection.iterator']]
+ - [addProcessPrototype, ['@process.listener.command']]
+ - [addProcessPrototype, ['@process.job']]
+ process.collection:
+ alias: neighborhoods.kojo.process.collection
+ neighborhoods.kojo.process.collection-server:
+ shared: true
+ class: Neighborhoods\Kojo\Process\Collection
+ calls:
+ - [setIterator, ['@process.collection.iterator']]
+ - [addProcessPrototype, ['@process.root']]
+ process.collection-server:
+ alias: neighborhoods.kojo.process.collection-server
+ neighborhoods.kojo.process.collection-job:
+ shared: true
+ class: Neighborhoods\Kojo\Process\Collection
+ calls:
+ - [setIterator, ['@process.collection.iterator']]
+ - [addProcessPrototype, ['@process.listener.mutex.redis']]
+ process.collection-job:
+ alias: neighborhoods.kojo.process.collection-job
+ neighborhoods.kojo.process.collection-empty:
+ shared: true
+ class: Neighborhoods\Kojo\Process\Collection
+ calls:
+ - [setIterator, ['@process.collection.iterator']]
+ process.collection-empty:
+ alias: neighborhoods.kojo.process.collection-empty
\ No newline at end of file
diff --git a/src/Process/Collection/AwareTrait.php b/src/Process/Collection/AwareTrait.php
index e25b23d5..fdc3ceeb 100644
--- a/src/Process/Collection/AwareTrait.php
+++ b/src/Process/Collection/AwareTrait.php
@@ -1,9 +1,9 @@
_create(self::PROP_HAS_FORKED, true);
- $processId = $this->_getProcessStrategy()->fork();
- if ($processId === self::FORK_FAILURE_CODE) {
- throw new \RuntimeException('Failed to fork new process.');
- }elseif ($processId > 0) {
- // This is executed in the Process Pool.
- $this->_initialize($processId);
- $this->_getLogger()->debug("Forked Process[{$this->getProcessId()}][{$this->getTypeCode()}].");
- }else {
- // This is executed in the Process.
- $this->_initialize();
- if ($this->_hasProcessPool()) {
- $this->_getProcessPool()->emptyChildProcesses();
- $this->_unsetProcessPool();
- }
-
- $this->_getLogger()->debug("Running Process...");
- $this->_run();
- $this->_getLogger()->debug("Process finished running.");
- $this->_exit(0);
- }
-
- return $this;
- }
-
- abstract protected function _run(): Forkable;
-}
\ No newline at end of file
diff --git a/src/Process/Forked.php b/src/Process/Forked.php
new file mode 100644
index 00000000..d8d35441
--- /dev/null
+++ b/src/Process/Forked.php
@@ -0,0 +1,36 @@
+_create(self::PROP_HAS_FORKED, true);
+ $processId = $this->_getProcessStrategy()->fork();
+ if ($processId === self::FORK_FAILURE_CODE) {
+ throw new \RuntimeException('Failed to fork a new process.');
+ }elseif ($processId > 0) {
+ // This is executed in the parent process.
+ $this->_setProcessId($processId);
+ }else {
+ // This is executed in the child process.
+ $this->_initialize();
+ $this->_getProcessSignal()->decrementWaitCount();
+ $this->_getProcessPool()->start();
+ $this->_run();
+ $this->exit();
+ }
+
+ return $this;
+ }
+
+ abstract protected function _run(): Forked;
+}
\ No newline at end of file
diff --git a/src/Process/Job.php b/src/Process/Job.php
index c987d797..e1128fe4 100644
--- a/src/Process/Job.php
+++ b/src/Process/Job.php
@@ -1,31 +1,38 @@
_getSelector()->setProcess($this);
- $this->_getBootstrap()->instantiate();
- $this->_getMaintainer()->rescheduleCrashedJobs();
- $this->_getScheduler()->scheduleStaticJobs();
- $this->_getMaintainer()->updatePendingJobs();
- $this->_getMaintainer()->deleteCompletedJobs();
- $this->_getForeman()->workWorker();
+ try{
+ $this->_getSelector()->setProcess($this);
+ $this->_getBootstrap()->instantiate();
+ $this->_getMaintainer()->rescheduleCrashedJobs();
+ $this->_getScheduler()->scheduleStaticJobs();
+ $this->_getMaintainer()->updatePendingJobs();
+ $this->_getMaintainer()->deleteCompletedJobs();
+ $this->_getForeman()->workWorker();
+ }catch(\Throwable $throwable){
+ $this->_getLogger()->critical($throwable->getMessage());
+ $this->_setOrReplaceExitCode(255);
+ }
return $this;
}
diff --git a/src/Process/Job.yml b/src/Process/Job.yml
new file mode 100644
index 00000000..207c747f
--- /dev/null
+++ b/src/Process/Job.yml
@@ -0,0 +1,20 @@
+services:
+ neighborhoods.kojo.process.job:
+ class: Neighborhoods\Kojo\Process\Job
+ public: true
+ shared: false
+ parent: process_abstract
+ calls:
+ - [setForeman, ['@foreman']]
+ - [setMaintainer, ['@maintainer']]
+ - [setScheduler, ['@scheduler']]
+ - [setBootstrap, ['@worker.bootstrap']]
+ - [setTypeCode, ['job']]
+ - [setSelector, ['@selector']]
+ - [setProcessStrategy, ['@process.strategy.process_control']]
+ - [setTerminationSignalNumber, ['@=constant("SIGTERM")']]
+ - [setUuidMaximumInteger, [9999999999]]
+ - [setProcessPoolFactory, ['@process.pool.factory-job']]
+ - [setTitlePrefix, ['%process.title.prefix%']]
+ process.job:
+ alias: neighborhoods.kojo.process.job
\ No newline at end of file
diff --git a/src/Process/Job/Required.php b/src/Process/Job/Required.php
deleted file mode 100644
index f2fd9cc3..00000000
--- a/src/Process/Job/Required.php
+++ /dev/null
@@ -1,11 +0,0 @@
-_getLogger()->debug('Adding Process with type code "' . $processTypeCode . '".');
$process = $this->_getProcessCollection()->getProcessPrototypeClone($processTypeCode);
$this->_getProcessPool()->addChildProcess($process);
@@ -62,7 +61,7 @@ protected function _getExpressionLanguage(): ExpressionLanguage
return $this->_read(self::PROP_EXPRESSION_LANGUAGE);
}
- protected function _run(): Forkable
+ protected function _run(): Forked
{
if (!$this->_getMessageBroker()->hasMessage()) {
$this->_getMessageBroker()->waitForNewMessage();
diff --git a/src/Process/Listener/Command.yml b/src/Process/Listener/Command.yml
new file mode 100644
index 00000000..b3468c7e
--- /dev/null
+++ b/src/Process/Listener/Command.yml
@@ -0,0 +1,19 @@
+services:
+ neighborhoods.kojo.process.listener.command:
+ class: Neighborhoods\Kojo\Process\Listener\Command
+ public: true
+ shared: false
+ parent: process_abstract
+ calls:
+ - [setTypeCode, ['listener.command']]
+ - [setBrokerTypeCollection, ['@neighborhoods.kojo.message.broker.type.collection-job']]
+ - [setBrokerTypeCode, ['job_broker']]
+ - [setExpressionLanguage, ['@symfony.component.expressionlanguage.expressionlanguage']]
+ - [setProcessCollection, ['@process.collection']]
+ - [setProcessStrategy, ['@process.strategy.process_control']]
+ - [setTerminationSignalNumber, ['@=constant("SIGKILL")']]
+ - [setUuidMaximumInteger, [9999999999]]
+ - [setProcessPoolFactory, ['@process.pool.factory-empty']]
+ - [setTitlePrefix, ['%process.title.prefix%']]
+ process.listener.command:
+ alias: neighborhoods.kojo.process.listener.command
\ No newline at end of file
diff --git a/src/Process/Listener/CommandInterface.php b/src/Process/Listener/CommandInterface.php
index 5f5088d1..074bb4c8 100644
--- a/src/Process/Listener/CommandInterface.php
+++ b/src/Process/Listener/CommandInterface.php
@@ -1,9 +1,9 @@
_register();
+
+ return $this;
+ }
+
+ protected function _register(): ProcessInterface
+ {
+ $this->_getRedis()->client('SETNAME', $this->getParentProcessUuid());
+ $this->_getMessageBroker()->setPublishChannelName($this->getParentProcessUuid());
+ $this->_getMessageBroker()->setSubscriptionChannelName($this->getParentProcessUuid());
+ $this->_getMessageBroker()->waitForNewMessage();
+ posix_kill($this->getParentProcessId(), $this->getParentProcessTerminationSignalNumber());
+
+ return $this;
+ }
+
+ public function processMessages(): ListenerInterface
+ {
+ throw new \RuntimeException('The connection to redis was lost.');
+ }
+
+ public function hasMessages(): bool
+ {
+ return true;
+ }
+
+ protected function _getRedis(): \Redis
+ {
+ if (!$this->_exists(self::PROP_REDIS)) {
+ $this->_create(self::PROP_REDIS, $this->_getRedisFactory()->create());
+ }
+
+ return $this->_read(self::PROP_REDIS);
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Listener/Mutex/Redis.yml b/src/Process/Listener/Mutex/Redis.yml
new file mode 100644
index 00000000..b087a8e9
--- /dev/null
+++ b/src/Process/Listener/Mutex/Redis.yml
@@ -0,0 +1,19 @@
+services:
+ neighborhoods.kojo.process.listener.mutex.redis:
+ class: Neighborhoods\Kojo\Process\Listener\Mutex\Redis
+ public: true
+ shared: false
+ parent: process_abstract
+ calls:
+ - [setTypeCode, ['listener.mutex.redis']]
+ - [setProcessStrategy, ['@process.strategy.process_control']]
+ - [setTerminationSignalNumber, ['@=constant("SIGKILL")']]
+ - [setUuidMaximumInteger, [9999999999]]
+ - [setBrokerTypeCollection, ['@neighborhoods.kojo.message.broker.type.collection-job']]
+ - [setBrokerTypeCode, ['process.listener.mutex.redis']]
+ - [setProcessPoolFactory, ['@process.pool.factory-empty']]
+ - [setRedisFactory, ['@redis.factory']]
+ - [setTitlePrefix, ['%process.title.prefix%']]
+ process.listener.mutex.redis:
+ alias: neighborhoods.kojo.process.listener.mutex.redis
+ public: false
\ No newline at end of file
diff --git a/src/Process/Listener/Mutex/RedisInterface.php b/src/Process/Listener/Mutex/RedisInterface.php
new file mode 100644
index 00000000..0000f91a
--- /dev/null
+++ b/src/Process/Listener/Mutex/RedisInterface.php
@@ -0,0 +1,10 @@
+_create(self::PROP_STARTED, true);
$this->_initialize();
- $this->_getLogger()->info("Process pool started.");
- // Register signals to be handled.
- pcntl_sigprocmask(SIG_BLOCK, $this->_waitSignals);
- while (true) {
- $this->_getLogger()->debug("Waiting for signal...");
- $this->_signalInformation = [];
- pcntl_sigwaitinfo($this->_waitSignals, $this->_signalInformation);
-
- switch ($this->_signalInformation[self::SIGNAL_NUMBER]) {
- case SIGCHLD:
- $this->_childExitSignal();
- break;
- case SIGALRM:
- $this->_alarmSignal();
- break;
- case SIGINT:
- case SIGTERM:
- $this->_getLogger()->debug('Handling termination signal...');
- $this->terminateChildProcesses();
- break 2;
- default:
- throw new \UnexpectedValueException('Unexpected blocked signal.');
- }
- }
- $this->_getLogger()->info('Exiting process pool.');
+ return $this;
+ }
+
+ public function handleSignal(InformationInterface $signalInformation): HandlerInterface
+ {
+ $signalNumber = $signalInformation->getSignalNumber();
+ switch ($signalNumber) {
+ case SIGCHLD:
+ $this->_childExitSignal($signalInformation);
+ break;
+ case SIGALRM:
+ $this->_alarmSignal($signalInformation);
+ break;
+ default:
+ throw new \UnexpectedValueException("Unexpected signal number[$signalNumber].");
+ }
return $this;
}
- protected function _childExitSignal(): PoolInterface
+ protected function _childExitSignal(InformationInterface $information): PoolInterface
{
- while ($childProcessId = pcntl_wait($status, WNOHANG)) {
- if ($childProcessId == -1) {
- $this->_processControlWaitError();
- }
- $childProcessExitCode = pcntl_wexitstatus($status);
- $this->_getLogger()->debug("Process[$childProcessId] exited with code [$childProcessExitCode]");
- $childProcess = $this->getChildProcess($childProcessId)->setExitCode($childProcessExitCode);
+ $childProcessId = $information->getProcessId();
+ if (isset($this->_childProcesses[$childProcessId])) {
+ $childProcessExitCode = $information->getExitValue();
+ $childProcess = $this->getChildProcess($information->getProcessId())->setExitCode($childProcessExitCode);
$this->_getProcessPoolStrategy()->childProcessExited($childProcess);
$this->_validateAlarm();
+ $this->_getProcessPoolStrategy()->currentPendingChildExitsCompleted();
+ }else {
+ $processId = $this->_getProcess()->getProcessId();
+ $this->_getLogger()->notice("Child process[$childProcessId] is not in the pool for process[$processId].");
}
- $this->_getLogger()->debug('Number of child processes in pool: ' . $this->getCountOfChildProcesses());
- $this->_getProcessPoolStrategy()->currentPendingChildExitsCompleted();
return $this;
}
- public function getCountOfChildProcesses(): int
+ public function freeChildProcess(int $childProcessId): PoolInterface
{
- return count($this->_childProcesses);
+ if (isset($this->_childProcesses[$childProcessId])) {
+ if ($this->_childProcesses[$childProcessId] instanceof ProcessInterface) {
+ $typeCode = $this->_childProcesses[$childProcessId]->getTypeCode();
+ $this->_getLogger()->info("Freeing child process related to process[$childProcessId][$typeCode].");
+ unset($this->_childProcesses[$childProcessId]);
+ }else {
+ $message = "Process associated to process[$childProcessId] is not an expected type.";
+ throw new \UnexpectedValueException($message);
+ }
+ }else {
+ throw new \LogicException("Process associated to process[$childProcessId] is not in the process pool.");
+ }
+
+ return $this;
}
- protected function _processControlWaitError()
+ public function getCountOfChildProcesses(): int
{
- $waitErrorString = var_export(pcntl_strerror(pcntl_get_last_error()), true);
- $this->_getLogger()->emergency('Received wait error, error string: "' . $waitErrorString . '".');
- $signalInformation = var_export($this->_signalInformation, true);
- $this->_getLogger()->emergency('Received wait error, signal information: ' . $signalInformation);
- throw new \RuntimeException('Unrecoverable process control wait error.');
+ return count($this->_childProcesses);
}
public function addChildProcess(ProcessInterface $childProcess): PoolInterface
{
- if ($this->isFull()) {
- throw new \LogicException('Process pool is full.');
- }else {
- $childProcess->start();
- $this->_childProcesses[$childProcess->getProcessId()] = $childProcess;
+ try{
+ $this->_getProcessSignal()->incrementWaitCount();
+ if ($this->isFull()) {
+ throw new \LogicException('Process pool is full.');
+ }else {
+ $childProcess->start();
+ $this->_childProcesses[$childProcess->getProcessId()] = $childProcess;
+ $message = "Forked process[{$childProcess->getProcessId()}][{$childProcess->getTypeCode()}].";
+ $this->_getLogger()->info($message);
+ }
+ $this->_getProcessSignal()->decrementWaitCount();
+ }catch(\Throwable $throwable){
+ $this->_getProcessSignal()->decrementWaitCount();
+ throw $throwable;
}
return $this;
@@ -99,46 +101,24 @@ public function addChildProcess(ProcessInterface $childProcess): PoolInterface
public function getChildProcess(int $childProcessId): ProcessInterface
{
if (!isset($this->_childProcesses[$childProcessId])) {
- throw new \LogicException("Process is with process ID $childProcessId not set.");
+ throw new \LogicException("Process with process ID[$childProcessId] not set.");
}
return $this->_childProcesses[$childProcessId];
}
- public function freeChildProcess(int $childProcessId): PoolInterface
- {
- if (isset($this->_childProcesses[$childProcessId])) {
- if ($this->_childProcesses[$childProcessId] instanceof ProcessInterface) {
- $typeCode = $this->_childProcesses[$childProcessId]->getTypeCode();
- $this->_getLogger()->debug("Freeing child process related to Process[$childProcessId][$typeCode].");
- unset($this->_childProcesses[$childProcessId]);
- }else {
- $message = "Process associated to Process[$childProcessId] is not an expected type.";
- throw new \UnexpectedValueException($message);
- }
- }else {
- throw new \LogicException("Process associated to Process[$childProcessId] is not in the process pool.");
- }
-
- return $this;
- }
-
public function terminateChildProcesses(): PoolInterface
{
+ $this->_getProcessSignal()->block();
if (!empty($this->_childProcesses)) {
- $numberOfProcesses = $this->getCountOfChildProcesses();
- $this->_getLogger()->debug("Sending termination signal to $numberOfProcesses child processes...");
/** @var ProcessInterface $process */
foreach ($this->_childProcesses as $process) {
$processId = $process->getProcessId();
+ $terminationSignalNumber = $process->getTerminationSignalNumber();
$processTypeCode = $process->getTypeCode();
- if ($process instanceof ListenerInterface) {
- posix_kill($processId, SIGKILL);
- $this->_getLogger()->debug("Sent SIGKILL to Process[$processId][$processTypeCode].");
- }else {
- posix_kill($processId, SIGTERM);
- $this->_getLogger()->debug("Sent SIGTERM to Process[$processId][$processTypeCode].");
- }
+ posix_kill($processId, $terminationSignalNumber);
+ $message = "Sent kill($terminationSignalNumber) to process[$processId][$processTypeCode].";
+ $this->_getLogger()->info($message);
unset($this->_childProcesses[$processId]);
}
}
diff --git a/src/Process/Pool.yml b/src/Process/Pool.yml
new file mode 100644
index 00000000..98577634
--- /dev/null
+++ b/src/Process/Pool.yml
@@ -0,0 +1,9 @@
+services:
+ neighborhoods.kojo.process.pool:
+ class: Neighborhoods\Kojo\Process\Pool
+ shared: false
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setProcessSignal, ['@process.signal']]
+ process.pool:
+ alias: neighborhoods.kojo.process.pool
\ No newline at end of file
diff --git a/src/Process/Pool/AwareTrait.php b/src/Process/Pool/AwareTrait.php
index 08409391..903b3e96 100644
--- a/src/Process/Pool/AwareTrait.php
+++ b/src/Process/Pool/AwareTrait.php
@@ -1,9 +1,9 @@
_getLogger()->info('Starting process pool server...');
if ($this->_getSemaphore()->testAndSetLock($this->_getServerSemaphoreResource())) {
$this->_getLogger()->info('Process pool server started.');
- $this->setProcessPool($this->_getProcessPoolFactory()->create());
- $this->_getProcessPool()->setProcess($this);
$this->_getProcessPool()->start();
- $this->_getProcessPool()->emptyChildProcesses();
- $this->_unsetProcessPool();
- $this->_getLogger()->info('Stopping process pool server.');
- $this->_getSemaphore()->releaseLock($this->_getServerSemaphoreResource());
- $this->_getLogger()->info('Process pool server stopped.');
+ while (true) {
+ $this->_getProcessSignal()->waitForSignal();
+ }
}else {
- $this->_getLogger()->info('Cannot obtain process pool server mutex. Quitting.');
+ $this->_getLogger()->info('Cannot obtain the process pool server mutex. Quitting.');
}
return $this;
diff --git a/src/Process/Pool/Server.yml b/src/Process/Pool/Server.yml
new file mode 100644
index 00000000..a17d5064
--- /dev/null
+++ b/src/Process/Pool/Server.yml
@@ -0,0 +1,17 @@
+services:
+ neighborhoods.kojo.process.pool.server:
+ class: Neighborhoods\Kojo\Process\Pool\Server
+ public: true
+ shared: false
+ parent: process_abstract
+ calls:
+ - [setSemaphore, ['@semaphore']]
+ - [addSemaphoreResourceFactory, ['@semaphore.resource.factory-server']]
+ - [setProcessPoolFactory, ['@process.pool.factory-server']]
+ - [setTypeCode, ['server']]
+ - [setTerminationSignalNumber, ['@=constant("SIGTERM")']]
+ - [setUuidMaximumInteger, [9999999999]]
+ - [setTitlePrefix, ['%process.title.prefix%']]
+ process.pool.server:
+ public: true
+ alias: neighborhoods.kojo.process.pool.server
\ No newline at end of file
diff --git a/src/Process/Pool/ServerInterface.php b/src/Process/Pool/ServerInterface.php
index 72a673d4..84dea3f6 100644
--- a/src/Process/Pool/ServerInterface.php
+++ b/src/Process/Pool/ServerInterface.php
@@ -1,9 +1,9 @@
_listenerProcessExited($process);
}else {
- throw new \UnexpectedValueException('Unexpected process class.');
+ $className = get_class($process);
+ throw new \UnexpectedValueException("Unexpected process class[$className].");
}
return $this;
@@ -29,11 +30,13 @@ protected function _listenerProcessExited(ListenerInterface $listenerProcess): S
if ($listenerProcess->getExitCode() !== 0) {
$this->_pauseListenerProcess($listenerProcess);
}else {
- $this->_getLogger()->debug('Processing listener messages...');
- while (!$this->_getProcessPool()->isFull() && $listenerProcess->hasMessages()) {
+ while (
+ $listenerProcess->hasMessages()
+ && !$this->_getProcessPool()->isFull()
+ && $this->_getProcessPool()->canEnvironmentSustainAdditionProcesses()
+ ) {
$listenerProcess->processMessages();
}
- $this->_getLogger()->debug('Finished processing listener messages.');
if ($this->_getProcessPool()->isFull()) {
$this->_pauseListenerProcess($listenerProcess);
@@ -68,10 +71,7 @@ public function currentPendingChildExitsCompleted(): StrategyInterface
protected function _jobProcessExited(JobInterface $jobProcess): Strategy
{
$this->_getProcessPool()->freeChildProcess($jobProcess->getProcessId());
- if ($jobProcess->getExitCode() !== 0) {
- $processId = $jobProcess->getProcessId();
- $this->_getLogger()->debug("Replacing process for exit error from Process[$processId].");
- $this->_getLogger()->debug("Throttling replacement process for Process[$processId]].");
+ if ($jobProcess->getExitCode() !== 0 && $this->_getProcessPool()->canEnvironmentSustainAdditionProcesses()) {
$typeCode = $jobProcess->getTypeCode();
$replacementProcess = $this->_getProcessCollection()->getProcessPrototypeClone($typeCode);
$replacementProcess->setThrottle($this->getChildProcessWaitThrottle());
@@ -86,11 +86,7 @@ protected function _jobProcessExited(JobInterface $jobProcess): Strategy
public function receivedAlarm(): StrategyInterface
{
- $this->_getLogger()->debug("Received alarm signal.");
- if ($this->_getProcessPool()->isFull()) {
- $this->_getLogger()->notice("Process pool is full.");
- $this->_getLogger()->notice("Could not allocate process for alarm signal.");
- }else {
+ if (!$this->_getProcessPool()->isFull() && $this->_getProcessPool()->canEnvironmentSustainAdditionProcesses()) {
if ($this->_hasPausedListenerProcess()) {
$this->_unPauseListenerProcesses();
}else {
@@ -110,10 +106,10 @@ public function initializePool(): StrategyInterface
{
$this->_getProcessPool()->setAlarm($this->getMaxAlarmTime());
$this->_getProcessCollection()->applyProcessPool($this->_getProcessPool());
- foreach ($this->_getProcessCollection()->getIterator() as $process) {
+ foreach ($this->_getProcessCollection() as $process) {
$this->_getProcessPool()->addChildProcess($process);
}
- if ($this->_hasFillProcessTypeCode()) {
+ if ($this->_hasFillProcessTypeCode() && $this->_getProcessPool()->canEnvironmentSustainAdditionProcesses()) {
while (!$this->_getProcessPool()->isFull()) {
$fillProcessTypeCode = $this->_getFillProcessTypeCode();
$fillProcess = $this->_getProcessCollection()->getProcessPrototypeClone($fillProcessTypeCode);
@@ -128,7 +124,6 @@ protected function _pauseListenerProcess(ListenerInterface $listenerProcess): St
{
$listenerProcessId = $listenerProcess->getProcessId();
if (!isset($this->_pausedListenerProcesses[$listenerProcessId])) {
- $this->_getLogger()->debug('Pausing Listener[' . $listenerProcessId . '].');
$this->_getProcessPool()->freeChildProcess($listenerProcessId);
$this->_pausedListenerProcesses[$listenerProcessId] = $listenerProcess;
}else {
@@ -149,7 +144,6 @@ protected function _unPauseListenerProcesses(): Strategy
foreach ($this->_pausedListenerProcesses as $processId => $listenerProcess) {
if (!$this->_getProcessPool()->isFull()) {
$typeCode = $listenerProcess->getTypeCode();
- $this->_getLogger()->debug('Un-pausing Listener[' . $processId . '][' . $typeCode . '].');
$newListenerProcess = $this->_getProcessCollection()->getProcessPrototypeClone($typeCode);
while (!$this->_getProcessPool()->isFull() && $listenerProcess->hasMessages()) {
$listenerProcess->processMessages();
diff --git a/src/Process/Pool/Strategy.yml b/src/Process/Pool/Strategy.yml
new file mode 100644
index 00000000..87c6f545
--- /dev/null
+++ b/src/Process/Pool/Strategy.yml
@@ -0,0 +1,32 @@
+parameters:
+ process.pool.strategy.maximum_load_average: 10.0
+ process.pool.strategy-server.maximum_load_average: 10.0
+ process.pool.strategy-job.maximum_load_average: 10.0
+services:
+ neighborhoods.kojo.process.pool.strategy:
+ shared: false
+ class: Neighborhoods\Kojo\Process\Pool\Strategy
+ calls:
+ - [setAlarmProcessTypeCode, ['job']]
+ - [setLogger, ['@process.pool.logger']]
+ - [setMaximumLoadAverage, ['%process.pool.strategy.maximum_load_average%']]
+ process.pool.strategy:
+ alias: neighborhoods.kojo.process.pool.strategy
+ neighborhoods.kojo.process.pool.strategy-server:
+ shared: false
+ class: Neighborhoods\Kojo\Process\Pool\Strategy
+ calls:
+ - [setAlarmProcessTypeCode, ['root']]
+ - [setFillProcessTypeCode, ['root']]
+ - [setLogger, ['@process.pool.logger']]
+ - [setMaximumLoadAverage, ['%process.pool.strategy-server.maximum_load_average%']]
+ process.pool.strategy-server:
+ alias: neighborhoods.kojo.process.pool.strategy-server
+ neighborhoods.kojo.process.pool.strategy-job:
+ shared: false
+ class: Neighborhoods\Kojo\Process\Pool\Strategy
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setMaximumLoadAverage, ['%process.pool.strategy-job.maximum_load_average%']]
+ process.pool.strategy-job:
+ alias: neighborhoods.kojo.process.pool.strategy-job
\ No newline at end of file
diff --git a/src/Process/Pool/Strategy/AwareTrait.php b/src/Process/Pool/Strategy/AwareTrait.php
index 58e89b36..ca0071de 100644
--- a/src/Process/Pool/Strategy/AwareTrait.php
+++ b/src/Process/Pool/Strategy/AwareTrait.php
@@ -1,9 +1,9 @@
_read(self::PROP_FILL_PROCESS_TYPE_CODE);
}
+
+ public function setMaximumLoadAverage(float $maximumLoadAverage): StrategyInterface
+ {
+ $this->_create(self::PROP_MAXIMUM_LOAD_AVERAGE, $maximumLoadAverage);
+
+ return $this;
+ }
+
+ public function getMaximumLoadAverage(): float
+ {
+ return $this->_read(self:: PROP_MAXIMUM_LOAD_AVERAGE);
+ }
}
\ No newline at end of file
diff --git a/src/Process/Pool/StrategyInterface.php b/src/Process/Pool/StrategyInterface.php
index 0fa9b309..3bca034e 100644
--- a/src/Process/Pool/StrategyInterface.php
+++ b/src/Process/Pool/StrategyInterface.php
@@ -1,14 +1,21 @@
_getLogger()->debug('Setting alarm for ' . $seconds . ' seconds.');
+ if ($seconds === 0) {
+ $this->_getLogger()->info("Disabling any existing alarm.");
+ }else {
+ $this->_getLogger()->info("Setting alarm for $seconds seconds.");
+ }
pcntl_alarm($seconds);
return $this;
@@ -35,30 +43,27 @@ public function setAlarm(int $seconds): PoolInterface
public function isEmpty(): bool
{
- return (bool)($this->getCountOfChildProcesses() === 0);
+ return ($this->getCountOfChildProcesses() === 0);
}
public function isFull(): bool
{
- if ((float)current(sys_getloadavg()) > self::MAX_LOAD_AVERAGE) {
- $isFull = true;
- }else {
- $maxChildProcesses = $this->_getProcessPoolStrategy()->getMaxChildProcesses();
- $isFull = (bool)($this->getCountOfChildProcesses() >= $maxChildProcesses);
- }
+ return ($this->getCountOfChildProcesses() >= $this->_getProcessPoolStrategy()->getMaxChildProcesses());
+ }
- return $isFull;
+ public function canEnvironmentSustainAdditionProcesses(): bool
+ {
+ return ((float)current(sys_getloadavg()) <= $this->_getProcessPoolStrategy()->getMaximumLoadAverage());
}
protected function _initialize(): PoolInterface
{
- register_shutdown_function([$this, 'terminateChildProcesses']);
$this->_getProcessPoolStrategy()->initializePool();
return $this;
}
- protected function _alarmSignal(): PoolInterface
+ protected function _alarmSignal(InformationInterface $information): PoolInterface
{
$this->_getProcessPoolStrategy()->receivedAlarm();
@@ -81,8 +86,8 @@ protected function _validateAlarm(): PoolInterface
return $this;
}
- public function getProcessPath(): string
+ public function getProcess(): ProcessInterface
{
- return $this->_getProcess()->getPath();
+ return $this->_getProcess();
}
}
\ No newline at end of file
diff --git a/src/Process/PoolInterface.php b/src/Process/PoolInterface.php
index 9f37e3a9..6c441e94 100644
--- a/src/Process/PoolInterface.php
+++ b/src/Process/PoolInterface.php
@@ -1,12 +1,13 @@
getProcessId();
+ if (isset($this->_processes[$processId])) {
+ throw new \LogicException("Process with ID[$processId] is already set.");
+ }
+
+ $this->_processes[$processId] = $process;
+
+ return $this;
+ }
+
+ public function getLastRegisteredProcess(): ProcessInterface
+ {
+ return end($this->_processes);
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Registry.yml b/src/Process/Registry.yml
new file mode 100644
index 00000000..ec5be0dd
--- /dev/null
+++ b/src/Process/Registry.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.process.registry:
+ class: Neighborhoods\Kojo\Process\Registry
+ public: false
+ shared: true
+ process.registry:
+ alias: neighborhoods.kojo.process.registry
+ public: false
\ No newline at end of file
diff --git a/src/Process/Registry/AwareTrait.php b/src/Process/Registry/AwareTrait.php
new file mode 100644
index 00000000..20e74faa
--- /dev/null
+++ b/src/Process/Registry/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(RegistryInterface::class, $registry);
+
+ return $this;
+ }
+
+ public function hasProcessRegistry(): bool
+ {
+ return $this->_exists(RegistryInterface::class);
+ }
+
+ protected function _getProcessRegistry(): RegistryInterface
+ {
+ return $this->_read(RegistryInterface::class);
+ }
+
+ protected function _getProcessRegistryClone(): RegistryInterface
+ {
+ return clone $this->_getProcessRegistry();
+ }
+
+ protected function _unsetProcessRegistry(): self
+ {
+ $this->_delete(RegistryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/RegistryInterface.php b/src/Process/RegistryInterface.php
new file mode 100644
index 00000000..ad41282d
--- /dev/null
+++ b/src/Process/RegistryInterface.php
@@ -0,0 +1,13 @@
+setTypeCode(self::TYPE_CODE);
}
- protected function _run(): Forkable
+ protected function _run(): Forked
{
- $this->setProcessPool($this->_getProcessPoolFactory()->create());
- $this->_getProcessPool()->setProcess($this);
- $this->_getProcessPool()->start();
+ while (true) {
+ $this->_getProcessSignal()->waitForSignal();
+ }
return $this;
}
diff --git a/src/Process/Root.yml b/src/Process/Root.yml
new file mode 100644
index 00000000..82c9c1b9
--- /dev/null
+++ b/src/Process/Root.yml
@@ -0,0 +1,15 @@
+services:
+ neighborhoods.kojo.process.root:
+ class: Neighborhoods\Kojo\Process\Root
+ public: true
+ shared: false
+ parent: process_abstract
+ calls:
+ - [setProcessPoolFactory, ['@process.pool.factory']]
+ - [setProcessStrategy, ['@process.strategy.process_control']]
+ - [setTerminationSignalNumber, ['@=constant("SIGTERM")']]
+ - [setUuidMaximumInteger, [9999999999]]
+ - [setTitlePrefix, ['%process.title.prefix%']]
+ process.root:
+ alias: neighborhoods.kojo.process.root
+ public: false
\ No newline at end of file
diff --git a/src/Process/Signal.php b/src/Process/Signal.php
new file mode 100644
index 00000000..3624026e
--- /dev/null
+++ b/src/Process/Signal.php
@@ -0,0 +1,125 @@
+incrementWaitCount();
+ pcntl_async_signals(true);
+ $this->_signalHandlers[$signalNumber] = $signalHandler;
+ pcntl_signal($signalNumber, [$this, 'handleSignal']);
+ $this->decrementWaitCount();
+
+ return $this;
+ }
+
+ public function incrementWaitCount(): SignalInterface
+ {
+ ++$this->_waitCount;
+
+ return $this;
+ }
+
+ public function decrementWaitCount(): SignalInterface
+ {
+ $this->block();
+ if ($this->_waitCount === 1) {
+ $this->_processBufferedSignals();
+ }
+ --$this->_waitCount;
+ $this->unBlock();
+
+ return $this;
+ }
+
+ protected function _processBufferedSignals(): SignalInterface
+ {
+ foreach ($this->_bufferedSignals as $position => $information) {
+ unset($this->_bufferedSignals[$position]);
+ call_user_func([$this->_getSignalHandler($information->getSignalNumber()), 'handleSignal'], $information);
+ }
+
+ return $this;
+ }
+
+ protected function _getSignalHandler(int $signalNumber): HandlerInterface
+ {
+ if (!isset($this->_signalHandlers[$signalNumber])) {
+ throw new \LogicException("Signal handler for signal number[$signalNumber] is not set.");
+ }
+
+ return $this->_signalHandlers[$signalNumber];
+ }
+
+ /**
+ * Signals are "blocked" by PHP while the IRQ handling logic is executed
+ * from the context of being called by the VM as a signal handler.
+ */
+ public function handleSignal(int $signalNumber, $signalInformation): void
+ {
+ if ($signalNumber === SIGCHLD) {
+ while ($childProcessId = pcntl_wait($status, WNOHANG)) {
+ if ($childProcessId == -1) {
+ $errorMessage = var_export(pcntl_strerror(pcntl_get_last_error()), true);
+ $this->_getLogger()->notice("Received a process control wait error with message[$errorMessage].");
+ break;
+ }else {
+ $this->_getLogger()->info("Child with process ID[$childProcessId] exited with status[$status].");
+ $childInformation[InformationInterface::SIGNAL_NUMBER] = SIGCHLD;
+ $childInformation[InformationInterface::PROCESS_ID] = $childProcessId;
+ $childInformation[InformationInterface::EXIT_VALUE] = $status;
+ $information = $this->_getProcessSignalInformationFactory()->create()->hydrate($childInformation);
+ $this->_bufferedSignals[] = $information;
+ }
+ }
+ }else {
+ $information = $this->_getProcessSignalInformationFactory()->create()->hydrate($signalInformation);
+ $this->_getLogger()->info("Handling signal number[{$information->getSignalNumber()}].");
+ $this->_bufferedSignals[] = $information;
+ }
+ if ($this->_waitCount === 0) {
+ $this->_processBufferedSignals();
+ }
+
+ return;
+ }
+
+ public function waitForSignal(): SignalInterface
+ {
+ $this->block();
+ $signalNumber = pcntl_sigwaitinfo(array_keys($this->_signalHandlers), $signalInformation);
+ $this->handleSignal($signalNumber, $signalInformation);
+ $this->unBlock();
+
+ return $this;
+ }
+
+ public function block(): SignalInterface
+ {
+ pcntl_sigprocmask(SIG_BLOCK, array_keys($this->_signalHandlers));
+
+ return $this;
+ }
+
+ public function unBlock(): SignalInterface
+ {
+ pcntl_sigprocmask(SIG_UNBLOCK, array_keys($this->_signalHandlers));
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal.yml b/src/Process/Signal.yml
new file mode 100644
index 00000000..d7e0d701
--- /dev/null
+++ b/src/Process/Signal.yml
@@ -0,0 +1,11 @@
+services:
+ neighborhoods.kojo.process.signal:
+ class: Neighborhoods\Kojo\Process\Signal
+ public: false
+ shared: true
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setProcessSignalInformationFactory, ['@process.signal.information.factory']]
+ process.signal:
+ alias: neighborhoods.kojo.process.signal
+ public: false
\ No newline at end of file
diff --git a/src/Process/Signal/AwareTrait.php b/src/Process/Signal/AwareTrait.php
new file mode 100644
index 00000000..7fdd4e9a
--- /dev/null
+++ b/src/Process/Signal/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(SignalInterface::class, $processSignal);
+
+ return $this;
+ }
+
+ protected function _getProcessSignal(): SignalInterface
+ {
+ return $this->_read(SignalInterface::class);
+ }
+
+ protected function _getProcessSignalClone(): SignalInterface
+ {
+ return clone $this->_getProcessSignal();
+ }
+
+ protected function _hasProcessSignal(): bool
+ {
+ return $this->_exists(SignalInterface::class);
+ }
+
+ protected function _unsetProcessSignal(): self
+ {
+ $this->_delete(SignalInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal/HandlerInterface.php b/src/Process/Signal/HandlerInterface.php
new file mode 100644
index 00000000..9786ad90
--- /dev/null
+++ b/src/Process/Signal/HandlerInterface.php
@@ -0,0 +1,9 @@
+_information === null) {
+ $this->_information = $information;
+ }
+
+ return $this;
+ }
+
+ public function getSignalNumber(): int
+ {
+ if (!isset($this->_information[self::SIGNAL_NUMBER])) {
+ throw new \RuntimeException('Signal number is not set.');
+ }
+
+ return $this->_information[self::SIGNAL_NUMBER];
+ }
+
+ public function getErrorNumber(): int
+ {
+ if (!isset($this->_information[self::ERROR_NUMBER])) {
+ throw new \RuntimeException('Error number is not set.');
+ }
+
+ return $this->_information[self::ERROR_NUMBER];
+ }
+
+ public function getSignalCode(): int
+ {
+ if (!isset($this->_information[self::SIGNAL_CODE])) {
+ throw new \RuntimeException('Signal code is not set.');
+ }
+
+ return $this->_information[self::SIGNAL_CODE];
+ }
+
+ public function hasExitValue(): bool
+ {
+ return isset($this->_information[self::EXIT_VALUE]) ? true : false;
+ }
+
+ public function getExitValue(): int
+ {
+ if (!isset($this->_information[self::EXIT_VALUE])) {
+ throw new \LogicException('Exit value is not set.');
+ }
+
+ return $this->_information[self::EXIT_VALUE];
+ }
+
+ public function hasUserTimeConsumed(): bool
+ {
+ return isset($this->_information[self::USER_TIME_CONSUMED]) ? true : false;
+ }
+
+ public function getUserTimeConsumed(): int
+ {
+ if (!isset($this->_information[self::USER_TIME_CONSUMED])) {
+ throw new \LogicException('User time consumed is not set.');
+ }
+
+ return $this->_information[self::USER_TIME_CONSUMED];
+ }
+
+ public function hasSystemTimeConsumed(): bool
+ {
+ return isset($this->_information[self::SYSTEM_TIME_CONSUMED]) ? true : false;
+ }
+
+ public function getSystemTimeConsumed(): int
+ {
+ if (!isset($this->_information[self::SYSTEM_TIME_CONSUMED])) {
+ throw new \LogicException('System time consumed is not set.');
+ }
+
+ return $this->_information[self::SYSTEM_TIME_CONSUMED];
+ }
+
+ public function hasProcessId(): bool
+ {
+ return isset($this->_information[self::PROCESS_ID]) ? true : false;
+ }
+
+ public function getProcessId(): int
+ {
+ if (!isset($this->_information[self::PROCESS_ID])) {
+ throw new \LogicException('Process ID is not set.');
+ }
+
+ return $this->_information[self::PROCESS_ID];
+ }
+
+ public function hasUserId(): bool
+ {
+ return isset($this->_information[self::USER_ID]) ? true : false;
+ }
+
+ public function getUserId(): int
+ {
+ if (!isset($this->_information[self::USER_ID])) {
+ throw new \LogicException('User ID is not set.');
+ }
+
+ return $this->_information[self::USER_ID];
+ }
+
+ public function hasSegmentationFaultAddress(): bool
+ {
+ return isset($this->_information[self::SEGMENTATION_FAULT_ADDRESS]) ? true : false;
+ }
+
+ public function getSegmentationFaultAddress(): int
+ {
+ if (!isset($this->_information[self::SEGMENTATION_FAULT_ADDRESS])) {
+ throw new \LogicException('Segmentation fault address is not set.');
+ }
+
+ return $this->_information[self::SEGMENTATION_FAULT_ADDRESS];
+ }
+
+ public function hasBandEvent(): bool
+ {
+ return isset($this->_information[self::BAND_EVENT]) ? true : false;
+ }
+
+ public function getBandEvent(): int
+ {
+ if (!isset($this->_information[self::BAND_EVENT])) {
+ throw new \LogicException('Band event is not set.');
+ }
+
+ return $this->_information[self::BAND_EVENT];
+ }
+
+ public function hasFileDescriptorNumber(): bool
+ {
+ return isset($this->_information[self::FILE_DESCRIPTOR_NUMBER]) ? true : false;
+ }
+
+ public function getFileDescriptorNumber(): int
+ {
+ if (!isset($this->_information[self::FILE_DESCRIPTOR_NUMBER])) {
+ throw new \LogicException('File descriptor number is not set.');
+ }
+
+ return $this->_information[self::FILE_DESCRIPTOR_NUMBER];
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal/Information.yml b/src/Process/Signal/Information.yml
new file mode 100644
index 00000000..10335c39
--- /dev/null
+++ b/src/Process/Signal/Information.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.process.signal.information:
+ class: Neighborhoods\Kojo\Process\Signal\Information
+ public: false
+ shared: false
+ process.signal.information:
+ public: false
+ alias: neighborhoods.kojo.process.signal.information
\ No newline at end of file
diff --git a/src/Process/Signal/Information/AwareTrait.php b/src/Process/Signal/Information/AwareTrait.php
new file mode 100644
index 00000000..22c21a3e
--- /dev/null
+++ b/src/Process/Signal/Information/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(InformationInterface::class, $processSignalInformation);
+
+ return $this;
+ }
+
+ protected function _getProcessSignalInformation(): InformationInterface
+ {
+ return $this->_read(InformationInterface::class);
+ }
+
+ protected function _getProcessSignalInformationClone(): InformationInterface
+ {
+ return clone $this->_getProcessSignalInformation();
+ }
+
+ protected function _hasProcessSignalInformation(): bool
+ {
+ return $this->_exists(InformationInterface::class);
+ }
+
+ protected function _unsetProcessSignalInformation(): self
+ {
+ $this->_delete(InformationInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal/Information/Factory.php b/src/Process/Signal/Information/Factory.php
new file mode 100644
index 00000000..a9185d0b
--- /dev/null
+++ b/src/Process/Signal/Information/Factory.php
@@ -0,0 +1,20 @@
+_getProcessSignalInformationClone();
+
+ return $signalInformation;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal/Information/Factory.yml b/src/Process/Signal/Information/Factory.yml
new file mode 100644
index 00000000..2c7b68cc
--- /dev/null
+++ b/src/Process/Signal/Information/Factory.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.process.signal.information.factory:
+ class: Neighborhoods\Kojo\Process\Signal\Information\Factory
+ public: false
+ shared: false
+ calls:
+ - [setProcessSignalInformation, ['@process.signal.information']]
+ process.signal.information.factory:
+ public: false
+ alias: neighborhoods.kojo.process.signal.information.factory
\ No newline at end of file
diff --git a/src/Process/Signal/Information/Factory/AwareTrait.php b/src/Process/Signal/Information/Factory/AwareTrait.php
new file mode 100644
index 00000000..952595cd
--- /dev/null
+++ b/src/Process/Signal/Information/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $processSignalInformationFactory);
+
+ return $this;
+ }
+
+ protected function _getProcessSignalInformationFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _getProcessSignalInformationFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getProcessSignalInformationFactory();
+ }
+
+ protected function _hasProcessSignalInformationFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetProcessSignalInformationFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Process/Signal/Information/FactoryInterface.php b/src/Process/Signal/Information/FactoryInterface.php
new file mode 100644
index 00000000..7b273874
--- /dev/null
+++ b/src/Process/Signal/Information/FactoryInterface.php
@@ -0,0 +1,11 @@
+_setParentProcessId(posix_getppid());
- $this->_setProcessId(posix_getpid());
- $this->_getLogger()->setProcess($this);
- $this->_registerSignalHandlers();
- cli_set_process_title($this->getPath());
- }else {
- $this->_setProcessId($processId);
+ use Apm\NewRelic\AwareTrait;
+ protected $_exitCode = 0;
+
+ protected function _initialize(): ProcessAbstract
+ {
+ $this->_getApmNewRelic()->ignoreTransaction();
+ $this->_getApmNewRelic()->endTransaction();
+ $this->_getProcessSignal()->incrementWaitCount();
+ $this->_setParentProcessId(posix_getppid());
+ $this->_setProcessId(posix_getpid());
+
+ $this->_getLogger()->setProcess($this);
+ if ($this->_hasProcessPool()) {
+ $this->_getProcessPool()->emptyChildProcesses();
+ $this->_getProcessPool()->getProcess()->unregisterShutdownMethod();
+ $this->_unsetProcessPool();
}
+ $this->setProcessPool($this->_getProcessPoolFactory()->create());
+ $this->_getProcessPool()->setProcess($this);
+ $this->_registerSignalHandlers();
+ $this->_registerShutdownMethod();
+ $this->_getProcessRegistry()->pushProcess($this);
+ $this->_setProcessTitle();
+ $this->_getProcessSignal()->decrementWaitCount();
return $this;
}
protected function _registerSignalHandlers(): ProcessInterface
{
- pcntl_signal(SIGTERM, [$this, 'receivedSignal']);
- pcntl_signal(SIGINT, [$this, 'receivedSignal']);
+ $this->_getProcessSignal()->addSignalHandler(SIGCHLD, $this->_getProcessPool());
+ $this->_getProcessSignal()->addSignalHandler(SIGALRM, $this->_getProcessPool());
+ $this->_getProcessSignal()->addSignalHandler(SIGTERM, $this);
+ $this->_getProcessSignal()->addSignalHandler(SIGINT, $this);
+ $this->_getProcessSignal()->addSignalHandler(SIGHUP, $this);
+ $this->_getProcessSignal()->addSignalHandler(SIGQUIT, $this);
+ $this->_getProcessSignal()->addSignalHandler(SIGABRT, $this);
+
+ return $this;
+ }
+
+ protected function _setProcessTitle(): ProcessInterface
+ {
+ $this->_create(self::PROP_IS_PROCESS_TITLE_SET, true);
+ cli_set_process_title($this->_getTitlePrefix() . $this->getPath());
+
+ return $this;
+ }
+
+ public function setTitlePrefix(string $titlePrefix): ProcessInterface
+ {
+ $this->_create(self::PROP_TITLE_PREFIX, $titlePrefix);
+
+ return $this;
+ }
+
+ protected function _getTitlePrefix(): string
+ {
+ return $this->_read(self::PROP_TITLE_PREFIX);
+ }
+
+ public function handleSignal(InformationInterface $information): HandlerInterface
+ {
+ $this->_getProcessSignal()->block();
+ $this->exit();
+
+ return $this;
+ }
+
+ protected function _setOrReplaceExitCode(int $exitCode): ProcessInterface
+ {
+ $this->_exitCode = $exitCode;
+
+ return $this;
+ }
+
+ public function exit(): void
+ {
+ $this->_getProcessSignal()->block();
+ $this->unregisterShutdownMethod();
+ $this->_getProcessPool()->terminateChildProcesses();
+ exit($this->_exitCode);
+ }
+
+ public function shutdown(): ProcessInterface
+ {
+ if ($this->_read(self::PROP_IS_SHUTDOWN_METHOD_ACTIVE)) {
+ $this->_getLogger()->critical("Shutdown method invoked.");
+ $this->_setOrReplaceExitCode(255);
+ $this->exit();
+ }
+
+ return $this;
+ }
+
+ protected function _registerShutdownMethod(): ProcessInterface
+ {
+ $this->_create(self::PROP_IS_SHUTDOWN_METHOD_ACTIVE, true);
+ register_shutdown_function([$this, 'shutdown']);
+
+ return $this;
+ }
+
+ public function unregisterShutdownMethod(): ProcessInterface
+ {
+ $this->_update(self::PROP_IS_SHUTDOWN_METHOD_ACTIVE, false);
return $this;
}
@@ -125,14 +210,66 @@ public function getExitCode(): int
return $this->_read(self::PROP_EXIT_CODE);
}
- public function receivedSignal()
+ public function setTerminationSignalNumber(int $terminationSignalNumber): ProcessInterface
+ {
+ $this->_create(self::PROP_TERMINATION_SIGNAL_NUMBER, $terminationSignalNumber);
+
+ return $this;
+ }
+
+ public function getTerminationSignalNumber(): int
+ {
+ return $this->_read(self::PROP_TERMINATION_SIGNAL_NUMBER);
+ }
+
+ public function getParentProcessTerminationSignalNumber(): int
+ {
+ return $this->_read(self::PROP_PARENT_PROCESS_TERMINATION_SIGNAL_NUMBER);
+ }
+
+ public function setParentProcessTerminationSignalNumber(int $parentProcessTerminationSignalNumber)
+ {
+ $this->_create(self::PROP_PARENT_PROCESS_TERMINATION_SIGNAL_NUMBER, $parentProcessTerminationSignalNumber);
+
+ return $this;
+ }
+
+ public function setParentProcessUuid(string $parentProcessUuid): ProcessInterface
+ {
+ $this->_create(self::PROP_PARENT_PROCESS_UUID, $parentProcessUuid);
+
+ return $this;
+ }
+
+ public function getParentProcessUuid(): string
{
- $this->_exit(0);
+ return $this->_read(self::PROP_PARENT_PROCESS_UUID);
+ }
+
+ public function getUuid(): string
+ {
+ if (!$this->_exists(self::PROP_UUID)) {
+ $hostname = gethostname();
+ $processUuid = $hostname
+ . '-' . gethostbyname($hostname)
+ . '-' . $this->getPath()
+ . '-' . sprintf('%f', microtime(true))
+ . '-' . random_int(0, $this->_getUuidMaximumInteger());
+ $this->_create(self::PROP_UUID, $processUuid);
+ }
+
+ return $this->_read(self::PROP_UUID);
+ }
+
+ public function setUuidMaximumInteger(int $uuidMaximumInteger): ProcessInterface
+ {
+ $this->_create(self::PROP_UUID_MAXIMUM_INTEGER, $uuidMaximumInteger);
+
+ return $this;
}
- protected function _exit(int $exitCode)
+ protected function _getUuidMaximumInteger(): int
{
- $this->_getLogger()->debug("Exiting Process.");
- exit($exitCode);
+ return $this->_read(self::PROP_UUID_MAXIMUM_INTEGER);
}
}
\ No newline at end of file
diff --git a/src/ProcessAbstract.yml b/src/ProcessAbstract.yml
new file mode 100644
index 00000000..675a20d9
--- /dev/null
+++ b/src/ProcessAbstract.yml
@@ -0,0 +1,14 @@
+services:
+ neighborhoods.kojo.process_abstract:
+ class: Neighborhoods\Kojo\ProcessAbstract
+ abstract: true
+ public: false
+ shared: false
+ calls:
+ - [setProcessRegistry, ['@process.registry']]
+ - [setLogger, ['@process.pool.logger']]
+ - [setProcessSignal, ['@process.signal']]
+ - [setApmNewRelic, ['@apm.new_relic']]
+ process_abstract:
+ alias: neighborhoods.kojo.process_abstract
+ public: false
\ No newline at end of file
diff --git a/src/ProcessInterface.php b/src/ProcessInterface.php
index e54f3f04..bd358bd3 100644
--- a/src/ProcessInterface.php
+++ b/src/ProcessInterface.php
@@ -1,13 +1,30 @@
connect($this->_getHost(), $this->_getPort());
+ if ($this->_hasOptions()) {
+ foreach ($this->_getOptions() as $optionName => $optionValue) {
+ $redis->setOption($optionName, $optionValue);
+ }
+ }
+
+ return $redis;
+ }
+
+ public function setPort(int $port): FactoryInterface
+ {
+ $this->_create(self::PROP_PORT, $port);
+
+ return $this;
+ }
+
+ protected function _getPort(): int
+ {
+ return $this->_read(self::PROP_PORT);
+ }
+
+ public function setHost(string $host): FactoryInterface
+ {
+ $this->_create(self::PROP_HOST, $host);
+
+ return $this;
+ }
+
+ protected function _getHost(): string
+ {
+ return $this->_read(self::PROP_HOST);
+ }
+
+ public function addOption(int $optionName, string $optionValue): FactoryInterface
+ {
+ if (isset($this->_options[$optionName])) {
+ $optionValue = $this->_options[$optionName];
+ throw new \LogicException("Option [$optionName] is already set with value [$optionValue].");
+ }
+
+ $this->_options[$optionName] = $optionValue;
+
+ return $this;
+ }
+
+ protected function _hasOptions(): bool
+ {
+ return !empty($this->_options);
+ }
+
+ protected function _getOptions(): array
+ {
+ return $this->_options;
+ }
+}
\ No newline at end of file
diff --git a/src/Redis/Factory.yml b/src/Redis/Factory.yml
new file mode 100644
index 00000000..484d0f75
--- /dev/null
+++ b/src/Redis/Factory.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.redis.factory:
+ class: Neighborhoods\Kojo\Redis\Factory
+ public: false
+ shared: true
+ calls:
+ - [addOption, [!php/const \Redis::OPT_READ_TIMEOUT, '-1']]
+ - [setHost, ['%neighborhoods.kojo.environment.parameters.redis_host%']]
+ - [setPort, ['%neighborhoods.kojo.environment.parameters.redis_port%']]
+ redis.factory:
+ alias: neighborhoods.kojo.redis.factory
+ public: false
\ No newline at end of file
diff --git a/src/Redis/Factory/AwareTrait.php b/src/Redis/Factory/AwareTrait.php
new file mode 100644
index 00000000..4b4a8b2c
--- /dev/null
+++ b/src/Redis/Factory/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(FactoryInterface::class, $factory);
+
+ return $this;
+ }
+
+ protected function _hasRedisFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _getRedisFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _getRedisFactoryClone(): FactoryInterface
+ {
+ return clone $this->_getRedisFactory();
+ }
+
+ protected function _unsetRedisFactory()
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Redis/FactoryInterface.php b/src/Redis/FactoryInterface.php
new file mode 100644
index 00000000..6435eb87
--- /dev/null
+++ b/src/Redis/FactoryInterface.php
@@ -0,0 +1,20 @@
+_getProcessRegistry()->getLastRegisteredProcess()->getUuid();
+ if (!isset($this->_redisCollection[$id])) {
+ $this->_redisCollection[$id] = $this->_getRedisFactory()->create();
+ }
+
+ return $this->_redisCollection[$id];
+ }
+}
\ No newline at end of file
diff --git a/src/Redis/Repository.yml b/src/Redis/Repository.yml
new file mode 100644
index 00000000..673e3985
--- /dev/null
+++ b/src/Redis/Repository.yml
@@ -0,0 +1,11 @@
+services:
+ neighborhoods.kojo.redis.repository:
+ class: Neighborhoods\Kojo\Redis\Repository
+ public: false
+ shared: true
+ calls:
+ - [setProcessRegistry, ['@process.registry']]
+ - [setRedisFactory, ['@redis.factory']]
+ redis.repository:
+ alias: neighborhoods.kojo.redis.repository
+ public: false
\ No newline at end of file
diff --git a/src/Redis/Repository/AwareTrait.php b/src/Redis/Repository/AwareTrait.php
new file mode 100644
index 00000000..fa6121a1
--- /dev/null
+++ b/src/Redis/Repository/AwareTrait.php
@@ -0,0 +1,38 @@
+_create(RepositoryInterface::class, $redisRepository);
+
+ return $this;
+ }
+
+ protected function _getRedisRepository(): RepositoryInterface
+ {
+ return $this->_read(RepositoryInterface::class);
+ }
+
+ protected function _getRedisRepositoryClone(): RepositoryInterface
+ {
+ return clone $this->_getRedisRepository();
+ }
+
+ protected function _hasRedisRepository(): bool
+ {
+ return $this->_exists(RepositoryInterface::class);
+ }
+
+ protected function _unsetRedisRepository(): self
+ {
+ $this->_delete(RepositoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Redis/RepositoryInterface.php b/src/Redis/RepositoryInterface.php
new file mode 100644
index 00000000..bffb42d3
--- /dev/null
+++ b/src/Redis/RepositoryInterface.php
@@ -0,0 +1,15 @@
+format(self::DATE_TIME_FORMAT_CACHE_MINUTE);
- $cacheItemPool = $this->_getCacheItemPool();
+ $cacheItemPool = $this->_getCacheItemPoolRepository()->getById(self::CACHE_ITEM_POOL_ID);
$hasItem = $cacheItemPool->hasItem(self::CACHE_SCHEDULED_AHEAD_KEY_PREFIX . $referenceMinuteDateTimeString);
if ($hasItem) {
$isMinuteScheduled = true;
@@ -60,7 +60,7 @@ protected function _getScheduledKeyLifetime(): \DateTime
public function cacheScheduledMinutes(\DateTime $scheduledMinute): CacheInterface
{
- $cacheItemPool = $this->_getCacheItemPool();
+ $cacheItemPool = $this->_getCacheItemPoolRepository()->getById(self::CACHE_ITEM_POOL_ID);
$cachedMinuteDateTimeString = $scheduledMinute->format(self::DATE_TIME_FORMAT_CACHE_MINUTE);
$cacheItem = $cacheItemPool->getItem(self::CACHE_SCHEDULED_AHEAD_KEY_PREFIX . $cachedMinuteDateTimeString);
$cacheItem->set(self::CACHE_SCHEDULED_AHEAD_VALUE);
diff --git a/src/Scheduler/Cache.yml b/src/Scheduler/Cache.yml
new file mode 100644
index 00000000..16a4ede3
--- /dev/null
+++ b/src/Scheduler/Cache.yml
@@ -0,0 +1,10 @@
+services:
+ neighborhoods.kojo.scheduler.cache:
+ class: Neighborhoods\Kojo\Scheduler\Cache
+ shared: true
+ calls:
+ - [setSchedulerTime, ['@scheduler.time']]
+ - [setCacheItemPoolRepository, ['@cache_item_pool.repository']]
+ - [setTime, ['@neighborhoods.pylon.time']]
+ scheduler.cache:
+ alias: neighborhoods.kojo.scheduler.cache
\ No newline at end of file
diff --git a/src/Scheduler/Cache/AwareTrait.php b/src/Scheduler/Cache/AwareTrait.php
index 02c5f766..2cf39713 100644
--- a/src/Scheduler/Cache/AwareTrait.php
+++ b/src/Scheduler/Cache/AwareTrait.php
@@ -1,9 +1,9 @@
offset($this->_collectionIterations * $this->_getPageSize());
$select->limit($this->_getPageSize());
$jobCandidates = $this->_getSelectorJobCollection()->getModelsArray();
+ $numberOfJobCandidates = count($jobCandidates);
$publishedMessages = $this->_getMessageBroker()->getPublishChannelLength();
- foreach ($this->_getSelectorJobCollection()->getIterator() as $jobCandidate) {
- $processTypeCode = $jobCandidate->getProcessTypeCode();
- $message = json_encode(['command' => "commandProcess.addProcess('$processTypeCode')"]);
- $this->_getMessageBroker()->publishMessage($message);
- ++$publishedMessages;
- if ($publishedMessages >= count($jobCandidates)) {
+ while (true) {
+ $message = json_encode(['command' => "commandProcess.addProcess('job')"]);
+ if ($publishedMessages >= $numberOfJobCandidates) {
break;
}
+ $this->_getMessageBroker()->publishMessage($message);
+ $publishedMessages = $this->_getMessageBroker()->getPublishChannelLength();
}
- $select->where->and->equalTo(JobInterface::FIELD_NAME_PROCESS_TYPE_CODE, $this->_getProcess()->getTypeCode());
while (!empty($jobCandidates)) {
foreach ($this->_getSelectorJobCollection()->getIterator() as $jobCandidate) {
diff --git a/src/config/Selector.yml b/src/Selector.yml
similarity index 75%
rename from src/config/Selector.yml
rename to src/Selector.yml
index cabc7e62..1ce59e5c 100644
--- a/src/config/Selector.yml
+++ b/src/Selector.yml
@@ -1,6 +1,7 @@
services:
- nhds.jobs.selector:
- class: NHDS\Jobs\Selector
+ neighborhoods.kojo.selector:
+ class: Neighborhoods\Kojo\Selector
+ public: false
shared: true
calls:
- [setPageSize, [50]]
@@ -13,4 +14,5 @@ services:
- [setStateService, ['@state.service']]
- [setRandomIntMax, [10]]
selector:
- alias: nhds.jobs.selector
\ No newline at end of file
+ alias: neighborhoods.kojo.selector
+ public: false
\ No newline at end of file
diff --git a/src/Selector/AwareTrait.php b/src/Selector/AwareTrait.php
index ee049b37..0052468a 100644
--- a/src/Selector/AwareTrait.php
+++ b/src/Selector/AwareTrait.php
@@ -1,9 +1,9 @@
_create(SemaphoreInterface::class, $semaphore);
@@ -23,4 +23,16 @@ protected function _getSemaphoreClone(): SemaphoreInterface
{
return clone $this->_getSemaphore();
}
+
+ protected function _hasSemaphore(): bool
+ {
+ return $this->_exists(SemaphoreInterface::class);
+ }
+
+ protected function _unsetSemaphore(): self
+ {
+ $this->_delete(SemaphoreInterface::class);
+
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/Semaphore/Mutex/AwareTrait.php b/src/Semaphore/Mutex/AwareTrait.php
index ce1aeda8..b758af7e 100644
--- a/src/Semaphore/Mutex/AwareTrait.php
+++ b/src/Semaphore/Mutex/AwareTrait.php
@@ -1,9 +1,9 @@
_hasLock === false) {
if (flock($this->_getLockFilePointer(), $this->_getFlockLockOperation()) === true) {
- $this->_getLogger()->debug('Obtained lock for file "' . $this->_getFilePath() . '".');
$this->_hasLock = true;
}
}else {
@@ -44,7 +43,6 @@ public function releaseLock(): MutexInterface
if (flock($this->_getLockFilePointer(), LOCK_UN) === false) {
$this->_throwNewFilesystemException(Runtime\Filesystem::CODE_UNLOCK_FAILED);
}
- $this->_getLogger()->debug('Released lock for file "' . $this->_getFilePath() . '".');
$this->_hasLock = false;
if (fclose($this->_getLockFilePointer()) === false) {
$this->_throwNewFilesystemException(Runtime\Filesystem::CODE_FCLOSE_FAILED);
diff --git a/src/config/Semaphore/Mutex/Flock.yml b/src/Semaphore/Mutex/Flock.yml
similarity index 59%
rename from src/config/Semaphore/Mutex/Flock.yml
rename to src/Semaphore/Mutex/Flock.yml
index e9c99ec8..f8d13655 100644
--- a/src/config/Semaphore/Mutex/Flock.yml
+++ b/src/Semaphore/Mutex/Flock.yml
@@ -1,6 +1,6 @@
services:
- nhds.jobs.semaphore.mutex.flock:
- class: NHDS\Jobs\Semaphore\Mutex\Flock
+ neighborhoods.kojo.semaphore.mutex.flock:
+ class: Neighborhoods\Kojo\Semaphore\Mutex\Flock
shared: false
calls:
- [setFileMode, ['c']]
@@ -8,4 +8,4 @@ services:
- [setDirectoryPathPrefix, ['/tmp/']]
- [setLogger, ['@process.pool.logger']]
semaphore.mutex.flock:
- alias: nhds.jobs.semaphore.mutex.flock
\ No newline at end of file
+ alias: neighborhoods.kojo.semaphore.mutex.flock
\ No newline at end of file
diff --git a/src/Semaphore/Mutex/Redis.php b/src/Semaphore/Mutex/Redis.php
new file mode 100644
index 00000000..cb6e175e
--- /dev/null
+++ b/src/Semaphore/Mutex/Redis.php
@@ -0,0 +1,117 @@
+_hasLock === false) {
+ $key = $this->_getKey();
+ $processUUID = $this->_getProcessUuid();
+ $this->_getRedisClient()->watch($key);
+
+ // If the mutex resource ID is set, then check if the owning client is connected.
+ $mutexKeyValue = $this->_getRedisClient()->get($key);
+ if (!empty($mutexKeyValue)) {
+ $mutexClientIsConnected = false;
+
+ // Get a list of connected clients.
+ $clients = $this->_getRedisClient()->client('LIST');
+ foreach ($clients as $client) {
+ if ($client['name'] === $mutexKeyValue) {
+ $mutexClientIsConnected = true;
+ break;
+ }
+ }
+
+ // If the client that registered for the mutex resource ID is connected, the mutex is held by another client.
+ if ($mutexClientIsConnected === false) {
+ // If not, try to obtain the lock by registering on the mutex resource ID.
+ $this->_getRedisClient()->multi();
+ $this->_getRedisClient()->set($key, $processUUID);
+ $reply = $this->_getRedisClient()->exec();
+
+ // If the mutex resource ID was not set by another client, the mutex is obtained by this client.
+ if ($reply[0] === true) {
+ $this->_hasLock = true;
+ }
+ }
+ }else {
+ // If the mutex resource ID is not set, try to obtain the mutex.
+ $this->_getRedisClient()->multi();
+ $this->_getRedisClient()->set($key, $processUUID);
+ $reply = $this->_getRedisClient()->exec();
+ if (is_array($reply) && $reply[0] === true) {
+ $this->_hasLock = true;
+ }elseif ($reply !== false) {
+ $type = gettype($reply);
+ throw new \UnexpectedValueException("Reply is of type [$type]");
+ }
+ }
+ }else {
+ throw new \LogicException('The mutex already has obtained a lock.');
+ }
+
+ return $this->_hasLock;
+ }
+
+ public function releaseLock(): MutexInterface
+ {
+ if ($this->_hasLock === true) {
+ $this->_getRedisClient()->del($this->_getKey());
+ $this->_hasLock = false;
+ }else {
+ throw new \LogicException('The mutex has not obtained a lock.');
+ }
+
+ return $this;
+ }
+
+ public function hasLock(): bool
+ {
+ return $this->_hasLock;
+ }
+
+ protected function _getProcessUuid(): string
+ {
+ return $this->_getProcessRegistry()->getLastRegisteredProcess()->getUuid();
+ }
+
+ protected function _getKey(): string
+ {
+ if (!$this->_exists(self::PROP_KEY)) {
+ $key = '/' . $this->_getResource()->getResourcePath() . '/' . $this->_getResource()->getResourceName();
+ $this->_create(self::PROP_KEY, $key);
+ }
+
+ return $this->_read(self::PROP_KEY);
+ }
+
+ protected function _getRedisClient(): \Redis
+ {
+ if (!$this->_exists(self::PROP_REDIS)) {
+ $redis = $this->_getRedisRepository()->getById(RedisInterface::class);
+ $redis->client('SETNAME', $this->_getProcessUuid());
+ $this->_create(self::PROP_REDIS, $redis);
+ }
+
+ return $this->_read(self::PROP_REDIS);
+ }
+}
\ No newline at end of file
diff --git a/src/Semaphore/Mutex/Redis.yml b/src/Semaphore/Mutex/Redis.yml
new file mode 100644
index 00000000..790bb6ee
--- /dev/null
+++ b/src/Semaphore/Mutex/Redis.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.semaphore.mutex.redis:
+ class: Neighborhoods\Kojo\Semaphore\Mutex\Redis
+ shared: false
+ public: false
+ calls:
+ - [setLogger, ['@process.pool.logger']]
+ - [setRedisRepository, ['@redis.repository']]
+ - [setProcessRegistry, ['@process.registry']]
+ semaphore.mutex.redis:
+ alias: neighborhoods.kojo.semaphore.mutex.redis
+ public: false
\ No newline at end of file
diff --git a/src/Semaphore/Mutex/RedisInterface.php b/src/Semaphore/Mutex/RedisInterface.php
new file mode 100644
index 00000000..0d0254c2
--- /dev/null
+++ b/src/Semaphore/Mutex/RedisInterface.php
@@ -0,0 +1,10 @@
+_read(ResourceInterface::class);
}
+
+ protected function _hasSemaphoreResource(): bool
+ {
+ return $this->_exists(SemaphoreInterface::class);
+ }
+
+ protected function _unsetSemaphoreResource(): self
+ {
+ $this->_delete(SemaphoreInterface::class);
+
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/Semaphore/Resource/Factory.php b/src/Semaphore/Resource/Factory.php
index fd88940c..ad2efa49 100644
--- a/src/Semaphore/Resource/Factory.php
+++ b/src/Semaphore/Resource/Factory.php
@@ -1,11 +1,11 @@
_exists(self::PROP_IMPORTANCE)) {
$importance = $this->_read(self::PROP_IMPORTANCE);
}else {
- $importance = (int) $persistentJobTypeProperties[Job\TypeInterface::FIELD_NAME_DEFAULT_IMPORTANCE];
+ $importance = (int)$persistentJobTypeProperties[Job\TypeInterface::FIELD_NAME_DEFAULT_IMPORTANCE];
}
unset($persistentJobTypeProperties[Job\TypeInterface::FIELD_NAME_DEFAULT_IMPORTANCE]);
}else {
- throw new \RuntimeException('Job type with type code ' . $jobType->getCode() . 'is not enabled.');
+ throw new \RuntimeException('Job type with type code[' . $jobType->getCode() . '] is not enabled.');
}
$job = $this->_getJob();
diff --git a/src/Service/Create.yml b/src/Service/Create.yml
new file mode 100644
index 00000000..281dcf4f
--- /dev/null
+++ b/src/Service/Create.yml
@@ -0,0 +1,9 @@
+services:
+ neighborhoods.kojo.service.create:
+ class: Neighborhoods\Kojo\Service\Create
+ shared: false
+ calls:
+ - [setTypeRepository, ['@type.repository']]
+ - [setTime, ['@neighborhoods.pylon.time']]
+ service.create:
+ alias: neighborhoods.kojo.service.create
\ No newline at end of file
diff --git a/src/Service/Create/AwareTrait.php b/src/Service/Create/AwareTrait.php
index 8b600f8e..9fdd5cf8 100644
--- a/src/Service/Create/AwareTrait.php
+++ b/src/Service/Create/AwareTrait.php
@@ -1,9 +1,9 @@
_create(FactoryInterface::class, $updateCrashFactory);
+ $this->_create(FactoryInterface::class, $serviceCreateFactory);
return $this;
}
@@ -19,7 +20,12 @@ protected function _getServiceCreateFactory(): FactoryInterface
return $this->_read(FactoryInterface::class);
}
- protected function _unsetServiceCreateFactory()
+ protected function _hasServiceCreateFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetServiceCreateFactory(): self
{
$this->_delete(FactoryInterface::class);
diff --git a/src/Service/Create/FactoryInterface.php b/src/Service/Create/FactoryInterface.php
index 89a63f38..e204ac1e 100644
--- a/src/Service/Create/FactoryInterface.php
+++ b/src/Service/Create/FactoryInterface.php
@@ -1,21 +1,25 @@
_getServiceUpdateCompleteSuccess();
+ $updateCompleteSuccess = $this->_getServiceUpdateCompleteSuccessClone();
$stateService = $this->_getStateServiceClone();
$updateCompleteSuccess->setStateService($stateService);
diff --git a/src/Service/Update/Complete/Success/Factory.yml b/src/Service/Update/Complete/Success/Factory.yml
new file mode 100644
index 00000000..7a8c028d
--- /dev/null
+++ b/src/Service/Update/Complete/Success/Factory.yml
@@ -0,0 +1,8 @@
+services:
+ neighborhoods.kojo.service.update.complete.success.factory:
+ class: Neighborhoods\Kojo\Service\Update\Complete\Success\Factory
+ calls:
+ - [setStateService, ['@state.service']]
+ - [setServiceUpdateCompleteSuccess, ['@service.update.complete.success']]
+ service.update.complete.success.factory:
+ alias: neighborhoods.kojo.service.update.complete.success.factory
\ No newline at end of file
diff --git a/src/Service/Update/Complete/Success/Factory/AwareTrait.php b/src/Service/Update/Complete/Success/Factory/AwareTrait.php
index 2a46e10b..45ceeed5 100644
--- a/src/Service/Update/Complete/Success/Factory/AwareTrait.php
+++ b/src/Service/Update/Complete/Success/Factory/AwareTrait.php
@@ -1,9 +1,9 @@
_create(self::PROP_DATE_TIME, $dateTime);
+
+ return $this;
}
protected function _getDateTime(): \DateTime
diff --git a/src/Service/Update/Retry.yml b/src/Service/Update/Retry.yml
new file mode 100644
index 00000000..1716ca1d
--- /dev/null
+++ b/src/Service/Update/Retry.yml
@@ -0,0 +1,6 @@
+services:
+ neighborhoods.kojo.service.update.retry:
+ class: Neighborhoods\Kojo\Service\Update\Retry
+ shared: false
+ service.update.retry:
+ alias: neighborhoods.kojo.service.update.retry
\ No newline at end of file
diff --git a/src/Service/Update/Retry/AwareTrait.php b/src/Service/Update/Retry/AwareTrait.php
index f9c1525a..323289f2 100644
--- a/src/Service/Update/Retry/AwareTrait.php
+++ b/src/Service/Update/Retry/AwareTrait.php
@@ -1,9 +1,9 @@
_getJobType()->setScheduleLimitAllowance($scheduleLimitAllowance);
+
+ return $this;
+ }
+
public function setIsEnabled(bool $isEnabled): CreateInterface
{
$this->_getJobType()->setIsEnabled($isEnabled);
diff --git a/src/Type/Service/Create.yml b/src/Type/Service/Create.yml
new file mode 100644
index 00000000..03ca43af
--- /dev/null
+++ b/src/Type/Service/Create.yml
@@ -0,0 +1,7 @@
+services:
+ neighborhoods.kojo.type.service.create:
+ class: Neighborhoods\Kojo\Type\Service\Create
+ calls:
+ - [setJobType, ['@data.job.type']]
+ type.service.create:
+ alias: neighborhoods.kojo.type.service.create
\ No newline at end of file
diff --git a/src/Type/Service/Create/AwareTrait.php b/src/Type/Service/Create/AwareTrait.php
new file mode 100644
index 00000000..db0ecdb3
--- /dev/null
+++ b/src/Type/Service/Create/AwareTrait.php
@@ -0,0 +1,33 @@
+_create(CreateInterface ::class, $create);
+
+ return $this;
+ }
+
+ protected function _getTypeServiceCreate(): CreateInterface
+ {
+ return $this->_read(CreateInterface ::class);
+ }
+
+ protected function _getTypeServiceCreateClone(): CreateInterface
+ {
+ return clone $this->_getServiceCreate();
+ }
+
+ protected function _unsetTypeServiceCreate()
+ {
+ $this->_delete(CreateInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Type/Service/Create/Factory.php b/src/Type/Service/Create/Factory.php
new file mode 100644
index 00000000..e1941f0f
--- /dev/null
+++ b/src/Type/Service/Create/Factory.php
@@ -0,0 +1,20 @@
+_getTypeServiceCreateClone();
+
+ return $create;
+ }
+}
\ No newline at end of file
diff --git a/src/Type/Service/Create/Factory/AwareTrait.php b/src/Type/Service/Create/Factory/AwareTrait.php
new file mode 100644
index 00000000..abbe8f4d
--- /dev/null
+++ b/src/Type/Service/Create/Factory/AwareTrait.php
@@ -0,0 +1,34 @@
+_create(FactoryInterface::class, $updateCrashFactory);
+
+ return $this;
+ }
+
+ protected function _getTypeServiceCreateFactory(): FactoryInterface
+ {
+ return $this->_read(FactoryInterface::class);
+ }
+
+ protected function _hasTypeServiceCreateFactory(): bool
+ {
+ return $this->_exists(FactoryInterface::class);
+ }
+
+ protected function _unsetTypeServiceCreateFactory(): self
+ {
+ $this->_delete(FactoryInterface::class);
+
+ return $this;
+ }
+}
\ No newline at end of file
diff --git a/src/Type/Service/Create/FactoryInterface.php b/src/Type/Service/Create/FactoryInterface.php
new file mode 100644
index 00000000..9e6f2937
--- /dev/null
+++ b/src/Type/Service/Create/FactoryInterface.php
@@ -0,0 +1,12 @@
+_create(self::PROP_PDO, $pdo);
- $this->_getDbConnectionContainer('job')->setPdo($pdo);
+ $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_JOB)->setPdo($pdo);
+
+ return $this;
+ }
+
+ protected function _setSchemaPdo(\PDO $pdo): BootstrapInterface
+ {
+ $this->_getDbConnectionContainerRepository()->get(ContainerInterface::ID_SCHEMA)->setPdo($pdo);
return $this;
}
diff --git a/src/Worker/BootstrapAbstract.yml b/src/Worker/BootstrapAbstract.yml
new file mode 100644
index 00000000..03ffd2ba
--- /dev/null
+++ b/src/Worker/BootstrapAbstract.yml
@@ -0,0 +1,12 @@
+services:
+ neighborhoods.kojo.worker.bootstrap_abstract:
+ class: Neighborhoods\Kojo\Worker\BootstrapAbstract
+ abstract: true
+ public: false
+ shared: false
+ calls:
+ - [setForeman, ['@foreman']]
+ - [setDbConnectionContainerRepository, ['@db.connection.container.repository']]
+ worker.bootstrap_abstract:
+ alias: neighborhoods.kojo.worker.bootstrap_abstract
+ public: false
\ No newline at end of file
diff --git a/src/Worker/BootstrapInterface.php b/src/Worker/BootstrapInterface.php
index 3d718b8c..a3e91887 100644
--- a/src/Worker/BootstrapInterface.php
+++ b/src/Worker/BootstrapInterface.php
@@ -1,15 +1,9 @@
_create(ServiceInterface::class, $workerJobService);
-
- return $this;
- }
-
- protected function _getWorkerJobService(): ServiceInterface
- {
- return $this->_read(ServiceInterface::class);
- }
-
- protected function _getWorkerJobServiceClone(): ServiceInterface
- {
- return clone $this->_getJob();
- }
-}
\ No newline at end of file
diff --git a/src/Worker/Locator.php b/src/Worker/Locator.php
index 5f9cc0b1..cbfdd6c4 100644
--- a/src/Worker/Locator.php
+++ b/src/Worker/Locator.php
@@ -1,21 +1,55 @@
getCallable()[0];
+ }
public function getCallable(): callable
{
- $class = $this->_getJob()->getWorkerUri();
- $object = new $class;
+ if (empty($this->_callable)) {
+ try{
+ $class = $this->_getJob()->getWorkerUri();
+ $method = $this->_getJob()->getWorkerMethod();
+ $this->_create(self::PROP_CLASS_NAME, $class);
+ $this->_create(self::PROP_METHOD_NAME, $method);
+ $object = new $class;
+ $callable = [$object, $method];
+ if (is_callable($callable)) {
+ $this->_callable = $callable;
+ }else {
+ throw new \RuntimeException("Class[$class] and method[$method] is not callable.");
+ }
+ }catch(\Throwable $throwable){
+ throw new Exception($throwable->getMessage(), Exception::CODE_CANNOT_INSTANTIATE_WORKER, $throwable);
+ }
+ }
+
+ return $this->_callable;
+ }
- return [$object, $this->_getJob()->getWorkerMethod()];
+ public function getMethodName(): string
+ {
+ return $this->_read(self::PROP_METHOD_NAME);
+ }
+
+ public function getClassName(): string
+ {
+ return $this->_read(self::PROP_CLASS_NAME);
}
}
\ No newline at end of file
diff --git a/src/Worker/Locator.yml b/src/Worker/Locator.yml
new file mode 100644
index 00000000..0f1159dc
--- /dev/null
+++ b/src/Worker/Locator.yml
@@ -0,0 +1,6 @@
+services:
+ neighborhoods.kojo.worker.locator:
+ class: Neighborhoods\Kojo\Worker\Locator
+ shared: false
+ worker.locator:
+ alias: neighborhoods.kojo.worker.locator
\ No newline at end of file
diff --git a/src/Worker/Locator/AwareTrait.php b/src/Worker/Locator/AwareTrait.php
index 57051e18..1511a2fe 100644
--- a/src/Worker/Locator/AwareTrait.php
+++ b/src/Worker/Locator/AwareTrait.php
@@ -1,9 +1,9 @@
_addPossibleMessage(self::CODE_CANNOT_INSTANTIATE_WORKER, 'Cannot instantiate worker.');
+
+ return parent::__construct($message, $code, $previous);
+ }
+}
\ No newline at end of file
diff --git a/src/Worker/Locator/ExceptionInterface.php b/src/Worker/Locator/ExceptionInterface.php
new file mode 100644
index 00000000..ab003d98
--- /dev/null
+++ b/src/Worker/Locator/ExceptionInterface.php
@@ -0,0 +1,11 @@
+getMessage();
- exit(1);
-}
-$serviceContainer = new \NHDS\Jobs\Service\Container();
-$ymlServiceFilePath = __DIR__ . '/../config/root.yml';
-$serviceContainer->addServicesYmlFilePath($ymlServiceFilePath);
-if (isset($argv[2]) && is_string($argv[2]) && is_file($argv[2])) {
- $serviceContainer->addServicesYmlFilePath($argv[2]);
-}
-$consoleApplication = $serviceContainer->getContainerBuilder()->get('nhds.jobs.symfony.component.console.application');
-
-$consoleApplication->run();
\ No newline at end of file
diff --git a/src/bin/server b/src/bin/server
deleted file mode 100755
index bb41fd0f..00000000
--- a/src/bin/server
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env php
-getMessage();
- exit(1);
-}
-$serviceContainer = new \NHDS\Jobs\Service\Container();
-$ymlServiceFilePath = __DIR__ . '/../config/root.yml';
-$serviceContainer->addServicesYmlFilePath($ymlServiceFilePath);
-foreach ($argv as $argument) {
- if (strstr($argument, 'ysfp:') !== false) {
- $ymlServicesFilePath = explode('ysfp:', $argument);
- $serviceContainer->addServicesYmlFilePath($ymlServicesFilePath[1]);
- }
-}
-$server = $serviceContainer->getContainerBuilder()->get('process.pool.server');
-$server->setParentProcessPath('');
-$server->start();
\ No newline at end of file
diff --git a/src/config/Console/Command/Db/Setup/Install.yml b/src/config/Console/Command/Db/Setup/Install.yml
deleted file mode 100644
index 53b050a4..00000000
--- a/src/config/Console/Command/Db/Setup/Install.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.console.command.db.setup.install:
- class: NHDS\Jobs\Console\Command\Db\Setup\Install
- calls:
- - [setBootstrap, ['@worker.bootstrap']]
- - [setDbSetup, ['@db.setup']]
- console.command.db.setup.install:
- alias: nhds.jobs.console.command.db.setup.install
\ No newline at end of file
diff --git a/src/config/Console/Command/Db/TearDown/Uninstall.yml b/src/config/Console/Command/Db/TearDown/Uninstall.yml
deleted file mode 100644
index 4dc13a4b..00000000
--- a/src/config/Console/Command/Db/TearDown/Uninstall.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.console.command.db.tear_down.uninstall:
- class: NHDS\Jobs\Console\Command\Db\TearDown\Uninstall
- calls:
- - [setBootstrap, ['@worker.bootstrap']]
- - [setDbTearDown, ['@db.tear_down']]
- console.command.db.tear_down.uninstall:
- alias: nhds.jobs.console.command.db.tear_down.uninstall
\ No newline at end of file
diff --git a/src/config/Console/Command/Process/Pool/Server/Start.yml b/src/config/Console/Command/Process/Pool/Server/Start.yml
deleted file mode 100644
index c8117aa7..00000000
--- a/src/config/Console/Command/Process/Pool/Server/Start.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- nhds.jobs.console.command.process.pool.server.start:
- class: NHDS\Jobs\Console\Command\Process\Pool\Server\Start
- console.command.process.pool.server.start:
- alias: nhds.jobs.console.command.process.pool.server.start
\ No newline at end of file
diff --git a/src/config/Data/Job.yml b/src/config/Data/Job.yml
deleted file mode 100644
index c2296eaf..00000000
--- a/src/config/Data/Job.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.data.job:
- class: NHDS\Jobs\Data\Job
- shared: false
- calls:
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- data.job:
- alias: nhds.jobs.data.job
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/CrashDetection.yml b/src/config/Data/Job/Collection/CrashDetection.yml
deleted file mode 100644
index 9bb936d1..00000000
--- a/src/config/Data/Job/Collection/CrashDetection.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-services:
- nhds.jobs.data.job.collection.crashdetection:
- class: NHDS\Jobs\Data\Job\Collection\CrashDetection
- shared: false
- calls:
- - [setModel, ['@data.job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.crashdetection:
- alias: nhds.jobs.data.job.collection.crashdetection
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/Delete.yml b/src/config/Data/Job/Collection/Delete.yml
deleted file mode 100644
index a7af668d..00000000
--- a/src/config/Data/Job/Collection/Delete.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-services:
- nhds.jobs.data.job.collection.delete:
- class: NHDS\Jobs\Data\Job\Collection\Delete
- calls:
- - [setModel, ['@data.job']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.delete:
- alias: nhds.jobs.data.job.collection.delete
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/Iterator.yml b/src/config/Data/Job/Collection/Iterator.yml
deleted file mode 100644
index a22ca939..00000000
--- a/src/config/Data/Job/Collection/Iterator.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.data.job.collection.iterator:
- class: NHDS\Jobs\Data\Job\Collection\Iterator
- shared: false
- data.job.collection.iterator:
- alias: nhds.jobs.data.job.collection.iterator
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/Schedule/LimitCheck.yml b/src/config/Data/Job/Collection/Schedule/LimitCheck.yml
deleted file mode 100644
index f2963c18..00000000
--- a/src/config/Data/Job/Collection/Schedule/LimitCheck.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-services:
- nhds.jobs.data.job.collection.schedule.limitcheck:
- class: NHDS\Jobs\Data\Job\Collection\Schedule\LimitCheck
- shared: false
- calls:
- - [setModel, ['@data.job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.schedule.limitcheck:
- alias: nhds.jobs.data.job.collection.schedule.limitcheck
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/ScheduleLimit.yml b/src/config/Data/Job/Collection/ScheduleLimit.yml
deleted file mode 100644
index b0f3957f..00000000
--- a/src/config/Data/Job/Collection/ScheduleLimit.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-services:
- nhds.jobs.data.job.collection.schedulelimit:
- class: NHDS\Jobs\Data\Job\Collection\ScheduleLimit
- shared: false
- calls:
- - [setModel, ['@data.job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.schedulelimit:
- alias: nhds.jobs.data.job.collection.schedulelimit
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/Scheduler.yml b/src/config/Data/Job/Collection/Scheduler.yml
deleted file mode 100644
index fb1b5a82..00000000
--- a/src/config/Data/Job/Collection/Scheduler.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-services:
- nhds.jobs.data.job.collection.scheduler:
- class: NHDS\Jobs\Data\Job\Collection\Scheduler
- shared: false
- calls:
- - [setModel, ['@data.job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.scheduler:
- alias: nhds.jobs.data.job.collection.scheduler
\ No newline at end of file
diff --git a/src/config/Data/Job/Collection/Selector.yml b/src/config/Data/Job/Collection/Selector.yml
deleted file mode 100644
index 3ceff355..00000000
--- a/src/config/Data/Job/Collection/Selector.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-services:
- nhds.jobs.data.job.collection.selector:
- class: NHDS\Jobs\Data\Job\Collection\Selector
- shared: false
- calls:
- - [setModel, ['@data.job']]
- - [setIterator, ['@data.job.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- - [setLogger, ['@process.pool.logger']]
- data.job.collection.selector:
- alias: nhds.jobs.data.job.collection.selector
\ No newline at end of file
diff --git a/src/config/Data/Job/Type.yml b/src/config/Data/Job/Type.yml
deleted file mode 100644
index 5679c6d1..00000000
--- a/src/config/Data/Job/Type.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.data.job.type:
- class: NHDS\Jobs\Data\Job\Type
- shared: false
- calls:
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- data.job.type:
- alias: nhds.jobs.data.job.type
\ No newline at end of file
diff --git a/src/config/Data/Job/Type/Collection/Iterator.yml b/src/config/Data/Job/Type/Collection/Iterator.yml
deleted file mode 100644
index cfec054a..00000000
--- a/src/config/Data/Job/Type/Collection/Iterator.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.data.job.type.collection.iterator:
- class: NHDS\Jobs\Data\Job\Type\Collection\Iterator
- shared: false
- data.job.type.collection.iterator:
- alias: nhds.jobs.data.job.type.collection.iterator
\ No newline at end of file
diff --git a/src/config/Data/Job/Type/Collection/Scheduler.yml b/src/config/Data/Job/Type/Collection/Scheduler.yml
deleted file mode 100644
index 65214368..00000000
--- a/src/config/Data/Job/Type/Collection/Scheduler.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-services:
- nhds.jobs.data.job.type.collection.scheduler:
- class: NHDS\Jobs\Data\Job\Type\Collection\Scheduler
- shared: false
- calls:
- - [setModel, ['@data.job.type']]
- - [setIterator, ['@data.job.type.collection.iterator']]
- - [addDbConnectionContainer, ['@db.connection.container-job']]
- data.job.type.collection.scheduler:
- alias: nhds.jobs.data.job.type.collection.scheduler
\ No newline at end of file
diff --git a/src/config/Db/Connection/Container.yml b/src/config/Db/Connection/Container.yml
deleted file mode 100644
index 625c0924..00000000
--- a/src/config/Db/Connection/Container.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-services:
- nhds.jobs.db.connection.container-job:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_JOB')"]]
- db.connection.container-job:
- alias: nhds.jobs.db.connection.container-job
- nhds.jobs.db.connection.container-schema:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_SCHEMA')"]]
- db.connection.container-schema:
- alias: nhds.jobs.db.connection.container-schema
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_0_0_0.yml b/src/config/Db/Setup/Schema/Version_0_0_0.yml
deleted file mode 100644
index 38c37667..00000000
--- a/src/config/Db/Setup/Schema/Version_0_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.0_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_0_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.setup.schema.version.0_0_0:
- alias: nhds.jobs.db.setup.schema.version.0_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_1_0_0.yml b/src/config/Db/Setup/Schema/Version_1_0_0.yml
deleted file mode 100644
index 1d834895..00000000
--- a/src/config/Db/Setup/Schema/Version_1_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.1_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_1_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.setup.schema.version.1_0_0:
- alias: nhds.jobs.db.setup.schema.version.1_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_2_0_0.yml b/src/config/Db/Setup/Schema/Version_2_0_0.yml
deleted file mode 100644
index 5b3f6c22..00000000
--- a/src/config/Db/Setup/Schema/Version_2_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.2_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_2_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.setup.schema.version.2_0_0:
- alias: nhds.jobs.db.setup.schema.version.2_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_3_0_0.yml b/src/config/Db/Setup/Schema/Version_3_0_0.yml
deleted file mode 100644
index a75bba3a..00000000
--- a/src/config/Db/Setup/Schema/Version_3_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.3_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_3_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.setup.schema.version.3_0_0:
- alias: nhds.jobs.db.setup.schema.version.3_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_4_0_0.yml b/src/config/Db/Setup/Schema/Version_4_0_0.yml
deleted file mode 100644
index 262d18e0..00000000
--- a/src/config/Db/Setup/Schema/Version_4_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.4_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_4_0_0
- calls:
- - [addDbConnectionContainer, ["@nhds.jobs.db.connection.container-schema"]]
- db.setup.schema.version.4_0_0:
- alias: nhds.jobs.db.setup.schema.version.4_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_5_0_0.yml b/src/config/Db/Setup/Schema/Version_5_0_0.yml
deleted file mode 100644
index 73245c8f..00000000
--- a/src/config/Db/Setup/Schema/Version_5_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version.5_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_5_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.setup.schema.version.5_0_0:
- alias: nhds.jobs.db.setup.schema.version.5_0_0
\ No newline at end of file
diff --git a/src/config/Db/Setup/Schema/Version_6_0_0.yml b/src/config/Db/Setup/Schema/Version_6_0_0.yml
deleted file mode 100644
index 30f3b351..00000000
--- a/src/config/Db/Setup/Schema/Version_6_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.setup.schema.version_6_0_0:
- class: NHDS\Jobs\Db\Setup\Schema\Version_6_0_0
- calls:
- - [addDbConnectionContainer, ['@db.connection.container-schema']]
- db.setup.schema.version_6_0_0:
- alias: nhds.jobs.db.setup.schema.version_6_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_0_0_0.yml b/src/config/Db/TearDown/Schema/Version_0_0_0.yml
deleted file mode 100644
index ff11b534..00000000
--- a/src/config/Db/TearDown/Schema/Version_0_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.0_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_0_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.0_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.0_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_1_0_0.yml b/src/config/Db/TearDown/Schema/Version_1_0_0.yml
deleted file mode 100644
index da89aac1..00000000
--- a/src/config/Db/TearDown/Schema/Version_1_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.1_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_1_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.1_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.1_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_2_0_0.yml b/src/config/Db/TearDown/Schema/Version_2_0_0.yml
deleted file mode 100644
index 3a0ba4b5..00000000
--- a/src/config/Db/TearDown/Schema/Version_2_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.2_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_2_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.2_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.2_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_3_0_0.yml b/src/config/Db/TearDown/Schema/Version_3_0_0.yml
deleted file mode 100644
index 54db804d..00000000
--- a/src/config/Db/TearDown/Schema/Version_3_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.3_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_3_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.3_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.3_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_4_0_0.yml b/src/config/Db/TearDown/Schema/Version_4_0_0.yml
deleted file mode 100644
index 2dd213e3..00000000
--- a/src/config/Db/TearDown/Schema/Version_4_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.4_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_4_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.4_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.4_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_5_0_0.yml b/src/config/Db/TearDown/Schema/Version_5_0_0.yml
deleted file mode 100644
index 1b43e71f..00000000
--- a/src/config/Db/TearDown/Schema/Version_5_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version.5_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_5_0_0
- calls:
- - [addDbConnectionContainer, ["@db.connection.container-schema"]]
- db.tear_down.schema.version.5_0_0:
- alias: nhds.jobs.db.tear_down.schema.version.5_0_0
\ No newline at end of file
diff --git a/src/config/Db/TearDown/Schema/Version_6_0_0.yml b/src/config/Db/TearDown/Schema/Version_6_0_0.yml
deleted file mode 100644
index c61b7afc..00000000
--- a/src/config/Db/TearDown/Schema/Version_6_0_0.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.db.tear_down.schema.version_6_0_0:
- class: NHDS\Jobs\Db\TearDown\Schema\Version_6_0_0
- calls:
- - [addDbConnectionContainer, ['@db.connection.container-schema']]
- db.tear_down.schema.version_6_0_0:
- alias: nhds.jobs.db.tear_down.schema.version_6_0_0
\ No newline at end of file
diff --git a/src/config/Message/Broker/Redis.yml b/src/config/Message/Broker/Redis.yml
deleted file mode 100644
index 04dfd983..00000000
--- a/src/config/Message/Broker/Redis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-services:
- nhds.jobs.message.broker.redis:
- class: NHDS\Jobs\Message\Broker\Redis
- shared: false
- calls:
- - [setLogger, ['@process.pool.logger']]
- - [setPort, ['6379']]
- - [setHost, ['redis']]
- - [setSubscriptionChannelName, ['job_listener_subscribe']]
- - [setPublishChannelName, ['job_listener_publish']]
- message.broker.redis:
- alias: nhds.jobs.message.broker.redis
\ No newline at end of file
diff --git a/src/config/Message/Broker/Type/Collection.yml b/src/config/Message/Broker/Type/Collection.yml
deleted file mode 100644
index aeb8237a..00000000
--- a/src/config/Message/Broker/Type/Collection.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.message.broker.type.collection-job:
- class: NHDS\Jobs\Message\Broker\Type\Collection
- calls:
- - [addBrokerType, ['job_broker', '@message.broker.redis']]
- message.broker.type.collection-job:
- alias: nhds.jobs.message.broker.type.collection-job
\ No newline at end of file
diff --git a/src/config/Process/Collection.yml b/src/config/Process/Collection.yml
deleted file mode 100644
index 65d632f8..00000000
--- a/src/config/Process/Collection.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-services:
- nhds.jobs.process.collection:
- shared: true
- class: NHDS\Jobs\Process\Collection
- calls:
- - [setIterator, ['@process.collection.iterator']]
- - [addProcessPrototype, ['@process.listener.command']]
- - [addProcessPrototype, ['@process.job.required']]
- - [addProcessPrototype, ['@process.job']]
- process.collection:
- alias: nhds.jobs.process.collection
- nhds.jobs.process.collection-server:
- shared: true
- class: NHDS\Jobs\Process\Collection
- calls:
- - [setIterator, ['@process.collection.iterator']]
- - [addProcessPrototype, ['@process.root']]
- process.collection-server:
- alias: nhds.jobs.process.collection-server
\ No newline at end of file
diff --git a/src/config/Process/Collection/Iterator.yml b/src/config/Process/Collection/Iterator.yml
deleted file mode 100644
index 5e9ab54a..00000000
--- a/src/config/Process/Collection/Iterator.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.process.collection.iterator:
- shared: false
- class: NHDS\Jobs\Process\Collection\Iterator
- process.collection.iterator:
- alias: nhds.jobs.process.collection.iterator
\ No newline at end of file
diff --git a/src/config/Process/Job.yml b/src/config/Process/Job.yml
deleted file mode 100644
index e9af21f0..00000000
--- a/src/config/Process/Job.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-services:
- nhds.jobs.process.job:
- shared: false
- class: NHDS\Jobs\Process\Job
- calls:
- - [setLogger, ['@process.pool.logger']]
- - [setForeman, ['@foreman']]
- - [setMaintainer, ['@maintainer']]
- - [setScheduler, ['@scheduler']]
- - [setBootstrap, ['@worker.bootstrap']]
- - [setTypeCode, ['job']]
- - [setSelector, ['@selector']]
- - [setProcessStrategy, ['@process.strategy.process_control']]
- process.job:
- alias: nhds.jobs.process.job
\ No newline at end of file
diff --git a/src/config/Process/Job/Required.yml b/src/config/Process/Job/Required.yml
deleted file mode 100644
index 56ba165f..00000000
--- a/src/config/Process/Job/Required.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-services:
- nhds.jobs.process.job.required:
- shared: false
- class: NHDS\Jobs\Process\Job\Required
- calls:
- - [setLogger, ['@process.pool.logger']]
- - [setForeman, ['@foreman']]
- - [setMaintainer, ['@maintainer']]
- - [setScheduler, ['@scheduler']]
- - [setBootstrap, ['@worker.bootstrap']]
- - [setTypeCode, ['job.required']]
- - [setProcessStrategy, ['@process.strategy.process_control']]
- - [setSelector, ['@selector']]
- process.job.required:
- alias: nhds.jobs.process.job.required
\ No newline at end of file
diff --git a/src/config/Process/Listener/Command.yml b/src/config/Process/Listener/Command.yml
deleted file mode 100644
index 748f4f88..00000000
--- a/src/config/Process/Listener/Command.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-services:
- nhds.jobs.process.listener.command:
- class: NHDS\Jobs\Process\Listener\Command
- calls:
- - [setTypeCode, ['listener.command']]
- - [setBrokerTypeCollection, ['@nhds.jobs.message.broker.type.collection-job']]
- - [setLogger, ['@process.pool.logger']]
- - [setBrokerTypeCode, ['job_broker']]
- - [setExpressionLanguage, ['@symfony.component.expressionlanguage.expressionlanguage']]
- - [setProcessCollection, ['@process.collection']]
- - [setProcessStrategy, ['@process.strategy.process_control']]
- process.listener.command:
- alias: nhds.jobs.process.listener.command
\ No newline at end of file
diff --git a/src/config/Process/Pool.yml b/src/config/Process/Pool.yml
deleted file mode 100644
index 5e3c2960..00000000
--- a/src/config/Process/Pool.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.process.pool:
- class: NHDS\Jobs\Process\Pool
- shared: false
- calls:
- - [setLogger, ['@process.pool.logger']]
- process.pool:
- alias: nhds.jobs.process.pool
\ No newline at end of file
diff --git a/src/config/Process/Pool/Factory.yml b/src/config/Process/Pool/Factory.yml
deleted file mode 100644
index 65ba833e..00000000
--- a/src/config/Process/Pool/Factory.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-parameters:
- process_pool_strategy.max_child_processes: 10
- process_pool_strategy.child_process_wait_throttle: 1
- process_pool_strategy.max_alarm_time: 30
- process_pool_strategy-server.max_child_processes: 1
- process_pool_strategy-server.child_process_wait_throttle: 1
- process_pool_strategy-server.max_alarm_time: 3600
-services:
- nhds.jobs.process.pool.factory:
- class: NHDS\Jobs\Process\Pool\Factory
- shared: false
- calls:
- - [setMaxChildProcesses, ['%process_pool_strategy.max_child_processes%']]
- - [setChildProcessWaitThrottle, ['%process_pool_strategy.child_process_wait_throttle%']]
- - [setMaxAlarmTime, ['%process_pool_strategy.max_alarm_time%']]
- - [setProcessPool, ['@process.pool']]
- - [setProcessPoolStrategy, ['@process.pool.strategy']]
- - [setProcessCollection, ['@process.collection']]
- process.pool.factory:
- alias: nhds.jobs.process.pool.factory
- nhds.jobs.process.pool.factory-server:
- class: NHDS\Jobs\Process\Pool\Factory
- shared: false
- calls:
- - [setMaxChildProcesses, ['%process_pool_strategy-server.max_child_processes%']]
- - [setChildProcessWaitThrottle, ['%process_pool_strategy-server.child_process_wait_throttle%']]
- - [setMaxAlarmTime, ['%process_pool_strategy-server.max_alarm_time%']]
- - [setProcessPool, ['@process.pool']]
- - [setProcessPoolStrategy, ['@process.pool.strategy-server']]
- - [setProcessCollection, ['@process.collection-server']]
- process.pool.factory-server:
- alias: nhds.jobs.process.pool.factory-server
\ No newline at end of file
diff --git a/src/config/Process/Pool/Server.yml b/src/config/Process/Pool/Server.yml
deleted file mode 100644
index 6c7abf86..00000000
--- a/src/config/Process/Pool/Server.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-services:
- nhds.jobs.process.pool.server:
- public: true
- class: NHDS\Jobs\Process\Pool\Server
- calls:
- - [setLogger, ['@process.pool.logger']]
- - [setSemaphore, ['@semaphore']]
- - [addSemaphoreResourceFactory, ['@semaphore.resource.factory-server']]
- - [setProcessPoolFactory, ['@process.pool.factory-server']]
- - [setTypeCode, ['server']]
- process.pool.server:
- public: true
- alias: nhds.jobs.process.pool.server
\ No newline at end of file
diff --git a/src/config/Process/Pool/Strategy.yml b/src/config/Process/Pool/Strategy.yml
deleted file mode 100644
index f60d1fa0..00000000
--- a/src/config/Process/Pool/Strategy.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-services:
- nhds.jobs.process.pool.strategy:
- shared: false
- class: NHDS\Jobs\Process\Pool\Strategy
- calls:
- - [setAlarmProcessTypeCode, ['job']]
- - [setLogger, ['@process.pool.logger']]
- process.pool.strategy:
- alias: nhds.jobs.process.pool.strategy
- nhds.jobs.process.pool.strategy-server:
- shared: false
- class: NHDS\Jobs\Process\Pool\Strategy
- calls:
- - [setAlarmProcessTypeCode, ['root']]
- - [setFillProcessTypeCode, ['root']]
- - [setLogger, ['@process.pool.logger']]
- process.pool.strategy-server:
- alias: nhds.jobs.process.pool.strategy-server
\ No newline at end of file
diff --git a/src/config/Process/Root.yml b/src/config/Process/Root.yml
deleted file mode 100644
index f4ac8325..00000000
--- a/src/config/Process/Root.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
- nhds.jobs.process.root:
- class: NHDS\Jobs\Process\Root
- calls:
- - [setProcessPoolFactory, ['@process.pool.factory']]
- - [setLogger, ['@process.pool.logger']]
- - [setProcessStrategy, ['@process.strategy.process_control']]
- process.root:
- alias: nhds.jobs.process.root
\ No newline at end of file
diff --git a/src/config/Process/Strategy/ProcessControl.yml b/src/config/Process/Strategy/ProcessControl.yml
deleted file mode 100644
index e2fc15f7..00000000
--- a/src/config/Process/Strategy/ProcessControl.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- nhds.jobs.process.strategy.process_control:
- class: NHDS\Jobs\Process\Strategy\ProcessControl
- process.strategy.process_control:
- alias: nhds.jobs.process.strategy.process_control
\ No newline at end of file
diff --git a/src/config/Scheduler/Cache.yml b/src/config/Scheduler/Cache.yml
deleted file mode 100644
index 493dbc1c..00000000
--- a/src/config/Scheduler/Cache.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-services:
- nhds.jobs.scheduler.cache:
- class: NHDS\Jobs\Scheduler\Cache
- shared: true
- calls:
- - [setSchedulerTime, ['@scheduler.time']]
- - [setCacheItemPool, ['@symfony.component.cache.adpater.redisadapter']]
- - [setTime, ['@nhds.toolkit.time']]
- scheduler.cache:
- alias: nhds.jobs.scheduler.cache
\ No newline at end of file
diff --git a/src/config/Scheduler/Time.yml b/src/config/Scheduler/Time.yml
deleted file mode 100644
index d8290c4c..00000000
--- a/src/config/Scheduler/Time.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
- nhds.jobs.scheduler.time:
- class: NHDS\Jobs\Scheduler\Time
- shared: true
- calls:
- - [setMinutesToScheduleAheadFor, [5]]
- - [setTime, ['@nhds.toolkit.time']]
- scheduler.time:
- alias: nhds.jobs.scheduler.time
\ No newline at end of file
diff --git a/src/config/Semaphore.yml b/src/config/Semaphore.yml
deleted file mode 100644
index 55fb1967..00000000
--- a/src/config/Semaphore.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- nhds.jobs.semaphore:
- class: NHDS\Jobs\Semaphore
- semaphore:
- alias: nhds.jobs.semaphore
\ No newline at end of file
diff --git a/src/config/Semaphore/Resource.yml b/src/config/Semaphore/Resource.yml
deleted file mode 100644
index 1034c5c7..00000000
--- a/src/config/Semaphore/Resource.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-services:
- nhds.jobs.semaphore.resource-job:
- class: NHDS\Jobs\Semaphore\Resource
- shared: false
- calls:
- - [setIsBlocking, [false]]
- semaphore.resource-job:
- alias: nhds.jobs.semaphore.resource-job
- nhds.jobs.semaphore.resource-maintainer_delete:
- class: NHDS\Jobs\Semaphore\Resource
- shared: false
- calls:
- - [setResourceName, ['maintainer_delete.lock']]
- - [setResourcePath, ['nhds/jobs']]
- - [setIsBlocking, [false]]
- semaphore.resource-maintainer_delete:
- alias: nhds.jobs.semaphore.resource-maintainer_delete
- nhds.jobs.semaphore.resource-update_pending_jobs:
- class: NHDS\Jobs\Semaphore\Resource
- shared: false
- calls:
- - [setResourceName, ['update_pending_jobs.lock']]
- - [setResourcePath, ['nhds/jobs']]
- - [setIsBlocking, [false]]
- semaphore.resource-update_pending_jobs:
- alias: nhds.jobs.semaphore.resource-update_pending_jobs
- nhds.jobs.semaphore.resource-reschedule_jobs:
- class: NHDS\Jobs\Semaphore\Resource
- shared: false
- calls:
- - [setResourceName, ['reschedule_jobs.lock']]
- - [setResourcePath, ['nhds/jobs']]
- - [setIsBlocking, [false]]
- semaphore.resource-reschedule_jobs:
- alias: nhds.jobs.semaphore.resource-reschedule_jobs
- nhds.jobs.semaphore.resource-schedule:
- class: NHDS\Jobs\Semaphore\Resource
- calls:
- - [setResourceName, ['schedule.lock']]
- - [setResourcePath, ['nhds/jobs']]
- - [setIsBlocking, [false]]
- shared: false
- semaphore.resource-schedule:
- alias: nhds.jobs.semaphore.resource-schedule
- nhds.jobs.semaphore.resource-server:
- class: NHDS\Jobs\Semaphore\Resource
- shared: false
- calls:
- - [setResourceName, ['server.lock']]
- - [setResourcePath, ['nhds/jobs']]
- - [setIsBlocking, [false]]
- semaphore.resource-server:
- alias: nhds.jobs.semaphore.resource-server
\ No newline at end of file
diff --git a/src/config/Semaphore/Resource/Factory.yml b/src/config/Semaphore/Resource/Factory.yml
deleted file mode 100644
index 31cd146b..00000000
--- a/src/config/Semaphore/Resource/Factory.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-services:
- nhds.jobs.semaphore.resource.factory-job:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['job']]
- - [setSemaphoreResource, ['@semaphore.resource-job']]
- - [setSemaphoreResourceOwner, ['@semaphore.resource.owner.job']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-job:
- alias: nhds.jobs.semaphore.resource.factory-job
- nhds.jobs.semaphore.resource.factory-maintainer_delete:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['maintainer_delete']]
- - [setSemaphoreResource, ['@semaphore.resource-maintainer_delete']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-maintainer_delete:
- alias: nhds.jobs.semaphore.resource.factory-maintainer_delete
- nhds.jobs.semaphore.resource.factory-update_pending_jobs:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['update_pending_jobs']]
- - [setSemaphoreResource, ['@semaphore.resource-update_pending_jobs']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-update_pending_jobs:
- alias: nhds.jobs.semaphore.resource.factory-update_pending_jobs
- nhds.jobs.semaphore.resource.factory-reschedule_jobs:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['reschedule_jobs']]
- - [setSemaphoreResource, ['@semaphore.resource-reschedule_jobs']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-reschedule_jobs:
- alias: nhds.jobs.semaphore.resource.factory-reschedule_jobs
- nhds.jobs.semaphore.resource.factory-schedule:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['schedule']]
- - [setSemaphoreResource, ['@semaphore.resource-schedule']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-schedule:
- alias: nhds.jobs.semaphore.resource.factory-schedule
- nhds.jobs.semaphore.resource.factory-server:
- class: NHDS\Jobs\Semaphore\Resource\Factory
- calls:
- - [setName, ['server']]
- - [setSemaphoreResource, ['@semaphore.resource-server']]
- - [setMutex, ['@semaphore.mutex.flock']]
- - [setSemaphore, ['@semaphore']]
- semaphore.resource.factory-server:
- alias: nhds.jobs.semaphore.resource.factory-server
\ No newline at end of file
diff --git a/src/config/Semaphore/Resource/Owner/Job.yml b/src/config/Semaphore/Resource/Owner/Job.yml
deleted file mode 100644
index 5163583a..00000000
--- a/src/config/Semaphore/Resource/Owner/Job.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- nhds.jobs.semaphore.resource.owner.job:
- class: NHDS\Jobs\Semaphore\Resource\Owner\Job
- semaphore.resource.owner.job:
- alias: nhds.jobs.semaphore.resource.owner.job
\ No newline at end of file
diff --git a/src/config/Service/Create.yml b/src/config/Service/Create.yml
deleted file mode 100644
index 7d2d1b96..00000000
--- a/src/config/Service/Create.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
- nhds.jobs.service.create:
- class: NHDS\Jobs\Service\Create
- shared: false
- calls:
- - [setTypeRepository, ['@type.repository']]
- - [setTime, ['@nhds.toolkit.time']]
- service.create:
- alias: nhds.jobs.service.create
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/Failed.yml b/src/config/Service/Update/Complete/Failed.yml
deleted file mode 100644
index 4d28d92f..00000000
--- a/src/config/Service/Update/Complete/Failed.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.complete.failed:
- class: NHDS\Jobs\Service\Update\Complete\Failed
- shared: false
- service.update.complete.failed:
- alias: nhds.jobs.service.update.complete.failed
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/Failed/Factory.yml b/src/config/Service/Update/Complete/Failed/Factory.yml
deleted file mode 100644
index bdf130d0..00000000
--- a/src/config/Service/Update/Complete/Failed/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.complete.failed.factory:
- class: NHDS\Jobs\Service\Update\Complete\Failed\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateCompleteFailed, ['@service.update.complete.failed']]
- service.update.complete.failed.factory:
- alias: nhds.jobs.service.update.complete.failed.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/FailedScheduleLimitCheck.yml b/src/config/Service/Update/Complete/FailedScheduleLimitCheck.yml
deleted file mode 100644
index 571fde3a..00000000
--- a/src/config/Service/Update/Complete/FailedScheduleLimitCheck.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.complete.failedschedulelimitcheck:
- class: NHDS\Jobs\Service\Update\Complete\FailedScheduleLimitCheck
- shared: false
- service.update.complete.failedschedulelimitcheck:
- alias: nhds.jobs.service.update.complete.failedschedulelimitcheck
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/FailedScheduleLimitCheck/Factory.yml b/src/config/Service/Update/Complete/FailedScheduleLimitCheck/Factory.yml
deleted file mode 100644
index 6ab4313d..00000000
--- a/src/config/Service/Update/Complete/FailedScheduleLimitCheck/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.complete.failedschedulelimitcheck.factory:
- class: NHDS\Jobs\Service\Update\Complete\FailedScheduleLimitCheck\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateCompleteFailedScheduleLimitCheck, ['@service.update.complete.failedschedulelimitcheck']]
- service.update.complete.failedschedulelimitcheck.factory:
- alias: nhds.jobs.service.update.complete.failedschedulelimitcheck.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/Success.yml b/src/config/Service/Update/Complete/Success.yml
deleted file mode 100644
index c5d460a2..00000000
--- a/src/config/Service/Update/Complete/Success.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.complete.success:
- class: NHDS\Jobs\Service\Update\Complete\Success
- shared: false
- service.update.complete.success:
- alias: nhds.jobs.service.update.complete.success
\ No newline at end of file
diff --git a/src/config/Service/Update/Complete/Success/Factory.yml b/src/config/Service/Update/Complete/Success/Factory.yml
deleted file mode 100644
index e5a1c974..00000000
--- a/src/config/Service/Update/Complete/Success/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.complete.success.factory:
- class: NHDS\Jobs\Service\Update\Complete\Success\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateCompleteSuccess, ['@service.update.complete.success']]
- service.update.complete.success.factory:
- alias: nhds.jobs.service.update.complete.success.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Crash.yml b/src/config/Service/Update/Crash.yml
deleted file mode 100644
index 29a1b832..00000000
--- a/src/config/Service/Update/Crash.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.crash:
- class: NHDS\Jobs\Service\Update\Crash
- shared: false
- service.update.crash:
- alias: nhds.jobs.service.update.crash
\ No newline at end of file
diff --git a/src/config/Service/Update/Crash/Factory.yml b/src/config/Service/Update/Crash/Factory.yml
deleted file mode 100644
index 7810f1f0..00000000
--- a/src/config/Service/Update/Crash/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.crash.factory:
- class: NHDS\Jobs\Service\Update\Crash\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateCrash, ['@service.update.crash']]
- service.update.crash.factory:
- alias: nhds.jobs.service.update.crash.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Hold.yml b/src/config/Service/Update/Hold.yml
deleted file mode 100644
index 907c0e3c..00000000
--- a/src/config/Service/Update/Hold.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.hold:
- class: NHDS\Jobs\Service\Update\Hold
- shared: false
- service.update.hold:
- alias: nhds.jobs.service.update.hold
\ No newline at end of file
diff --git a/src/config/Service/Update/Hold/Factory.yml b/src/config/Service/Update/Hold/Factory.yml
deleted file mode 100644
index f49749cd..00000000
--- a/src/config/Service/Update/Hold/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.hold.factory:
- class: NHDS\Jobs\Service\Update\Hold\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateHold, ['@service.update.hold']]
- service.update.hold.factory:
- alias: nhds.jobs.service.update.hold.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Panic.yml b/src/config/Service/Update/Panic.yml
deleted file mode 100644
index 38cc6090..00000000
--- a/src/config/Service/Update/Panic.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.panic:
- class: NHDS\Jobs\Service\Update\Panic
- shared: false
- service.update.panic:
- alias: nhds.jobs.service.update.panic
\ No newline at end of file
diff --git a/src/config/Service/Update/Panic/Factory.yml b/src/config/Service/Update/Panic/Factory.yml
deleted file mode 100644
index b92fd36c..00000000
--- a/src/config/Service/Update/Panic/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.panic.factory:
- class: NHDS\Jobs\Service\Update\Panic\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdatePanic, ['@service.update.panic']]
- service.update.panic.factory:
- alias: nhds.jobs.service.update.panic.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Retry.yml b/src/config/Service/Update/Retry.yml
deleted file mode 100644
index 01da0299..00000000
--- a/src/config/Service/Update/Retry.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.retry:
- class: NHDS\Jobs\Service\Update\Retry
- shared: false
- service.update.retry:
- alias: nhds.jobs.service.update.retry
\ No newline at end of file
diff --git a/src/config/Service/Update/Retry/Factory.yml b/src/config/Service/Update/Retry/Factory.yml
deleted file mode 100644
index b6811854..00000000
--- a/src/config/Service/Update/Retry/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.retry.factory:
- class: NHDS\Jobs\Service\Update\Retry\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateRetry, ['@service.update.retry']]
- service.update.retry.factory:
- alias: nhds.jobs.service.update.retry.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Wait.yml b/src/config/Service/Update/Wait.yml
deleted file mode 100644
index 13308891..00000000
--- a/src/config/Service/Update/Wait.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.wait:
- class: NHDS\Jobs\Service\Update\Wait
- shared: false
- service.update.wait:
- alias: nhds.jobs.service.update.wait
\ No newline at end of file
diff --git a/src/config/Service/Update/Wait/Factory.yml b/src/config/Service/Update/Wait/Factory.yml
deleted file mode 100644
index 1edfc836..00000000
--- a/src/config/Service/Update/Wait/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.wait.factory:
- class: NHDS\Jobs\Service\Update\Wait\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateWait, ['@service.update.wait']]
- service.update.wait.factory:
- alias: nhds.jobs.service.update.wait.factory
\ No newline at end of file
diff --git a/src/config/Service/Update/Work.yml b/src/config/Service/Update/Work.yml
deleted file mode 100644
index 030d4049..00000000
--- a/src/config/Service/Update/Work.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.service.update.work:
- class: NHDS\Jobs\Service\Update\Work
- shared: false
- service.update.work:
- alias: nhds.jobs.service.update.work
\ No newline at end of file
diff --git a/src/config/Service/Update/Work/Factory.yml b/src/config/Service/Update/Work/Factory.yml
deleted file mode 100644
index b9382fd7..00000000
--- a/src/config/Service/Update/Work/Factory.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
- nhds.jobs.service.update.work.factory:
- class: NHDS\Jobs\Service\Update\Work\Factory
- calls:
- - [setStateService, ['@state.service']]
- - [setServiceUpdateWork, ['@service.update.work']]
- service.update.work.factory:
- alias: nhds.jobs.service.update.work.factory
\ No newline at end of file
diff --git a/src/config/State/Service.yml b/src/config/State/Service.yml
deleted file mode 100644
index 3157e56a..00000000
--- a/src/config/State/Service.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
- nhds.jobs.state.service:
- class: NHDS\Jobs\State\Service
- shared: false
- calls:
- - [setTime, ['@nhds.toolkit.time']]
- - [setTypeRepository, ['@type.repository']]
- state.service:
- alias: nhds.jobs.state.service
\ No newline at end of file
diff --git a/src/config/Type/Repository.yml b/src/config/Type/Repository.yml
deleted file mode 100644
index 2ca95a70..00000000
--- a/src/config/Type/Repository.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.type.repository:
- class: NHDS\Jobs\Type\Repository
- calls:
- - [setJobType, ['@data.job.type']]
- type.repository:
- alias: nhds.jobs.type.repository
\ No newline at end of file
diff --git a/src/config/Type/Service/Create.yml b/src/config/Type/Service/Create.yml
deleted file mode 100644
index c7111028..00000000
--- a/src/config/Type/Service/Create.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-services:
- nhds.jobs.type.service.create:
- class: NHDS\Jobs\Type\Service\Create
- calls:
- - [setJobType, ['@data.job.type']]
- type.service.create:
- alias: nhds.jobs.type.service.create
\ No newline at end of file
diff --git a/src/config/Worker/Bootstrap.yml b/src/config/Worker/Bootstrap.yml
deleted file mode 100644
index d9ee412c..00000000
--- a/src/config/Worker/Bootstrap.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- nhds.jobs.worker.bootstrap:
- class: NHDS\Jobs\Worker\Bootstrap
- worker.bootstrap:
- alias: nhds.jobs.worker.bootstrap
\ No newline at end of file
diff --git a/src/config/Worker/Locator.yml b/src/config/Worker/Locator.yml
deleted file mode 100644
index 044eb5b4..00000000
--- a/src/config/Worker/Locator.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-services:
- nhds.jobs.worker.locator:
- class: NHDS\Jobs\Worker\Locator
- shared: false
- worker.locator:
- alias: nhds.jobs.worker.locator
\ No newline at end of file
diff --git a/src/config/root.yml b/src/config/root.yml
deleted file mode 100644
index 2027b190..00000000
--- a/src/config/root.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-services:
- _defaults:
- autowire: false
- autoconfigure: false
- public: false
-imports:
- # External dependencies.
- - { resource: dependencies.yml }
-
- # Manager.
- - { resource: Foreman.yml }
- - { resource: Scheduler.yml }
- - { resource: Maintainer.yml }
- - { resource: Selector.yml }
-
- # Manger delegate.
- - { resource: Maintainer/Delete.yml }
- - { resource: Scheduler/Time.yml }
- - { resource: Scheduler/Cache.yml }
-
- # Data.
- - { resource: Data/Job/Type.yml }
- - { resource: Data/Job/Type/Collection/Iterator.yml}
- - { resource: Data/Job/Type/Collection/Scheduler.yml }
- - { resource: Data/Job.yml }
- - { resource: Data/Job/Collection/Scheduler.yml }
- - { resource: Data/Job/Collection/Selector.yml }
- - { resource: Data/Job/Collection/Iterator.yml }
- - { resource: Data/Job/Collection/ScheduleLimit.yml }
- - { resource: Data/Job/Collection/CrashDetection.yml }
- - { resource: Data/Job/Collection/Delete.yml }
- - { resource: Data/Job/Collection/Schedule/LimitCheck.yml }
-
- # Repository.
- - { resource: Type/Repository.yml }
- - { resource: Type/Service/Create.yml }
-
- # Factory.
- - { resource: Service/Update/Crash/Factory.yml }
- - { resource: Service/Create/Factory.yml }
- - { resource: Service/Update/Work/Factory.yml }
- - { resource: Service/Update/Complete/FailedScheduleLimitCheck/Factory.yml }
- - { resource: Service/Update/Panic/Factory.yml }
- - { resource: Service/Update/Wait/Factory.yml }
- - { resource: Service/Update/Hold/Factory.yml }
- - { resource: Service/Update/Retry/Factory.yml }
- - { resource: Service/Update/Complete/Failed/Factory.yml }
- - { resource: Service/Update/Complete/Success/Factory.yml }
- - { resource: Semaphore/Resource/Factory.yml }
- - { resource: Process/Pool/Factory.yml }
-
- # Services.
- - { resource: State/Service.yml }
- - { resource: Service/Create.yml }
- - { resource: Service/Update/Crash.yml }
- - { resource: Service/Update/Work.yml }
- - { resource: Service/Update/Complete/FailedScheduleLimitCheck.yml }
- - { resource: Service/Update/Panic.yml }
- - { resource: Service/Update/Wait.yml }
- - { resource: Service/Update/Hold.yml }
- - { resource: Service/Update/Retry.yml }
- - { resource: Service/Update/Complete/Failed.yml }
- - { resource: Service/Update/Complete/Success.yml }
-
- # Semaphore.
- - { resource: Semaphore/Resource.yml }
- - { resource: Semaphore/Resource/Owner/Job.yml }
- - { resource: Semaphore/Mutex/Flock.yml }
- - { resource: Semaphore.yml }
-
- # Process.
- - { resource: Process/Listener/Command.yml }
- - { resource: Process/Job.yml }
- - { resource: Process/Job/Required.yml }
- - { resource: Process/Root.yml }
- - { resource: Process/Pool/Logger.yml }
- - { resource: Process/Pool/Server.yml }
- - { resource: Process/Pool/Strategy.yml }
- - { resource: Process/Pool.yml }
- - { resource: Process/Collection.yml }
- - { resource: Process/Collection/Iterator.yml }
- - { resource: Process/Strategy/ProcessControl.yml }
-
- # Database.
- - { resource: Db/Connection/Container.yml }
- - { resource: Db/Setup.yml }
- - { resource: Db/Setup/Schema/Version_0_0_0.yml }
- - { resource: Db/Setup/Schema/Version_1_0_0.yml }
- - { resource: Db/Setup/Schema/Version_2_0_0.yml }
- - { resource: Db/Setup/Schema/Version_3_0_0.yml }
- - { resource: Db/Setup/Schema/Version_4_0_0.yml }
- - { resource: Db/Setup/Schema/Version_5_0_0.yml }
- - { resource: Db/Setup/Schema/Version_6_0_0.yml }
- - { resource: Db/TearDown.yml }
- - { resource: Db/TearDown/Schema/Version_0_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_1_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_2_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_3_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_4_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_5_0_0.yml }
- - { resource: Db/TearDown/Schema/Version_6_0_0.yml }
-
- # Message Broker.
- - { resource: Message/Broker/Redis.yml }
- - { resource: Message/Broker/Type/Collection.yml }
-
- # Worker.
- - { resource: Worker/Locator.yml }
- - { resource: Worker/Bootstrap.yml }
- - { resource: Worker/Job/Service.yml }
-
- # Console.
- - { resource: Console/Command/Process/Pool/Server/Start.yml }
- - { resource: Console/Command/Db/Setup/Install.yml }
- - { resource: Console/Command/Db/TearDown/Uninstall.yml }
\ No newline at end of file
diff --git a/tests/Application/Db/PDO/Builder.yml b/tests/Application/Db/PDO/Builder.yml
new file mode 100644
index 00000000..42090b3c
--- /dev/null
+++ b/tests/Application/Db/PDO/Builder.yml
@@ -0,0 +1,4 @@
+services:
+ db.pdo.builder:
+ public: true
+ alias: neighborhoods.kojo.db.pdo.builder
\ No newline at end of file
diff --git a/tests/Application/Db/Setup.yml b/tests/Application/Db/Setup.yml
new file mode 100644
index 00000000..3ad370e8
--- /dev/null
+++ b/tests/Application/Db/Setup.yml
@@ -0,0 +1,4 @@
+services:
+ db.setup:
+ public: true
+ alias: neighborhoods.kojo.db.setup
\ No newline at end of file
diff --git a/tests/Application/Db/TearDown.yml b/tests/Application/Db/TearDown.yml
new file mode 100644
index 00000000..8112468b
--- /dev/null
+++ b/tests/Application/Db/TearDown.yml
@@ -0,0 +1,4 @@
+services:
+ db.tear_down:
+ public: true
+ alias: neighborhoods.kojo.db.tear_down
\ No newline at end of file
diff --git a/tests/Application/Environment/Parameters.yml b/tests/Application/Environment/Parameters.yml
new file mode 100644
index 00000000..ac91cdb2
--- /dev/null
+++ b/tests/Application/Environment/Parameters.yml
@@ -0,0 +1,8 @@
+parameters:
+ neighborhoods.kojo.environment.parameters.redis_port: '%env(REDIS_PORT)%'
+ neighborhoods.kojo.environment.parameters.redis_host: '%env(REDIS_HOST)%'
+ neighborhoods.kojo.environment.parameters.database_user_name: '%env(DATABASE_USERNAME)%'
+ neighborhoods.kojo.environment.parameters.database_password: '%env(DATABASE_PASSWORD)%'
+ neighborhoods.kojo.environment.parameters.database_adapter: '%env(DATABASE_ADAPTER)%'
+ neighborhoods.kojo.environment.parameters.database_host: '%env(DATABASE_HOST)%'
+ neighborhoods.kojo.environment.parameters.database_name: '%env(DATABASE_NAME)%'
\ No newline at end of file
diff --git a/tests/Application/Foreman.yml b/tests/Application/Foreman.yml
new file mode 100644
index 00000000..56e7f800
--- /dev/null
+++ b/tests/Application/Foreman.yml
@@ -0,0 +1,4 @@
+services:
+ foreman:
+ public: true
+ alias: neighborhoods.kojo.foreman
\ No newline at end of file
diff --git a/tests/Application/Process/Job.yml b/tests/Application/Process/Job.yml
new file mode 100644
index 00000000..3debd31c
--- /dev/null
+++ b/tests/Application/Process/Job.yml
@@ -0,0 +1,4 @@
+services:
+ process.job:
+ public: true
+ alias: neighborhoods.kojo.process.job
\ No newline at end of file
diff --git a/tests/Process/Strategy/Mock.php b/tests/Application/Process/Strategy/Mock.php
similarity index 55%
rename from tests/Process/Strategy/Mock.php
rename to tests/Application/Process/Strategy/Mock.php
index 28272263..282e1b4e 100644
--- a/tests/Process/Strategy/Mock.php
+++ b/tests/Application/Process/Strategy/Mock.php
@@ -1,9 +1,9 @@
_getTestContainerBuilder()->get('foreman');
+ return $this->_getContainerBuilderFacade()->getContainerBuilder()->get('foreman');
}
protected function _getSelector(): SelectorInterface
{
- return $this->_getTestContainerBuilder()->get('selector');
+ return $this->_getContainerBuilderFacade()->getContainerBuilder()->get('selector');
}
protected function _getJobProcess(): JobInterface
{
- return $this->_getTestContainerBuilder()->get('process.job');
- }
-
- protected function _getRequiredJobProcess(): JobInterface
- {
- return $this->_getTestContainerBuilder()->get('process.job.required');
+ return $this->_getContainerBuilderFacade()->getContainerBuilder()->get('process.job');
}
}
\ No newline at end of file
diff --git a/tests/Unit/fixtures/MaintainerInterfaceTest/1_job_types.yml b/tests/ForemanInterfaceTest/fixtures/workWorkers/1_job_types.yml
similarity index 66%
rename from tests/Unit/fixtures/MaintainerInterfaceTest/1_job_types.yml
rename to tests/ForemanInterfaceTest/fixtures/workWorkers/1_job_types.yml
index c592706f..a9195dab 100644
--- a/tests/Unit/fixtures/MaintainerInterfaceTest/1_job_types.yml
+++ b/tests/ForemanInterfaceTest/fixtures/workWorkers/1_job_types.yml
@@ -1,27 +1,29 @@
-nhds_job_type:
+kojo_job_type:
-
- nhds_job_type_id: 1
+ kojo_job_type_id: 1
type_code: "type_code_1"
name: "Name 1"
- worker_uri: ""
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
default_importance: 10
cron_expression:
schedule_limit: 0
+ schedule_limit_allowance: 1
is_enabled: 1
auto_complete_success: 1
auto_delete_interval_duration: 'PT0S'
-
- nhds_job_type_id: 2
+ kojo_job_type_id: 2
type_code: "type_code_2"
name: "Name 2"
- worker_uri: ""
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 0
default_importance: 10
cron_expression: "* * * * *"
- schedule_limit: 1
+ schedule_limit: 3
+ schedule_limit_allowance: 1
is_enabled: 1
auto_complete_success: 1
auto_delete_interval_duration: 'PT0S'
\ No newline at end of file
diff --git a/tests/Unit/fixtures/ForemanInterfaceTest/2_jobs.yml b/tests/ForemanInterfaceTest/fixtures/workWorkers/2_jobs.yml
similarity index 85%
rename from tests/Unit/fixtures/ForemanInterfaceTest/2_jobs.yml
rename to tests/ForemanInterfaceTest/fixtures/workWorkers/2_jobs.yml
index 8f2e972e..25636fae 100644
--- a/tests/Unit/fixtures/ForemanInterfaceTest/2_jobs.yml
+++ b/tests/ForemanInterfaceTest/fixtures/workWorkers/2_jobs.yml
@@ -1,6 +1,6 @@
-nhds_job:
+kojo_job:
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -10,7 +10,7 @@ nhds_job:
next_state_request: "working"
assigned_state: "waiting"
previous_state: "new"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -21,9 +21,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job.required'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -33,7 +32,7 @@ nhds_job:
next_state_request: "working"
assigned_state: "waiting"
previous_state: "new"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -44,9 +43,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -56,7 +54,7 @@ nhds_job:
next_state_request: "working"
assigned_state: "waiting"
previous_state: "new"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -67,9 +65,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -79,7 +76,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -90,9 +87,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -102,7 +98,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -113,9 +109,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -125,7 +120,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -136,9 +131,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -148,7 +142,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -159,9 +153,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -171,7 +164,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -182,9 +175,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -194,7 +186,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -205,9 +197,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -217,7 +208,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -228,9 +219,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -240,7 +230,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -251,9 +241,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -263,7 +252,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -274,9 +263,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -286,7 +274,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -297,9 +285,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -309,7 +296,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -320,9 +307,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -332,7 +318,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -343,9 +329,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -355,7 +340,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -366,9 +351,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -378,7 +362,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -389,9 +373,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -401,7 +384,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -412,9 +395,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -424,7 +406,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -435,9 +417,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -447,7 +428,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -458,9 +439,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -470,7 +450,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -481,9 +461,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -493,7 +472,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -504,9 +483,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -516,7 +494,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -527,9 +505,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -539,7 +516,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -550,9 +527,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -562,7 +538,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -573,9 +549,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -585,7 +560,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -596,9 +571,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -608,7 +582,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -619,9 +593,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -631,7 +604,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -642,9 +615,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -654,7 +626,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -665,9 +637,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -677,7 +648,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -688,9 +659,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -700,7 +670,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -711,9 +681,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -723,7 +692,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -734,9 +703,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -746,7 +714,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -757,9 +725,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -769,7 +736,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -780,9 +747,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -792,7 +758,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -803,9 +769,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -815,7 +780,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -826,9 +791,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -838,7 +802,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -849,9 +813,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -861,7 +824,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -872,9 +835,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -884,7 +846,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -895,9 +857,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -907,7 +868,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -918,9 +879,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -930,7 +890,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -941,9 +901,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -953,7 +912,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -964,9 +923,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -976,7 +934,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -987,9 +945,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -999,7 +956,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1010,9 +967,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1022,7 +978,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1033,9 +989,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1045,7 +1000,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1056,9 +1011,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1068,7 +1022,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1079,9 +1033,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1091,7 +1044,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1102,9 +1055,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1114,7 +1066,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1125,9 +1077,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1137,7 +1088,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1148,9 +1099,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1160,7 +1110,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1171,9 +1121,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1183,7 +1132,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1194,9 +1143,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1206,7 +1154,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1217,9 +1165,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1229,7 +1176,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1240,9 +1187,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1252,7 +1198,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1263,9 +1209,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1275,7 +1220,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1286,9 +1231,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1298,7 +1242,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1309,9 +1253,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1321,7 +1264,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1332,9 +1275,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1344,7 +1286,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1355,9 +1297,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1367,7 +1308,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1378,9 +1319,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1390,7 +1330,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1401,9 +1341,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1413,7 +1352,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1424,9 +1363,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1436,7 +1374,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1447,9 +1385,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1459,7 +1396,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1470,9 +1407,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1482,7 +1418,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1493,9 +1429,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1505,7 +1440,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1516,9 +1451,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1528,7 +1462,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1539,9 +1473,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1551,7 +1484,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1562,9 +1495,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1574,7 +1506,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1585,9 +1517,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1597,7 +1528,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1608,9 +1539,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1620,7 +1550,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1631,9 +1561,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1643,7 +1572,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1654,9 +1583,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1666,7 +1594,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1677,9 +1605,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1689,7 +1616,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1700,9 +1627,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1712,7 +1638,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1723,9 +1649,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1735,7 +1660,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1746,9 +1671,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1758,7 +1682,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1769,9 +1693,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1781,7 +1704,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1792,9 +1715,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1804,7 +1726,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1815,9 +1737,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1827,7 +1748,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1838,9 +1759,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1850,7 +1770,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1861,9 +1781,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1873,7 +1792,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1884,9 +1803,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1896,7 +1814,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1907,9 +1825,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1919,7 +1836,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1930,9 +1847,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1942,7 +1858,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1953,9 +1869,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1965,7 +1880,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1976,9 +1891,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -1988,7 +1902,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -1999,9 +1913,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2011,7 +1924,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2022,9 +1935,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2034,7 +1946,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2045,9 +1957,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2057,7 +1968,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2068,9 +1979,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2080,7 +1990,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2091,9 +2001,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2103,7 +2012,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2114,9 +2023,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2126,7 +2034,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2137,9 +2045,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2149,7 +2056,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2160,9 +2067,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2172,7 +2078,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2183,9 +2089,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2195,7 +2100,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2206,9 +2111,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2218,7 +2122,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2229,9 +2133,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2241,7 +2144,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2252,9 +2155,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2264,7 +2166,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2275,9 +2177,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2287,7 +2188,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2298,9 +2199,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2310,7 +2210,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2321,9 +2221,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2333,7 +2232,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2344,9 +2243,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2356,7 +2254,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2367,9 +2265,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2379,7 +2276,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2390,9 +2287,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2402,7 +2298,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2413,9 +2309,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2425,7 +2320,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2436,9 +2331,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2448,7 +2342,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2459,9 +2353,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2471,7 +2364,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2482,9 +2375,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2494,7 +2386,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2505,9 +2397,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2517,7 +2408,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2528,9 +2419,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2540,7 +2430,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2551,9 +2441,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2563,7 +2452,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2574,9 +2463,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2586,7 +2474,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2597,9 +2485,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2609,7 +2496,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2620,9 +2507,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2632,7 +2518,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2643,9 +2529,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2655,7 +2540,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2666,9 +2551,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2678,7 +2562,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2689,9 +2573,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2701,7 +2584,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2712,9 +2595,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2724,7 +2606,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2735,9 +2617,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2747,7 +2628,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2758,9 +2639,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2770,7 +2650,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2781,9 +2661,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2793,7 +2672,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2804,9 +2683,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2816,7 +2694,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2827,9 +2705,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2839,7 +2716,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2850,9 +2727,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2862,7 +2738,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2873,9 +2749,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2885,7 +2760,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2896,9 +2771,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2908,7 +2782,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2919,9 +2793,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2931,7 +2804,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2942,9 +2815,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2954,7 +2826,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2965,9 +2837,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -2977,7 +2848,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -2988,9 +2859,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3000,7 +2870,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3011,9 +2881,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3023,7 +2892,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3034,9 +2903,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3046,7 +2914,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3057,9 +2925,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3069,7 +2936,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3080,9 +2947,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3092,7 +2958,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3103,9 +2969,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3115,7 +2980,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3126,9 +2991,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3138,7 +3002,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3149,9 +3013,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3161,7 +3024,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3172,9 +3035,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3184,7 +3046,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3195,9 +3057,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3207,7 +3068,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3218,9 +3079,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3230,7 +3090,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3241,9 +3101,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3253,7 +3112,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3264,9 +3123,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3276,7 +3134,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3287,9 +3145,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3299,7 +3156,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3310,9 +3167,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3322,7 +3178,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3333,9 +3189,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3345,7 +3200,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3356,9 +3211,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3368,7 +3222,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3379,9 +3233,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3391,7 +3244,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3402,9 +3255,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3414,7 +3266,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3425,9 +3277,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3437,7 +3288,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3448,9 +3299,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3460,7 +3310,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3471,9 +3321,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3483,7 +3332,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3494,9 +3343,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3506,7 +3354,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3517,9 +3365,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3529,7 +3376,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3540,9 +3387,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3552,7 +3398,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3563,9 +3409,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3575,7 +3420,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3586,9 +3431,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3598,7 +3442,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3609,9 +3453,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3621,7 +3464,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3632,9 +3475,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3644,7 +3486,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3655,9 +3497,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3667,7 +3508,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3678,9 +3519,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3690,7 +3530,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3701,9 +3541,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3713,7 +3552,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3724,9 +3563,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3736,7 +3574,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3747,9 +3585,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3759,7 +3596,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3770,9 +3607,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3782,7 +3618,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3793,9 +3629,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3805,7 +3640,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3816,9 +3651,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3828,7 +3662,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3839,9 +3673,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3851,7 +3684,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3862,9 +3695,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3874,7 +3706,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3885,9 +3717,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3897,7 +3728,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3908,9 +3739,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3920,7 +3750,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3931,9 +3761,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3943,7 +3772,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3954,9 +3783,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3966,7 +3794,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -3977,9 +3805,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -3989,7 +3816,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4000,9 +3827,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4012,7 +3838,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4023,9 +3849,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4035,7 +3860,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4046,9 +3871,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4058,7 +3882,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4069,9 +3893,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4081,7 +3904,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4092,9 +3915,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4104,7 +3926,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4115,9 +3937,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4127,7 +3948,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4138,9 +3959,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4150,7 +3970,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4161,9 +3981,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4173,7 +3992,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4184,9 +4003,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4196,7 +4014,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4207,9 +4025,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4219,7 +4036,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4230,9 +4047,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4242,7 +4058,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4253,9 +4069,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4265,7 +4080,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4276,9 +4091,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4288,7 +4102,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4299,9 +4113,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4311,7 +4124,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4322,9 +4135,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4334,7 +4146,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4345,9 +4157,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4357,7 +4168,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4368,9 +4179,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4380,7 +4190,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4391,9 +4201,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4403,7 +4212,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4414,9 +4223,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4426,7 +4234,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4437,9 +4245,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4449,7 +4256,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4460,9 +4267,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4472,7 +4278,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4483,9 +4289,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4495,7 +4300,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4506,9 +4311,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4518,7 +4322,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4529,9 +4333,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_1"
name: "Name 1"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4541,7 +4344,7 @@ nhds_job:
next_state_request: "none"
assigned_state: "working"
previous_state: "waiting"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4552,9 +4355,8 @@ nhds_job:
times_crashed: 0
times_panicked: 0
created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job'
-
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
+ kojo_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
type_code: "type_code_2"
name: "Name 2"
priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
@@ -4564,7 +4366,7 @@ nhds_job:
next_state_request: "schedule_limit_check"
assigned_state: "waiting"
previous_state: "new"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
+ worker_uri: '\Neighborhoods\Kojo\Test\Worker\Mock'
worker_method: "work"
can_work_in_parallel: 1
last_transition_date_time: "2010-04-26 12:14:20"
@@ -4574,5 +4376,4 @@ nhds_job:
times_held: 0
times_crashed: 0
times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- process_type_code: 'job.required'
\ No newline at end of file
+ created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
\ No newline at end of file
diff --git a/tests/Unit/MaintainerInterfaceTest.php b/tests/Unit/MaintainerInterfaceTest.php
deleted file mode 100644
index e6f2201d..00000000
--- a/tests/Unit/MaintainerInterfaceTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-_getTestContainerBuilder()->get('nhds.jobs.maintainer');
- $maintainer->deleteCompletedJobs();
-
- return $this;
- }
-
- public function testUpdatePendingJobs()
- {
- $maintainer = $this->_getTestContainerBuilder()->get('nhds.jobs.maintainer');
- $maintainer->updatePendingJobs();
-
- return $this;
- }
-
- public function testRescheduleCrashedJobs()
- {
- $maintainer = $this->_getTestContainerBuilder()->get('nhds.jobs.maintainer');
- $maintainer->rescheduleCrashedJobs();
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/Process/PooIInterfaceTest.php b/tests/Unit/Process/PooIInterfaceTest.php
deleted file mode 100644
index 0c4623e3..00000000
--- a/tests/Unit/Process/PooIInterfaceTest.php
+++ /dev/null
@@ -1,18 +0,0 @@
-_getTestContainerBuilder()->get('nhds.jobs.process.pool.server');
-
-// $server->start();
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/Process/Pool/config/ServerInterfaceTest.yml b/tests/Unit/Process/Pool/config/ServerInterfaceTest.yml
deleted file mode 100644
index e23396a3..00000000
--- a/tests/Unit/Process/Pool/config/ServerInterfaceTest.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
- - { resource: ../../../..//config/root.yml }
\ No newline at end of file
diff --git a/tests/Unit/SchedulerInterfaceTest.php b/tests/Unit/SchedulerInterfaceTest.php
deleted file mode 100644
index 0a34cb23..00000000
--- a/tests/Unit/SchedulerInterfaceTest.php
+++ /dev/null
@@ -1,17 +0,0 @@
-_getTestContainerBuilder()->get('nhds.jobs.scheduler');
- $scheduler->scheduleStaticJobs();
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/SelectorInterfaceTest.php b/tests/Unit/SelectorInterfaceTest.php
deleted file mode 100644
index b715627e..00000000
--- a/tests/Unit/SelectorInterfaceTest.php
+++ /dev/null
@@ -1,17 +0,0 @@
-_getTestContainerBuilder()->get('selector');
- $selector->pick();
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/SemaphoreInterfaceTest.php b/tests/Unit/SemaphoreInterfaceTest.php
deleted file mode 100644
index dcfb05de..00000000
--- a/tests/Unit/SemaphoreInterfaceTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-_getTestContainerBuilder()->get('nhds.jobs.semaphore');
- $resource = $this->_getTestContainerBuilder()->get('nhds.jobs.semaphore.resource-job');
- $job = $this->_getTestContainerBuilder()->get('nhds.jobs.data.job');
- $job->setId(15);
- $job->setTypeCode('type_code');
- $job->setCanWorkInParallel(true);
- $resourceOwner = $resource->getResourceOwner();
- if ($resourceOwner instanceof Owner\Job) {
- $resourceOwner->setJob($job);
- }
- $semaphore->testAndSetLock($resource);
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/Service/CreateInterfaceTest.php b/tests/Unit/Service/CreateInterfaceTest.php
deleted file mode 100644
index b4f541f6..00000000
--- a/tests/Unit/Service/CreateInterfaceTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-_getTestContainerBuilder()->get('nhds.toolkit.time');
- $create = $this->_getTestContainerBuilder()->get('service.create');
- $create->setJobTypeCode('type_code_2');
- $create->setWorkAtDateTime($time->getNow());
- $create->save();
-
- return $this;
- }
-}
\ No newline at end of file
diff --git a/tests/Unit/Service/config/CreateInterfaceTest.yml b/tests/Unit/Service/config/CreateInterfaceTest.yml
deleted file mode 100644
index e0b8911f..00000000
--- a/tests/Unit/Service/config/CreateInterfaceTest.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-imports:
- - { resource: ../../../../../../src/config/root.yml }
-services:
- nhds.jobs.db.connection.container-schema:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_SCHEMA')"]]
- - [setPdo, ["@pdo"]]
- nhds.jobs.db.connection.container-job:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_JOB')"]]
- - [setPdo, ["@pdo"]]
- pdo:
- class: \Pdo
- arguments: ['mysql:dbname=jobs;host=mysql', 'root', 'nhdsroot']
\ No newline at end of file
diff --git a/tests/Unit/Service/fixtures/CreateInterfaceTest/1_job_types.yml b/tests/Unit/Service/fixtures/CreateInterfaceTest/1_job_types.yml
deleted file mode 100644
index 144a92af..00000000
--- a/tests/Unit/Service/fixtures/CreateInterfaceTest/1_job_types.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-nhds_job_type:
- -
- nhds_job_type_id: 1
- type_code: "type_code_1"
- name: "Name 1"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- default_importance: 10
- cron_expression:
- schedule_limit: 0
- is_enabled: 1
- -
- nhds_job_type_id: 2
- type_code: "type_code_2"
- name: "Name 2"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 0
- default_importance: 10
- cron_expression: "* * * * *"
- schedule_limit: 12
- is_enabled: 1
\ No newline at end of file
diff --git a/tests/Unit/Service/fixtures/CreateInterfaceTest/2_jobs.yml b/tests/Unit/Service/fixtures/CreateInterfaceTest/2_jobs.yml
deleted file mode 100644
index 415c3192..00000000
--- a/tests/Unit/Service/fixtures/CreateInterfaceTest/2_jobs.yml
+++ /dev/null
@@ -1,1782 +0,0 @@
-nhds_job:
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().add(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('P1D')).format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "new"
- previous_state: "empty"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
\ No newline at end of file
diff --git a/tests/Unit/config/ForemanInterfaceTest.yml b/tests/Unit/config/ForemanInterfaceTest.yml
deleted file mode 100644
index 2badce77..00000000
--- a/tests/Unit/config/ForemanInterfaceTest.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-imports:
- - { resource: ../../config/root.yml }
-services:
- foreman:
- public: true
- alias: nhds.jobs.foreman
- selector:
- public: true
- alias: nhds.jobs.selector
- process.job:
- public: true
- alias: nhds.jobs.process.job
- process.job.required:
- public: true
- alias: nhds.jobs.process.job.required
\ No newline at end of file
diff --git a/tests/Unit/config/MaintainerInterfaceTest.yml b/tests/Unit/config/MaintainerInterfaceTest.yml
deleted file mode 100644
index 1e618df2..00000000
--- a/tests/Unit/config/MaintainerInterfaceTest.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
- - { resource: ../../config/root.yml }
\ No newline at end of file
diff --git a/tests/Unit/config/SchedulerInterfaceTest.yml b/tests/Unit/config/SchedulerInterfaceTest.yml
deleted file mode 100644
index 1e618df2..00000000
--- a/tests/Unit/config/SchedulerInterfaceTest.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
- - { resource: ../../config/root.yml }
\ No newline at end of file
diff --git a/tests/Unit/config/SelectorInterfaceTest.yml b/tests/Unit/config/SelectorInterfaceTest.yml
deleted file mode 100644
index 01aef659..00000000
--- a/tests/Unit/config/SelectorInterfaceTest.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-imports:
- - { resource: ../../config/root.yml }
-services:
- selector:
- public: true
- alias: nhds.jobs.selector
\ No newline at end of file
diff --git a/tests/Unit/config/SemaphoreInterfaceTest.yml b/tests/Unit/config/SemaphoreInterfaceTest.yml
deleted file mode 100644
index 1e618df2..00000000
--- a/tests/Unit/config/SemaphoreInterfaceTest.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
- - { resource: ../../config/root.yml }
\ No newline at end of file
diff --git a/tests/Unit/fixtures/ForemanInterfaceTest/1_job_types.yml b/tests/Unit/fixtures/ForemanInterfaceTest/1_job_types.yml
deleted file mode 100644
index df79818c..00000000
--- a/tests/Unit/fixtures/ForemanInterfaceTest/1_job_types.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-nhds_job_type:
- -
- nhds_job_type_id: 1
- type_code: "type_code_1"
- name: "Name 1"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
- worker_method: "work"
- can_work_in_parallel: 1
- default_importance: 10
- cron_expression:
- schedule_limit: 0
- is_enabled: 1
- auto_complete_success: 1
- auto_delete_interval_duration: 'PT0S'
- process_type_code: 'job'
- -
- nhds_job_type_id: 2
- type_code: "type_code_2"
- name: "Name 2"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
- worker_method: "work"
- can_work_in_parallel: 0
- default_importance: 10
- cron_expression: "* * * * *"
- schedule_limit: 3
- is_enabled: 1
- auto_complete_success: 1
- auto_delete_interval_duration: 'PT0S'
- process_type_code: 'job.required'
\ No newline at end of file
diff --git a/tests/Unit/fixtures/MaintainerInterfaceTest/2_jobs.yml b/tests/Unit/fixtures/MaintainerInterfaceTest/2_jobs.yml
deleted file mode 100644
index 070658de..00000000
--- a/tests/Unit/fixtures/MaintainerInterfaceTest/2_jobs.yml
+++ /dev/null
@@ -1,441 +0,0 @@
-nhds_job:
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_1"
- name: "Name 1"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "none"
- assigned_state: "working"
- previous_state: "waiting"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- -
- nhds_job_id: !fixture/expression: numberPool.advance('job_id').getCurrentNumber('job_id')
- type_code: "type_code_2"
- name: "Name 2"
- priority: !fixture/expression: numberPool.getCurrentNumber('job_id')
- importance: !fixture/expression: numberPool.getCurrentNumber('job_id')
- status_id: !fixture/expression: numberPool.getCurrentNumber('job_id')
- work_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
- next_state_request: "working"
- assigned_state: "pending_limit_check"
- previous_state: "new"
- worker_uri: ""
- worker_method: "work"
- can_work_in_parallel: 1
- last_transition_date_time: "2010-04-26 12:14:20"
- last_transition_micro_time: 1511915506563849
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
\ No newline at end of file
diff --git a/tests/Unit/fixtures/SchedulerInterfaceTest/2_jobs.yml b/tests/Unit/fixtures/SchedulerInterfaceTest/2_jobs.yml
deleted file mode 100644
index f37382a9..00000000
--- a/tests/Unit/fixtures/SchedulerInterfaceTest/2_jobs.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-nhds_job:
--
- nhds_job_id: 2
- type_code: type_code_2
- name: 'Name 2'
- priority: 10
- importance: 10
- status_id: null
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('PT3M')).format('Y-m-d H:i:s')
- next_state_request: schedule_limit_check
- assigned_state: waiting
- previous_state: new
- worker_uri: \NHDS\Jobs\Test\Worker\Mock
- worker_method: work
- can_work_in_parallel: 0
- last_transition_date_time: '2018-01-12 20:54:49'
- last_transition_micro_time: 1515790489896748
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
--
- nhds_job_id: 3
- type_code: type_code_2
- name: 'Name 2'
- priority: 10
- importance: 10
- status_id: null
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('PT2M')).format('Y-m-d H:i:s')
- next_state_request: schedule_limit_check
- assigned_state: waiting
- previous_state: new
- worker_uri: \NHDS\Jobs\Test\Worker\Mock
- worker_method: work
- can_work_in_parallel: 0
- last_transition_date_time: '2018-01-12 20:54:49'
- last_transition_micro_time: 1515790489908615
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
--
- nhds_job_id: 4
- type_code: type_code_2
- name: 'Name 2'
- priority: 10
- importance: 10
- status_id: null
- work_at_date_time: !fixture/expression: time.getNow().sub(time.getNewDateInterval('PT1M')).format('Y-m-d H:i:s')
- next_state_request: schedule_limit_check
- assigned_state: waiting
- previous_state: new
- worker_uri: \NHDS\Jobs\Test\Worker\Mock
- worker_method: work
- can_work_in_parallel: 0
- last_transition_date_time: '2018-01-12 20:54:49'
- last_transition_micro_time: 1515790489914568
- times_worked: 0
- times_retried: 0
- times_held: 0
- times_crashed: 0
- times_panicked: 0
- created_at_date_time: !fixture/expression: time.getNow().format('Y-m-d H:i:s')
diff --git a/tests/Unit/fixtures/SelectorInterfaceTest/1_job_types.yml b/tests/Unit/fixtures/SelectorInterfaceTest/1_job_types.yml
deleted file mode 100644
index df79818c..00000000
--- a/tests/Unit/fixtures/SelectorInterfaceTest/1_job_types.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-nhds_job_type:
- -
- nhds_job_type_id: 1
- type_code: "type_code_1"
- name: "Name 1"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
- worker_method: "work"
- can_work_in_parallel: 1
- default_importance: 10
- cron_expression:
- schedule_limit: 0
- is_enabled: 1
- auto_complete_success: 1
- auto_delete_interval_duration: 'PT0S'
- process_type_code: 'job'
- -
- nhds_job_type_id: 2
- type_code: "type_code_2"
- name: "Name 2"
- worker_uri: '\NHDS\Jobs\Test\Worker\Mock'
- worker_method: "work"
- can_work_in_parallel: 0
- default_importance: 10
- cron_expression: "* * * * *"
- schedule_limit: 3
- is_enabled: 1
- auto_complete_success: 1
- auto_delete_interval_duration: 'PT0S'
- process_type_code: 'job.required'
\ No newline at end of file
diff --git a/tests/config/Process/Strategy/Mock.yml b/tests/config/Process/Strategy/Mock.yml
deleted file mode 100644
index 8caee831..00000000
--- a/tests/config/Process/Strategy/Mock.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-services:
- nhds.jobs.test.process.strategy.mock:
- class: NHDS\Jobs\Test\Process\Strategy\Mock
diff --git a/tests/config/root.yml b/tests/config/root.yml
deleted file mode 100644
index 5d3d51da..00000000
--- a/tests/config/root.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-imports:
- - { resource: ../../../src/config/root.yml }
- - { resource: Process/Strategy/Mock.yml }
-services:
- nhds.jobs.db.connection.container-schema:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_SCHEMA')"]]
- - [setPdo, ["@pdo"]]
- nhds.jobs.db.connection.container-job:
- class: NHDS\Jobs\Db\Connection\Container
- calls:
- - [setName, ["@=constant('NHDS\\\\Jobs\\\\Db\\\\Connection\\\\ContainerInterface::NAME_JOB')"]]
- - [setPdo, ["@pdo"]]
- pdo:
- class: \Pdo
- arguments: ['mysql:dbname=jobs;host=mysql', 'root', 'nhdsroot']
- nhds.jobs.process.pool.logger:
- class: NHDS\Jobs\Process\Pool\Logger
- calls:
- - [setIsEnabled, [false]]
- db.tear_down:
- public: true
- alias: nhds.jobs.db.tear_down
- db.setup:
- public: true
- alias: nhds.jobs.db.setup
- redis:
- public: true
- class: \Redis
- calls:
- - [connect, ['redis', '6379']]
\ No newline at end of file