Commit Graph

197 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 fba3bc3445 Use tags instead of roles
Now the deployment behaviour is driven by tags rather than role names, i.e. role
name cannot be relied upon.

Change-Id: Icfabeeb0b7fb6a9d697a09c3cf1fa020bbd4c323
Closes-Bug: #1669743
2017-03-21 13:45:07 +03:00
Mikhail 9c51c8e22b Serialize mtu for dpdk interface with 'i40e' driver
On NIC: XL710 with driver 'i40e'  MTU does not take into
account 4 bytes VLAN tag, so we should increase it manually

DocImpact
Change-Id: I3d95db9ec6fae4d8cd397c429d785dbdf1502b21
Partial-Bug: #1587310
Co-Authored-By: Fedor Zhadaev <fzhadaev@mirantis.com>
2017-03-06 12:01:47 +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
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
Mikhail 05cd9f1609 Fix import
Fix import objects Node

Change-Id: I8efcad46ea039b54f08f28dbd286c33d9218fa7b
Closes-Bug: #1646475
2016-12-02 11:45:01 +03:00
Mikhail 70aafb4aa8 Introduce new validation rules for tags and roles
Change-Id: Ia45c81a46e9323faa6471438acbfa6d65d01b7f4
Implements: blueprint role-decomposition
2016-11-30 19:56:52 +00:00
Andriy Popovych 703290986f Support for plugin NIC attributes
Refactor interface logic:
  * remove interface_properties
  * CRUD operations for NIC attributes
  * default values for NIC meta and attributes

Change-Id: I26106f1b55c704a9e79d01fadc48c88a92ccc414
Implements: blueprint nics-and-nodes-attributes-via-plugin
2016-11-29 10:37:57 +02:00
Viacheslav Valyavskiy 520e230690 Add tag API
Change-Id: I4e8325866ef63e424d5c6a93138e731001731568
Implements: blueprint role-decomposition
2016-11-22 19:12:22 +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
Viacheslav Valyavskiy f1550ad2a2 Add ability to create role for cluster
Change-Id: Idcde0a582507293490379d146c4e24e5e58790d8
Implements: blueprint role-decomposition
2016-11-13 15:34:53 +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
Mikhail Zhnichkov 4d31f764db Revert "Denied to create duplicated tags in one namespace"
This reverts commit 40667e87a8.

Change-Id: I5972aa9c074b6ad3c4e2a5bfdc5c607074852db3
2016-11-08 12:42:19 +00:00
Anastasiya 8e01bc8147 VXLAN support for OVS-DPDK
* restriction for using DPDK in VXLAN based
  segmentation case was removed
* in case of using VXLAN with DDPDK used 'br-mesh'
  bridge that has configuration as 'br-prv' and
  vendor specific attribute 'vlan_id' was added
  for 'add-br'
* appropriate tests were added

Implements blueprint vxlan-support-for-ovs-dpdk

Change-Id: I1c4978a15df6f851339a346fe6c4812c5427dd29
2016-10-27 14:53:13 +03:00
Viacheslav Valyavskiy 40667e87a8 Denied to create duplicated tags in one namespace
Currently, it's not possible to create duplicated tags for particular owner.
For, example you can not create tag with name 'test' for release. But, list of
tags available for specific cluster contains tag's provided by its release and
tags provided by its enabled plugins. So, it's possible to create so-called
tag for cluster and its release.
I introduced definition 'namespace' to avoid described cases. It's spaces
where all tags should have unique names.
I differentiate three kinds of tags namespaces:
  * cluster namespace = #1 (cluster tags) +
                        #2 (tags of enabled plugins for this cluster) +
                        #3 (tags of the release what cluster belongs to)
  * release namespace = #1 (release tags) +
                        #2 (tags of clusters created with this release) +
                        #3 (tags of enabled plugins for clusters from #2)
  * plugin namespace =  #1 (plugin tags) +
                        #2 (tags of clusters where plugin is enabled) +
                        #3 (tags of releases connected to clusters from #2)

Change-Id: I1ac9c0d30d9e4a070069b7d9ee3c6670f01802b8
Implements: blueprint role-decomposition
2016-10-26 18:07:47 +03:00
Jenkins f3006cabd4 Merge "Resolve tasks by node tags" 2016-10-21 09:44:16 +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
zhangyanxian ead74c2c64 Fix typos in cluster.py & component.py
TrivialFix

Change-Id: I5d22010e62ea6deacb31116e2795973c3669fcfb
2016-09-29 03:15:34 +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 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 06d1396059 Implemented support for graph metadata
Added support for node filters and node_transitions.
If one of node_transitions status is not specified,
the default will be used, where default is:
- on success:  switch node to status ready
- on error: switch node to status error
- on stop: swith node to status stopped

Change-Id: I8b4d49dc1bada2479017697bf5858e85958579f2
Blueprint: graph-concept-extension
2016-08-23 11:11:13 +03:00
Bulat Gaifullin d67cdc012e Introduced metadata for deployment graphs
the following attributes was added:

- node_filter: YAQL expression to select nodes for applying the graph
- node_attributes_on_success: attributes which will be applied to node
       if execution of graph completes successfully.
- node_attributes_on_fail: attributes which will be applied to node
       if execution of graph fails.
- node_attributes_on_stop: attributes which will be applied to node
      if execution of graph interrupts.

Blueprint: graph-concept-extension
Change-Id: I949b3971f62c17b1d243c8ed97e2802afa4e0cce
2016-08-19 17:36:04 +03:00
sslypushenko f1be069f5e Add default rules to pick boot disk
Added migration from Fuel 8.0 to 9.0, which adds default rule
to pick bootable disk in volume metadata of release.

Change-Id: I5d151a29bf52ac3a519049c38b2b671c087f968f
Closes-Bug: #1595209
2016-06-27 19:23:09 +03: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
Andriy Popovych 9d86b078cf Data model changes for Plugin NIC, BOND and Node attributes
This patch:
  * extends current DB model with new entities and provides
    related migrations.
  * extends plugin sync method to support storing new plugins
    attributes.
  * provides cosmetic fix for ClusterPlugin model. Lets write table
    names in the plural but model names in the singular.

Change-Id: I3edbde1d48461ce3fab7c93f17e2db5332b1f7fb
Implements: blueprint nics-and-nodes-attributes-via-plugin
2016-05-30 13:16:45 +03:00
Jenkins 51540ffabf Merge "Move models for restrictions to cluster object" 2016-05-23 09:54:51 +00:00
Jenkins 7f0d4456d9 Merge "Add bootable disk node flag" 2016-05-19 13:48:50 +00:00
sslypushenko 2df11392ab Add bootable disk node flag
Adding this flag to specified disk allows user to choose bootable disk
from Fuel UI and CLi.

This change is very important for deployments with multipath connected
block devices. Mainly, it is because, order of disks in UI can change
easly in this case, so we need introduce to user a possibility to
choose bootable disk explicitly.

Change-Id: I22ffe9104d2ec5a6598d496691fffa0087111070
Partial-Bug: #1567450
2016-05-19 12:34:29 +03:00
Artur Svechnikov ccda00737a Move models for restrictions to cluster object
Since there are a couple of places where models for
restrictions is initialized, it's moved to cluster object.
Also, comments from previous commit
(Ibba7951968cbafd59fff0d516e74f9dd9e454edc) are fixed

It's refactoring bug is not needed.

Change-Id: Ic499a5deefb12740ebedc630b024dae0b4248ec5
2016-05-19 12:34:02 +03:00
Jenkins a714776089 Merge "Use text_format_safe instead of text_format" 2016-05-16 10:56:43 +00:00
Jenkins c3d4512ea3 Merge "Move network manager calls into callbacks" 2016-05-12 09:24:09 +00:00
Jenkins e53540d019 Merge "Custom graph support for OpenstackConfigExecuteHandler" 2016-05-12 08:10:44 +00:00
Ryan Moe 76a0bc226e Move network manager calls into callbacks
Calls to network manager from object methods have been
moved into callbacks implemented by the network manager
extension.

This commit makes the following new callbacks available
to extensions:

 * on_cluster_create: called when a new cluster is created
 * on_cluster_patch_attributes: called when a cluster's attributes
    are updated
 * on_nodegroup_create: called when a node group is created
 * on_before_deployment_serialization: called before deployment
    serialization begins
 * on_before_provisioning_serialization: called before provisioning
    serialization begins
 * on_remove_node_from_cluster: called when a node is removed from
    a cluster

Blueprint: network-manager-extension
Change-Id: I9a3413f54c881edd098e623ea204d12a86695f87
2016-05-09 13:45:17 -07:00
Andriy Popovych a4b427fca4 Use text_format_safe instead of text_format
Use text_format_safe for traversing plugin attributes

Change-Id: Ib21a7386fe7cea982c98cfeaaa26040463f72b9d
Closes-Bug: #1576197
2016-05-06 15:16:20 +03:00
Ilya Kutukov 68a8e258d7 Deployment graphs are deleted together with parent entity
When Release, Plugin or Cluster is deleted, related
deployment graphs are deleted as well.

Note, that current DeploymentGraph deletion schema works if
DeploymentGraph have only relation to parent
otherwise unwanted relations may be affected by graph cleanup.

Change-Id: If489879a3d4ca01ba2335dd279136c57e1bad171
Closes-Bug: #1567471
Closes-Bug: #1557632
2016-05-04 14:22:09 +00:00
Andriy Popovych cea2d5cc55 Fix values for root plugin attributes
Currently root plugin attributes values inconsistent with
specific plugin version attributes provided by client. This patch
fills plugin attributes with proper values for specific plugin version.

Change-Id: I1c85d6e080f8fd16d5b65c1bf670fdfb3ba0ff1b
Closes-Bug: #1573440
2016-04-28 18:44:48 +03:00
Ilya Kutukov 79a501a3ee Custom graph support for OpenstackConfigExecuteHandler
/openstack-config/execute/ handler now support
?graph_type=my-graph-name parameter

Change-Id: Iaed6af093f0e2a66db29d2185104bc1e8c80fad2
Partial-Bug: #1567504
2016-04-28 18:31:12 +03:00
Bulat Gaifullin 5fb792f187 Added adaptation of legacy tasks for task based deployment
The new option 'propagate_task_deploy' was added to cluster.
this option allows to use legacy task adapatation algorithm
to make tasks from granular deployment LCM ready on the flight.
Also the same aproach is used for adaptation legacy plugin tasks.

Change-Id: Ib212bd906acc0e6915e3c14e4741b306bdedaa98
Closes-Bug: 1572276
2016-04-22 15:16:00 +03:00
Jenkins 650aa71bd7 Merge "Replacing improper map usage." 2016-04-19 13:54:19 +00:00
Jenkins d74cdcf3de Merge "Don't add public network to all nodes" 2016-04-18 15:48:01 +00:00
Jenkins b9060fe14f Merge "Allow network modifications if cluster is not locked" 2016-04-15 12:26:28 +00:00
Nikita Zubkov d5a790caab Add exceptions hierarchy
nailgun.errors have a huge set of exceptions but without hierarchy. This
patch remove exception generation from dict and make it explicitly with
python classes and add some exceptions hierarchy. Now all network errors
inherit from NetworkException and same for other exceptions.

Change-Id: I9a2c6b358ea02a16711da74562308664ad7aed97
Closes-bug: #1566195
2016-04-14 17:41:25 +03:00
Krzysztof Szukiełojć 442a143c11 Replacing improper map usage.
Replacing map with for loops or list comprehensions in areas
where they where used improper.

Change-Id: I094abb3c6ec3c041f0fff6aed0c456158e1cc8f7
Closes-Bug: 1567849
2016-04-13 17:13:18 +02:00
Krzysztof Szukiełojć 33932023fb Don't add public network to all nodes
In default setup we should not assign public ip to all nodes.
Just to ones with controller role. So we filter out public ip
network for nodes that should not have it.

Change-Id: I2a9ea4d06cc1ba15bad20b817659b7539827472a
Closes-Bug: 1415552
2016-04-13 09:26:44 +02:00
Bulat Gaifullin e3072530eb Allow network modifications if cluster is not locked
Removed separate logic to check that network modifications
are allowed, start to using the property cluster.is_locked

Change-Id: If23037731b6764c7e8c5c1243eeda7b8e6ee9c3e
Closes-Bug: 1568780
2016-04-11 17:33:06 +03:00
Ryan Moe f46614baff Move network objects to extension
All network-related objects have been moved into the
network_manager extension and import paths have been updated.

Blueprint: network-manager-extension

Change-Id: I6e16df86a58d6192d312e8e8955ed38912d2b059
2016-04-11 07:09:41 -07:00
Ryan Moe 1dda6ae043 Move network manager to extension
This moves the files for NetworkManager and its sub-classes into
a new extension. All import paths have been updated.

Blueprint: network-manager-extension
Change-Id: Icc2410fd9c411a47a3dee4573d4ef6f1a039c303
2016-04-11 05:33:29 -07:00
Jenkins acbb737005 Merge "Py3 support: Replace .iteritems() with six.iteritems()" 2016-04-11 10:08:42 +00:00
Alexander Saprykin 94524207a8 Py3 support: Replace .iteritems() with six.iteritems()
Change-Id: Ia37f12aa5b7f5b52c0a469df035a135927b3af8f
2016-04-07 15:40:56 +02:00