485 | | |
| 485 | {{{#!th colspan=2 align=justify |
| 486 | '''Use case''': [=#CreatingVMsdynamically Creating VMs dynamically] |
| 487 | }}} |
| 488 | |---------------- |
| 489 | {{{#!td |
| 490 | '''Description''' |
| 491 | }}} |
| 492 | {{{#!td |
| 493 | The user will indicate in the "__resources.conf__" with the configuration keys "'''''max_nodes'''''" and "'''''min_nodes'''''" how many VMs he wants created. |
| 494 | }}} |
| 495 | |---------------- |
| 496 | {{{#!td |
| 497 | '''Primary Actor''' |
| 498 | }}} |
| 499 | {{{#!td |
| 500 | User |
| 501 | }}} |
| 502 | |---------------- |
| 503 | {{{#!td |
| 504 | '''Preconditions''' |
| 505 | }}} |
| 506 | {{{#!td |
| 507 | * There must be a resource in the configuration defined with the purpose for the creation of VMs |
| 508 | * The user must have already [#Creatingcloudcredentials created his x509 certificate proxy] |
| 509 | }}} |
| 510 | |---------------- |
| 511 | {{{#!td |
| 512 | '''Basic Flow''' |
| 513 | }}} |
| 514 | {{{#!td |
| 515 | 1. The program checks how may VMs are already available |
| 516 | a. If the total number of created VMs is the same as "'''''min_nodes'''''" it does nothing |
| 517 | a. If the total number of created VMs is less than "'''''min_nodes'''''" it creates as many VMs necessary to reach "'''''min_nodes'''''" |
| 518 | 1. After "'''''min_nodes'''''" VMs have been created, if there are still a certain number of jobs in a ''pending'' state for a hard-coded period of time, an additional VM will be created |
| 519 | a. This will go on for every cycle until either the number of VMs has reached "'''''max_nodes'''''" or until the number of ''pending'' jobs goes below the aforementioned limit |
| 520 | 1. If the number of ''pending'' jobs is below the aforementioned limit but the amount of time they have been ''pending'' is larger than several times the aforementioned limit, an additional VM will be created as long as the number of created VMs is smaller than "'''''max_nodes'''''" |
| 521 | }}} |
| 522 | |---------------- |
| 523 | {{{#!td |
| 524 | '''Postconditions''' |
| 525 | }}} |
| 526 | {{{#!td |
| 527 | * As long as the billing hasn't reached it's limit, there will always be a VM available for use |
| 528 | }}} |
| 529 | |---------------- |
| 530 | {{{#!td |
| 531 | '''Alternate Flow''' |
| 532 | }}} |
| 533 | {{{#!td |
| 534 | 1. If the user hasn't specified "'''''max_nodes'''''" or "'''''min_nodes'''''" |
| 535 | a. "'''''min_nodes'''''" will be given a value of zero |
| 536 | a. "'''''max_nodes'''''" won't be given a limit |
| 537 | 1. If only "'''''min_nodes'''''" has been specified, "'''''max_nodes'''''" will be given the same value |
| 538 | 1. If only "'''''max_nodes'''''" has been specified, "'''''min_nodes'''''" will be given a value of zero |
| 539 | }}} |
| 540 | |
| 541 | |
| 542 | |
| 543 | [[br]] |
| 544 | |
| 545 | |
| 546 | |
| 547 | {{{#!comment |