• Recent
  • Unsolved
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
  • Recent
  • Unsolved
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login

Creating Task with TaskTypeManagement

Scheduled Pinned Locked Moved Solved
General Problems
5
23
5.7k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C
    cjenness
    last edited by Jun 15, 2017, 12:55 AM

    I’ve actually fixed the 500 error. I was missing a comma after boot.wim in the hook in OP. But I am not sure how to get the task type manager to call the hook.

    T 1 Reply Last reply Jun 15, 2017, 12:58 AM Reply Quote 0
    • C
      cjenness
      last edited by Jun 15, 2017, 12:58 AM

      So for the hook, I have just been editing the file /var/www/fog/lib/hooks/boottask.hook.php. The only part I have edited so far are the arguments that I posted above.

      T 1 Reply Last reply Jun 15, 2017, 12:58 AM Reply Quote 0
      • T
        Tom Elliott @cjenness
        last edited by Jun 15, 2017, 12:58 AM

        Can you paste the contents of the file (or upload the hook) here please?

        Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

        Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

        Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

        1 Reply Last reply Reply Quote 0
        • T
          Tom Elliott @cjenness
          last edited by Jun 15, 2017, 12:58 AM

          @cjenness Okay, if it’s the example, mark the active flag as true, that’s all you need to do.

          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

          Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

          Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

          1 Reply Last reply Reply Quote 0
          • C
            cjenness
            last edited by Sebastian Roth Jun 15, 2017, 2:17 AM Jun 15, 2017, 1:01 AM

            Here is the entire file. So I have marked the flag as true and I no longer get the http 500 error, but I am not sure how to create a task with this hook.

            <?php
            /**
             * Alters the boot task to make a custom entry.
             *
             * PHP version 5
             *
             * @category BootTask
             * @package  FOGProject
             * @author   Tom Elliott <tommygunsster@gmail.com>
             * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
             * @link     https://fogproject.org
             */
            /**
             * Alters the boot task to make a custom entry.
             *
             * @category BootTask
             * @package  FOGProject
             * @author   Tom Elliott <tommygunsster@gmail.com>
             * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
             * @link     https://fogproject.org
             */
            class BootTask extends Hook
            {
                /**
                 * The name of this hook.
                 *
                 * @var string
                 */
                public $name = 'BootTask';
                /**
                 * The description of this hook.
                 *
                 * @var string
                 */
                public $description = 'Alter the boot task to make a custom task hook';
                /**
                 * Is this hook active or not.
                 *
                 * @var bool
                 */
                public $active = true;
                /**
                 * Initializes object.
                 *
                 * @return void
                 */
                public function __construct()
                {
                    parent::__construct();
                    self::$HookManager
                        ->register(
                            'IPXE_EDIT',
                            array(
                                $this,
                                'changeTask'
                            )
                        );
                }
                /**
                 * Change the task.
                 *
                 * @param mixed $arguments The items to alter.
                 *
                 * @return void
                 */
                public function changeTask($arguments)
                {
                    if (!isset($arguments['ipxe']['task'])) {
                        return;
                    }
                    $TaskType = self::getClass('TaskType')
                        ->set('name', 'trusty-install')
                        ->load('name');
                    if (!$TaskType->isValid()) {
                        return;
                    }
                    $keys = array_keys($arguments['ipxe']['task']);
                    if (!in_array($TaskType->get('id'), $keys)) {
                        return;
                    }
                    $arguments['ipxe']['task'][$TaskType->get('id')] = array(
                        'cpuid --ext 29 && set arch amd64 ||',
                        'kernel http://${fog-ip}/win2012/${arch}/wimboot',
                        'initrd http://${fog-ip}/win2012/${arch}/media/Boot/BCD',
                        'initrd http://${fog-ip}/win2012/${arch}/media/Boot/boot.sdi',
                        'initrd http://${fog-ip}/win2012/${arch}/media/sources/boot.wim',
                        'boot ||',
                    );
                    $arguments['Host']
                        ->get('task')
                        ->set(
                            'stateID',
                            self::getCompleteState()
                        )->save();
                }
            }
            
            1 Reply Last reply Reply Quote 0
            • S
              Sebastian Roth Moderator
              last edited by Jun 15, 2017, 8:25 AM

              @cjenness In the FOG web GUI click on one of your hosts or groups, then click ‘Basic tasks’ on the left and ‘Advanced’ to show all the tasks available. Do you see “BootTask” here?

              Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

              Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

              1 Reply Last reply Reply Quote 1
              • T
                Tom Elliott
                last edited by Jun 15, 2017, 12:24 PM

                Well the “BootTask” would be whatever task type was created. The “boottask” is just the hook that makes that hook operate.

                Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                1 Reply Last reply Reply Quote 0
                • C
                  cjenness
                  last edited by Jun 15, 2017, 8:36 PM

                  Thank you guys for your help. So my question now is how do I tell the task type editor to use the hook that I just created?

                  1 Reply Last reply Reply Quote 0
                  • C
                    cjenness
                    last edited by Jun 15, 2017, 9:11 PM

                    Nevermind, I figured it out. You have to title your new task the name (trusty-install) in this portion.

                    $TaskType = self::getClass(‘TaskType’)
                    ->set(‘name’, ‘trusty-install’)
                    ->load(‘name’);
                    if (!$TaskType->isValid()) {
                    return;

                    1 Reply Last reply Reply Quote 1
                    • I
                      ianabc Testers
                      last edited by May 7, 2019, 1:38 AM

                      Sorry to resurrect an old thread, but this just came up as something we need to be able to do (assign a custom boot task to hosts/groups of hosts). My understanding of the discussion below is that I should

                      1. Enable plugins (Fog Configuration->Fog Settings->Plugin System->PluginSys Enabled)
                      2. Activate the tasktypeedit plugin
                      3. Edit lib/hooks/boottask.hook.php, setting public $active = true;

                      Then I should be able to visit a host page -> Basic Tasks -> Advanced Tasks and see ‘trusty-install’ as one of the options, but I don’t see any change to the menu. Have I missed something in the configuration?

                      1 Reply Last reply Reply Quote 0
                      • S
                        Sebastian Roth Moderator
                        last edited by May 9, 2019, 8:32 PM

                        @ianabc Have not had any time to look into this. Haven’t used that plugin in a long time and need to fiddle with it before I can give you any answer. Might be on the weekend.

                        Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                        Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sebastian Roth Moderator
                          last edited by May 12, 2019, 12:26 PM

                          @ianabc Had a bit more time to look into this now. You have missed one important point here. You need to manually create a new TaskType (web UI -> main menu -> TaskTypes -> Create New Task Type) and name that trusty-install - exactly the name of the task that is used in lib/hooks/boottask.hook.php (line 73). As soon as you’ve created this task type you should see it in Host -> Basic Tasks (or Host -> Basic Tasks -> Advanced Tasks if you’ve checked the “Is Advanced” checkbox when creating it!).

                          Now you can schedule this task type for any client or group and when it boots up it uses the arguments you set in lib/hooks/boottask.hook.php (line 83 to 93). But only if the names match. So if you name your new task bababoo you need to have that in your lib/hooks/boottask.hook.php line 73 as well.

                          Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                          Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                          1 Reply Last reply Reply Quote 0
                          • JJ FullmerJ JJ Fullmer referenced this topic on Nov 22, 2023, 2:20 PM
                          • 1
                          • 2
                          • 2 / 2
                          • First post
                            Last post

                          144

                          Online

                          12.0k

                          Users

                          17.3k

                          Topics

                          155.2k

                          Posts
                          Copyright © 2012-2024 FOG Project