New server types in BILLmanager

From ISPWiki
Jump to: navigation, search

General information

Starting from version 5.85 BILLmanager supports new server types in DCImanager. New types in DCImanager are hardware configuration that updates automatically.

Configuration of procesiing module

In order to activate new types, select the "New server types" option in the "Integration settings" form.

Integration. New server types

After that, you will see the "Responsible for assembly" and "Responsible for purchase" fields on the "Processing module configuration" step.

Processing module. Departments responsible for purchase an assembly
  • "Responsible for assembly" - dedicated servers configuration tasks will be created for the selected department.
  • "Responsible for purchase" - purchase tasks will be created for the selected department.

You can also add "New server types" and responsible staff in the processing module configuration form. This option is only available if tariff plans are not created in the processing module.

Edit settings of the processing module

Creating a tariff plan

A tariff plan is created based on pre-defined configurations in DCImanager. If the processing module supports new server types, the "Server type" field is changed into the "Configuration" drop-down list on the tariff creation form. This list automatically includes the configurations of all servers from DCImanager. When generating a list of servers available in the control panel, the following conditions must be met for each server:

  • owner is not specified for the server;
  • domain name is "free.ds";
  • there are no issues with server equipment (the hwproblem flag in xml);
  • The "Protect server" check box is not selected for the server (the forcelock flag in xml, the "Shield" icon is shown in the list of servers).
Tariff plan creation

If the "Create all add-ons" option is selected (by default), add-ons will be created for the newly created tariff, and its status will change into "Synchronization with control panel". At that time users cannot perform a number of operations, such as edit, delete, clon, activate/suspend, edit add-ons. In order to update information about its current status, refresh the list of tariff plans.

If the "Create all add-ons" box is not checked, add-ons won't be created automatically and you will need to create them manually.

You can change the configuration when editing the tariff plan. The list of add-ons will be configured automatically:

  • add-ons will be deleted for the newly created tariff plan (provided that users didn't order services);
  • otherwise, old add-ons will be suspended.

On the screenshot below you can see a list of tariff add-ons that were created when we selected "2x2.80GHz-256Gb-1024SATA-320SATA-ASR-530-X"


Tariff add-ons

List of add-ons:

  • CPU - CPU type according to the server configuration in DCImanager; type - enumeration;
  • Number of CPU - number of CPU in the server configuration; type - integer;
  • RAM - amount of RAM; type - enumeration;
  • Hard drive - HDD type and size; a separate add-on should be created for each disk; type - enumeration;
  • Controller - type of PCI-controllers; a separate add-on is created for each controller of the selected configuration; type - enumeration.

If add-ons with enumerations are created automatically, only one element corresponding to the device from configuration, will be activated, If the device is not specified for the enumeration, the value will be created automatically.

The "Maximum value" and "Minimum value" fields of the "CPU number' add-on equal the value specified for the tariff plan.

Therefore, the newly created tariff plan will fully match the selected configuration; when a client makes a new order, he won't be able to choose hardware.

You can configure add-ons manually if needed. Please note, at least 4 add-ons: processor, number of processors, RAM, and hard drive are required for correct operation.

Besides, you can activate other enumeration elements, and specify other maximum/minimum values for add-ons. In this case customers will be able to choose configuration according to their needs.

If you choose "Manually" in the creation/edit form, only a few add-ons will be created: CPU, number of CPU, RAM, HDD. They will be activated, but will have empty values (you will need to specify them manually).

On the screenshot below you can see a list of tariff add-ons, that were created when we selected "Manually".

Tariff add-ons


Please note - changing default values for an add-on will activate those values. The old value will be also used, you should disable it manually.

Changes in the "Dedicated servers" product type

The following add-ons are created for DCImanager new server types (internal names are given in brackets):

  • CPU (cpu);
  • Number of CPU (ncpu);
  • RAM (ram);
  • Hard drive 1-12 (hdd_1 - hdd_12);
  • Controller 1-4 (pci_1 - pci_4).


The following enumerations are created (internal names are given in brackets):

  • CPU (cpu)

by default it contains only one value - "Without cpu" (NOCPU); when new tariff plans are added or modified, values will be added automatically

Elements for "CPU"
  • Controller (pci)

by default it contains only one value - "Without controller" (NOCONTROLLER); when new tariff plans are added or modified, values will be added automatically

Elements for "Controller"
  • RAM (ram)

by default it contains values for RAM size 1 to 512 GB; when new tariff plans are added or modified, values will be added automatically

Elements for "RAM"
  • Hard drive (hdd)

by default it contains only one value - "Without disk" (NODISK); when new tariff plans are added or modified, values will be added automatically

Elements for "Hard drive"


Creating enumeration elements manually

In order to create an enumeration element, you need to provide correct internal names, which depend on the enumeration type:

  • hard drive - its internal name contains 2 fields: disk type (type; e.g. - SSD, SATA) and size (size) in GB separated by";"; field values are separated by ":", e.g. for SATA-disk, 320 GB in size:
 type:SATA;size:320
  • controller - its internal name contains 2 fields: controller type (type, e.g. - RAID) and name (name); e.g. for RAID-controller ASR5405:
name:ASR5405;type:RAID
  • RAM - internal name contains one figure, indicating the amount of RAM in GB
  • CPU - internal name contains a full name of the CPU


Values for internal names

Variant 1. Values for internal names can be defined using the xml list of servers in DCImanager (recommended).

In order to obtain a required xml, call the server function with the show_configuration=on parameter:

?func=server&out=xml&show_configuration=on

you can also filter the list, e.g.:

?func=server&out=xml&show_configuration=on&filter=on&id=<server id>

The xml will look like this:

<doc ...>
 <elem>
    <id>1</id>
    <configuration>
      <cpu name="E3-1231 v3 " rawname="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz " corecnt=""/>
      <hdd name="TOSHIBA MG03ACA100" size="1000" type="SATA"/>
      <hdd name="TOSHIBA MG03ACA100" size="1000" type="SATA"/>
      <ram size="16"/>
      <pci name="ASR3405" type="RAID"/>
    </configuration>
    ...
 </elem>
 ...
 </doc>

the configuration node contains information for internal names of enumeration elements:

  • CPU uses the rawname attribute;
  • hard drives use the size and type attributes;
  • RAM uses the size attribute;
  • controller - uses the name and type attributes


Variant 2. In DCImanager web-interface

Main menu -- "Equipment types":

  • cpu - enter the internal name into the "Name" field;
  • hard drives - the "Type" and "Size Gb" fields;
  • PCI (controllers) - the "Name" and "Type" fields.


For the xml above, create enumeration elements with the following names:

  • cpu- "Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz";
  • hard drives - "type:SATA;size:1000";
  • RAM - "16";
  • controller - "name:ASR3405;type:RAID".

Dedicated server management procedure

  1. The system defines configuration of the client's server based on add-ons. If a client orders the tariff plan and can choose hardware, the configuration may differ from the default one;
  2. When generating a list of available servers, the system will compare server configuration with the configuration selected by the user;
  3. If the server with required configuration is not found, it will be installed according to the standard scheme;
  4. If the server is not found, or an error occurred and there are no available servers with required configuration, a task for server assembly will created;
  5. If the server cannot be assembled, the system will add a new task for purchase of required hardware.

Attention! Tasks can be created only in DCImanager with active inventory module (be sure to add the InventoryModule option into the DCImanager configuration file).

Task for server assembly

  1. The system will search for a server with matching processors, and complete the following steps:
    1. First, the system will check servers that differ from ordered configuration only by hard drives;
    2. If such servers are not found, it will proceed with all other servers;
    3. The server that was configured with the least number of will be assembled сборку отдается сервер с наименьшим числом перестановок.
  2. If the server with matching servers is not found, the system will check "clean" servers (the xml configuration/cpu not is not specified);
    1. Next, for all such servers it will check correspondance of the platform with CPU in the ordered configuration;
    2. If the platform matches, the server is selected.
  3. If the server is not found, the system will search for the one among available server with other processors, but matching platform;
  4. The found server is assigned to administrator;
  5. A task is created.

Server assembly task

On the screenshot below you can see a task for server assembly (when the task is already assigned to a staff member).

Server assembly

Fields description:

  • Available server - when the staff member closes the task, an attempt to activate the ready server will be made;
  • Rack number - number of the rack with the server;
  • Label - server name.

The "Add devices" and "Remove devices" contain a list of hardware devices that should be installed or removed during server assembly. Their contents depend on specific situation (ordered configuration and server). In general, it can contain the following information:

  • Processor - processor that should be installed/removed from the server;
  • Hard drive - hard drive that should be installed/removed from the server;
  • RAM - amount of RAM that should be installed/removed from the server;
  • Controller - controller that should be installed/removed from the server;

The number of devices for hard drives, processors, and controllers is specified before the name of the device (1x, 2x, etc.) E.g. "1xSATA 1024 Gb"

What happens when a staff member closes the task:

  1. If the option "Available server" is selected, the reserved server is marked available (the task "Release of dedicated server" will be created if the process fails), and the standard procedure for server activation will be performed.
  2. Otherwise:
    1. The server diagnostics procedure starts;
    2. Once completed successfully, server configuration will be compared with configuration selected by the user. If they match, the server deployment process will start, otherwise, the assembly task will be created.

Task for hardware purchase

  1. If the server for assembly is not found, the system will create a task for purchase;
  2. Next, it will calculate the number of processors of a required type in the warehouse (including processors reserved in other tasks for assembly or purchase);
  3. If the number of available processors with certain configuration is not enough, the system will create a task to purchase them;
  4. It will try to choose a server with matching platform (see 3.2);
  5. If the server with required platform is found, it will be assigned to an administrator and the user's service;
  6. If the platform is not found, the system will create a task for purchase.

Hardware purchase task

On the screenshot below you can see a task for hardware purchase (when the task is already assigned to a staff member).

Hardware purchase task

Fields description:

  • Available server - when a staff member closes the task, the system will try to activate the ready server; п
  • Processor - number and type of processors you need to purchase;
  • Platform for processor - number and type of processors.

The task may contain either the "Processor" or "Platform for processors" fields, or both.

Attention! Before you close the task, log in to DCImanager, and provide information about the purchased hardware taking into account requirements to processors names and platform names

What happens when a staff member closes the task:

  1. If the option "Available server" is selected, the reserved server is marked available (the task "Release of dedicated server" will be created if the process fails), and the standard procedure for server activation will be performed.
  2. otherwise, the assembly task will be created.

How the system selects a server with required platform

Let's assume that a user ordered a server with two processors "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

When you search for a server in the warehouse, the processor and platform names are brought to a common standard.

For processor:

  • information between "CPU" and "@" of the processor name will be taken, "-" and "_" symbols will be changed into " " (space): E3 1230 v3;
  • the middle part of the resulting record will be cut, and if there are multiple processors, the number of processors will be added at the beginning of the record: 2E3v3.

For platform:

  • information before the first space of the platform name (e.g., "2_E3_v3 Blade") will be taken: 2_e3_v3;
  • "_" and "x" will be changed into spaces: 2E3v3.

Search results are not case-sensitive, thus the server with the "2_E3_v3 Blade" platform can be used for configuration, which includes 2 processors "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

Searching processors in warehouse

Let's assume that the user ordered a server with two processors "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz".

When you search in the warehouse, processor name in the configuration and in the warehouse are на складе имя процессора в конфигурации и имя процессора на складе приводятся к общему виду.

For processor from configuration:

  • information between "CPU" and "@" of the processor name will be taken. "-" and "_" symbols will be deleted: E31230v3

For processor from the warehouse:

  • information from the first right side (before the space) of the processor name will be taken. "-" and "_" symbols will be deleted. Example for "CPU Xeon E3-1230V3": E31230V3

Search results are not case-sensitive, thus "Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz" and "CPU Xeon E3-1230V3" are considered the same processor.

Execute the following request in order to get a list of devices in DCImanager warehouse:

func=ispare&out=xml&filter=on&placement=0

Any device with type name starting with "CPU" is considered processor.

CPU name format

Names of Intel processors have the following format:

<Brand> <Product Line> <Product Family> <Version>

где:

  • Brand - brand, e.g. "Intel® Xeon® Processor"
  • Product Line - product line. eg.g E3, E5, E7
  • Product Family - product family, e.g. 1230.
  • Version - вversion, e.g. V2, V3.

Example of the processor name: "Intel(R) Xeon(R) CPU E5-2650 V4 @ 2.20GHz"

Requirements to platform names in DCImanager

Platfrom name format:

[number of CPU][x][_]<Product Line>[_]<Version> [Additional information]

where,

  • [] - mandatory field;
  • Product Line - supported processors;
  • Version - version of supported processors.

Examples of valid names:

  • 2_E3_v3 Blade;
  • 2xE5_v2 1U;
  • 2E5_v3 1U.

Requirements to processor name in DCImanager warehouse

Format name for device type for processor:

CPU [Name] <Product Line>-<Product Family><Version>

where:

  • Name - name, e.g. Xeon;
  • Product Line - product line;
  • Product Family - product family;
  • Version - version.

Examples of valid names:

  • CPU Xeon E3-1230V3;
  • CPU Xeon E5-2680V2;
  • CPU Xeon E5-2697v2.

Service reselling

Complete the steps described in the article Service reselling

When you change tariff configuration, old add-ons will be disabled, and new ones will be activated. During tariff synchronization, new add-ons will be imported suspended. This may suspend a tariff plan on the reselling side, as all add-ons will be disabled as well. To avoid this, use the key new_addon_active=on when calling the synchronization command:

cd /usr/local/mgr5
./sbin/mgrctl -m billmgr pricelist.sync elid=<tariff id> new_addon_active=on