Commit Graph

516 Commits

Author SHA1 Message Date
Andreas Jaeger e61cc055ab Retire repository
Fuel (from openstack namespace) and fuel-ccp (in x namespace)
repositories are unused and ready to retire.

This change removes all content from the repository and adds the usual
README file to point out that the repository is retired following the
process from
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

See also
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011647.html

Depends-On: https://review.opendev.org/699362
Change-Id: I10917e42829b459c41ca46514faa72fc46abf7be
2019-12-18 09:52:23 +01:00
Georgy Kibardin 2caa56fa6e Moving task cache update into task creation transaction
Doing this we avoid inclusion of task cache update statement into the next
transaction which may cause different problems such as deadlocks.
(update happens inside make_astute_message() function)

Change-Id: I865b98beb621bee089cf79f1304498fd3637d64f
Closes-Bug: #1618852
2017-03-23 05:15:48 +00:00
Igor Gajsin 634b66df45 remove vmware
VMware not supported since Fuel 10.

Implements: blueprint remove-vmware

Change-Id: Ia26a97d13bb9c3d2e838d639efdababbb15f86da
2017-02-14 15:52:27 +00:00
Georgy Kibardin ff04eb8394 Moving task cache update into task creation transaction
Doing this we avoid inclusion of task cache update statement into the next
transaction which may cause different problems such as deadlock.
In this particular case we've got the following deadlock:
1. DeleteIBPImagesTask makes UPDATE tasks SET cache....
2. Response handler in receiver makes SELECT clusters FOR UPDATE
3. The code following DeleteIBPImagesTask makes SELECT clusters FOR UPDATE
4. Response handler performs SELECTS tasks FOR UPDATE

Change-Id: Ic8e5f2386364421b0667f920499e031f587f726e
Closes-Bug: #1653083
2017-01-31 12:31:59 +00:00
Anastasiya 93f40003de Fix naming of reset tasks and message duplication
* reset_environment supertask contains 3 subtasks:
  base_reset_environment, remove_keys_task,
  remove_ironic_bootstrap_task
* names for tasks were changed
* response methods for remove_keys_task and
  remove_ironic_bootstrap_task were added to receiver
* _restore_pending_changes method was add only for
  reset_environment_resp
* migration for adding new transaction names and appropriate
  test were added
* test for check task message was added

Change-Id: Ib8a215174431486316bca533797932e02969c037
Closes-Bug: #1541868
2017-01-12 17:24:02 +04:00
Vladimir Kuklin c8b3447676 Fix DPDK settings get for upgrades
Change-Id: I226cb5d1168b1b02c9779b5fd48d30fd52f83728
Closes-bug: #1645471
Co-Authored-By: Fedor Zhadaev <fzhadaev@mirantis.com>
2016-12-26 15:55:13 +00:00
Ryan Moe 2b0242f645 Resolve tasks by role tags
This commit switching tasks resolution approach to the tags based one.
Tag - minimal unit what's necessary only for task resolution and can be
mapped to the node through the role interface only. Each role provides set
of tags in its 'tags' field and may be modified via role API. Tag may be
created separately via tag API, but, this tag can not be used unless it's
stuck to the role.

Change-Id: Icd78fd124997c8aafb07964eeb8e0f7dbb1b1cd2
Implements: blueprint role-decomposition
2016-11-17 18:07:30 +03:00
Mikhail Zhnichkov 8ddf244b71 Revert "Resolve tasks by node tags"
This reverts commit e368be6b10.

Change-Id: Ic3ca2ee14afafd9fca3cee43887a1955e71f061e
2016-11-08 16:58:49 +00:00
Ryan Moe e368be6b10 Resolve tasks by node tags
A 'tags' attribute has been added to each role in 'roles_metadata'.
Initially all non-controller roles will only have a tag of their own
role name. This will allow existing tasks which do not have tags
associated with them to work correctly. In the abscence of tags a
task's roles will be used to determine which nodes it will run on.

Implements: blueprint role-decomposition

Change-Id: I390580146048b6e00ec5c42d0adf995a4cff9167
2016-10-17 04:41:24 +03:00
Jenkins c087200530 Merge "Add restriction for using CA certificate verification" 2016-09-14 11:15:12 +00:00
Elena Kosareva 7f02c12ed9 Add restriction for using CA certificate verification
CA certificate verification should be available only if
Bypass verification is disabled.

Partial-Bug: 1616438
Change-Id: Ib83210f52c7874398fcb1791e51091e05151273f
Depends-On: Id38bf7c74869fa60852ca1cb2ccaa9c63412cf64
2016-09-13 19:28:23 +03:00
Vladimir Sharshov (warpc) d6e6f03e5b Do not move task status to running after ack
Astute will send 'running' status for task
when start to process it, so we do not need
task in orchestrator mechanism.

Change-Id: I5e2deccdbd27daff3e3b131ef9c8c7ffbbb40dd4
Closes-Bug: #1621003
2016-09-13 11:23:18 +00:00
Jenkins 9b08e22e34 Merge "Fix granular deployment on operational cluster" 2016-09-07 12:57:36 +00:00
Dmitry Guryanov 1cdc01bb68 Fix granular deployment on operational cluster
Tasks on new nodes shouldn't be skipped in reexecute
filter.

Change-Id: I09148b81bd157e1884785b12e2438614f13e700b
Closes-Bug: 1606823
2016-09-06 17:48:46 +03:00
Georgy Kibardin cf26770465 Pass auth token to diagnostic snapshot dumper
Since Timmy is selfsufficient utility it requires auth token to login to
Fuel to get nodes to dump.
Also getting rid of snapshot configuration unit tests since Timmy
doesn't use most of it.

Change-Id: I559776a701c76bf9f9153550d2989d939d30eb3f
Partial-Bug: #1618965
2016-09-06 14:34:21 +03:00
Jenkins 27313d2ce5 Merge "Added option 'debug' for graph execution" 2016-09-02 11:12:32 +00:00
Jenkins afa3d4da80 Merge "don't merge common_attrs with node data in deployment_info" 2016-09-01 16:21:29 +00:00
Bulat Gaifullin 400a430d7d Added option 'debug' for graph execution
Also reworked legacy task manger to use this flag
instead of patch every deployment task

Change-Id: Ic4031b94ee359d414f1834a56b085ff12cc6b38f
Closes-Bug: 1618774
2016-09-01 14:51:54 +00:00
Bulat Gaifullin fe87cfa835 Added legacy plugin tasks to graph only if graph is default
Also save graph_type in nailgun.task(AKA transaction)

Change-Id: I946a092df4d7c1bb143a47915cbc1455cc8c53c5
Closes-Bug: 1618758
Closes-Bug: 1618914
2016-08-31 17:46:02 +03:00
Dmitry Guryanov 7a83ee0cac don't merge common_attrs with node data in deployment_info
The size of deployment_info grows as n^2 depending on
nodes number. That's because common_attrs, which is
merged into each node's contains info about all nodes.

For example for 600 nodes we store about 1Gb of data in
the database. So as first step let's store common_attrs
separately in deployment_info structure inside python
code and in the database.
Also removed old test for migrations, which are not related
to actual database state.

Change-Id: I431062b3f9c8dedd407570729166072b780dc59a
Partial-Bug: #1596987
2016-08-31 17:28:11 +03:00
Bulat Gaifullin 03acc6603f Do not allow to run 2 or more tasks simultaneously
Simultaneous run of 2 or tasks may cause
side-effects and the simplest way is prevent this action.
Also fixed all places where rpc.cast called without commit

Change-Id: I029768900d345540c3b501f1fa3649b063d3a55d
Partial-Bug: 1615557
2016-08-30 14:45:56 +03:00
Anastasiia Guzikova 16f89b744f Fuel Nailgun: Noop run support
Task model is extended with noop_run boolean column;
Introdicing and passing down the noop_run param from API to
execution manager;
Execution manager supports noop_run argument,
and uses it for creating astute message;
DeploymentHistory model is extended with summary JSON column;
The summary column should be returned only if some
include_summary=1 query string is passed to API.

Implements blueprint: puppet-noop-run

Change-Id: I80090d96f818cef7c6f88208bdacf5849f0f5d0f
2016-08-25 02:30:45 +03:00
Bulat Gaifullin c7f94e8260 Fixed updating node status in transaction resp
The transient statuses are not persited in DB because
the status of node should represent the current state
of node, for example: node is provisioned or node is deployed.
The synthetic states: like error, deploying, etc. are used
only for providing additional for user about status of node at this moment.
This statuses can be calculated on demand.
Also node.error_type has type 'String' instead of 'Enum'
Also added handling status  'deleted' in response, which means that node should be deleted from cluster.

Change-Id: If5e79b9274f34e01d2b795491c23361c9050669d
Blueprint: graph-concept-extension
2016-08-22 15:55:31 +03:00
Georgy Kibardin bb37dbd4a9 Check role restriction also before provisioning
Currently the nodes which need provisioning and then deployment avoid role
restrictions check because of their 'not ready for deployment'
status. This commit adds unprovisioned nodes to the list of checked
nodes.

Change-Id: I7b19d1beeb71849e2def465127873821a4f93052
Closes-Bug: #1605472
2016-08-19 09:39:13 +00:00
Bulat Gaifullin 5167527dc4 Added methods for patching deployment info per object
Instead of wide callbacks process_deployment or process_provision
implemented methods to patch deployemnt or provision info per
cluster or node.
The code of extensions and tests was updated accordingly.
Also added helper to mark methods of extension as deprecated.
the extension load behaviour was modified, instead of fail operation
when extension cannot be loaded, the nailgun only write error in log
that extension is not loaded and continue operation.

Partial-Bug: 1596987
Change-Id: I577c8ffc105734e12646ca7c6a4fe4927e70b119
DocImpact
2016-07-25 18:25:21 +00:00
Jenkins e84303dc33 Merge "Stopped nodes are in diagnostic snapshot since now" 2016-07-13 09:21:12 +00:00
Dmitry Guryanov 052082bd71 add node_deployment_info table
Size of deployment_info field in tasks table grows as n**2
(depending on number of nodes). If we have 200 nodes, the
size of the structure is about 20Mb. In case of 600 nodes it
would be theoretically about 720Mb, in practice it doesn't fit
into 1Gb.

Good solution is to put common part to separate place. But it's
not so fast. Also it will not help if all nodes will be going to
be deployed with customized deployment info.

Change-Id: Id3154ab423b0863d9cc4952335293bf5fc30df38
Partial-Bug: #1596987
2016-07-08 14:08:06 +03:00
Georgy Kibardin 269c1b1103 Stopped nodes are in diagnostic snapshot since now
Stopped nodes could be also helpful for troubleshooting, so including
them into the diagnostic snapshot.

Change-Id: Ib8608f8e04663d16249b514788522f701b9a88b9
Closes-Bug: #1599530
2016-07-06 17:36:40 +03:00
Jenkins 8ceca26f6a Merge "Do not check NFV features for old envs" 2016-06-29 10:19:30 +00:00
Artur Svechnikov 79e28facc8 Do not check NFV features for old envs
NFV features (DPDK, SR-IOV, NUMA/CPU pinning, HugePages)
can't be checked for old clusters, due to old nailgun-agent.
Old nailgun-agent doesn't send NFV specific information.
So all NFV related checks and functional should be disabled for old
environments.

Change-Id: Ib589d67658f45414b8049398316af5c7298d459e
Closes-Bug: #1594443
2016-06-28 13:44:23 +03:00
Jenkins df1d480769 Merge "Now surrogate deployment history tasks respecting filtering" 2016-06-24 13:34:35 +00:00
Jenkins b65685a1a7 Merge "Do not pass excessive configuration to shotgun" 2016-06-23 07:54:51 +00:00
Ilya Kutukov 09a475ad8f Now surrogate deployment history tasks respecting filtering
Before when we filter out deployment tasks history all the difference
between tasks graph snapshot and filter result was returned as surrogate tasks
with no run name and node.
The deployment tasks history is saved for dry run as well.

Change-Id: I39a3341230a00aa53fa3a4cba31ee0aacb0ec2ae
Closes-Bug: #1590872
2016-06-22 12:51:47 +00:00
Jenkins 57378129e9 Merge "Move UpdateDnsmasq task to network manager extension" 2016-06-20 16:33:23 +00:00
Georgy Kibardin e8e9157cea Do not pass excessive configuration to shotgun
For dump configuration section with empty hosts array shotgun tries to
process all entries locally - on master node.
When there are no nodes ready for log collection this behaviour causes
all slave and controller's log entries to be processed on master
node. Taking into account that currently master node logs are symlinked
before being packed this leads to a situation when snapshot lacks some
files.
For instance when a symlink /var/log/libvirt is created it is impossible
to create /var/log symlink later.

Change-Id: Ife60115d8d0203654ae58ed7c13f94fd9b7b3b8a
Closes-Bug: #1590750
2016-06-10 08:57:21 +03:00
Igor Kalnitsky 04443331a3 Fix VLAN verification for discover nodes with DPDK
In rare cases when we have 1 ready node without DPDK and 1+ discover
nodes with DPDK, Nailgun has produced a wrong verification message.
That as happened because Nailgun mistakenly assumes 1 ready node as DPDK
capable and didn't serialize VLAN verification message for this node.

Co-Authored-By: Artem Panchenko <apanchenko@mirantis.com>
Closes-Bug: #1589707

Change-Id: Id01d8772707994ed6da8b0c3979693580a3c417f
2016-06-09 14:24:05 +00:00
Jenkins 095fc570ed Merge "remove zabbix from nailgun" 2016-06-08 10:29:25 +00:00
Jenkins af68ca5c5b Merge "Change CPU distribution" 2016-06-07 09:53:03 +00:00
Ryan Moe 153d9ca1c9 Move UpdateDnsmasq task to network manager extension
This change introduces a new callback on_nodegroup_delete
which is called when a nodegroup is deleted.

It also adds a decorator that can be used to generate
before and after callbacks for any method.

Change-Id: Ia1c4ef3956175af6c223af854c9543cd781e8dbf
Blueprint: network-manager-extension
2016-06-06 15:05:56 -07:00
Jenkins 7bcd6ea8cd Merge "Added fault_tolerance_group to deployment metadata" 2016-06-06 18:09:35 +00:00
Artur Svechnikov 76e270ef96 Change CPU distribution
CPU distribution mechanism should be changed due
to incorect requirements to nova and dpdk CPUs allocation

Changes:
 * Change CPU distribution
 * Add function for recognizing DPDK NICs for node
 * Remove requirement of enabled hugepages for
   DPDK NICs (it's checked before deployment)
 * Change HugePages distribution. Now it take into
   account Nova CPUs placement

Requirements Before:
 DPDK's CPUs should be located on the same NUMAs as
 Nova CPUs

Requirements Now:
 1. DPDK component CPU pinning has two parts:
     * OVS pmd core CPUs - These CPUs must be placed on the
       NUMAs where DPDK NIC is located. Since DPDK NIC can
       handle about 12 Mpps/s and 1 CPU can handle about
       3 Mpps/s there is no necessity to place more than
       4 CPUs per NIC. Let's name all remained CPUs as
       additional CPUs.
     * OVS Core CPUs - 1 CPU is enough and that CPU should
       be taken from any NUMA where at least 1 OVS pmd core
       CPU is located

 2. To improve Nova and DPDK performance, all additional CPUs
    should be distributed along with Nova's CPUs as
    OVS pmd core CPUs.

Change-Id: Ib2adf39c36b2e1536bb02b07fd8b5af50e3744b2
Closes-Bug: #1584006
2016-06-06 18:36:27 +03:00
Jenkins 24cf218ef2 Merge "Revert "Fixed detecting changes on new nodes"" 2016-06-06 15:01:35 +00:00
Bulat Gaifullin ebe80dc4ef Added fault_tolerance_group to deployment metadata
This property contains list of groups, that is built from
tasks with type 'group' and each task may contain property
fault_tolerance, that shall be moved from openstack.yaml
to deployment tasks.
For plugins this attribute is filled from roles_metadata
for all tasks with type group (for backward compatibility).

DocImpact
Partial-Bug: 1435610
Change-Id: I1969b953eca667c09248a6b67ffee37bfd20f474
2016-06-06 17:46:12 +03:00
Bulat Gaifullin 6e22e3b145 Revert "Fixed detecting changes on new nodes"
This reverts commit eff4f2f522.

Change-Id: I62e104c7bd622e6e260bd7a6cef2a09f3d3e3500
2016-06-03 20:14:25 +03:00
Ilya Kutukov 2096a25b23 Deployment and provision Nailgun tasks is now run asynchrously
Deployment and provisioning preparations could last a long when Fuel is
working with a hundreds of nodes. But operator should be able to
observe cluster state and operate other clusters.

Change-Id: I73802c91f93a46855b006cb05a8b5722109e9e6a
Partial-Bug: #1569859
2016-06-03 15:00:47 +00:00
Dmitry Guryanov ecf39c0afc remove zabbix from nailgun
Zabbix has been removed from Fuel 7 and is not supported for 3 releases.
It's time to make cleanup and remove its code.

Closes-Bug: #1583990
Change-Id: I7393caebc629fcf652369b98731455abe8a2c378
2016-05-31 06:28:20 +00:00
Vladimir Kuklin e4fbfe80ed Allow a user to run dry-run deployment
Now following handlers:

     /clusters/:cluster_id/changes/
     /clusters/:cluster_id/changes/redeploy/
     /clusters/:cluster_id/deploy/
     /clusters/:cluster_id/deploy_tasks/

?dry_run=1 that is telling Astute not to run cluster executionat all.

Dry run assumes that it does not actually affect
cluster status regardless of their result.

Also, remove redundant update of nodes statuses to 'deploying'
within OpenStackConfigManager and DeploymentTaskManager as it should be
done by receiever.

Do not set cluster status to 'deployment' for these nodes in order to
retain its real status

Modify stop deployment tests to move failing stop deployment for already
deployed clusters to another test class. Since 9.0 we can run stop
deployment for new clusters.

Change-Id: I374fc86b63af64411d4a5ca45ff6c3680cb44897
Partial-bug: #1569839
2016-05-30 15:46:31 +00:00
Bulat Gaifullin 5630e40e61 The task attributes substitution is called for all tasks
The yaql_exp can be used for calculate dependencies of all tasks
including skipped tasks, so the task attributes traverse should
be called for all task too.
Also added check that dependency is not empty object, because
it is possible when it has been dynamically generated via yaql.

Partial-Bug: 1541309
Change-Id: Ibcb786d2a7917d7583433c0b96f6324be4de759b
2016-05-27 13:01:05 +03:00
Jenkins 8f9f0a80c6 Merge "Fixed detecting changes on new nodes" 2016-05-26 16:35:57 +00:00
Bulat Gaifullin eff4f2f522 Fixed detecting changes on new nodes
The cluster state will be used on new nodes as previous state
in case if the cluster already has successful deployment.

Closes-Bug: 1581002
Closes-Bug: 1573602
Change-Id: Ie8a81193dc6002d4d7dec56b3b73e186b835d5fc
2016-05-25 20:51:21 +03:00