Remove restrictions on set of BOND properties. Now BOND can have
any attributes.
Remove redundant `bond_properties`.
Change-Id: I60d1a0628d84c5ba49bb5b45824d660297dacccc
Implements: blueprint nics-and-nodes-attributes-via-plugin
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
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
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
Added option skip_extensions for core-serializers, to prevent
loop when core-serializer is called from extension.
Also method process_'deployment_for_node' does not have access
to cluster_info and it is not possible to call 'serialize_node'
from extension because cluster_info was mandatory argument.
Because 'cluster_info' was needed only for provision serialzer,
which is called from LCM serializer, this argument was removed
from serialze_node method.
Change-Id: Ifbf9e4a0b9487605e6268fde0499aecc1e20cb36
Closes-Bug: 1621851
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
* Add field that allows user to upload CA certificate
that emitted vCenters TLS/SSL certificate (Self-Signed certificate).
It allow cinder-volume configured with VMwareVcVmdkDriver
and nova-compute configured with VMwareVCDriver verify
connection to vCenter server.
* Add checkbox "Bypass vCenter certificate verification" for
cinder-volume, nova-compute, Glance vSphere backend.
These changes will allow the cover use cases for cinder-volume,
nova-compute and Glance vSphere backend:
1. Bypass vCenter certificate verification (default). Certificate
verification turn off. This case is useful for faster deployment
and for testing environment.
2. vCenter is using a Self-Signed certificate. In this case the
user must upload custom CA bundle file certificate.
3. vCenter server certificate was emitted by know CA (e.g. GeoTrust).
In this case user have to leave CA certificate bundle upload field empty.
Change-Id: I6a697d01d84065c8f3ed80adf409b79bc7913620
Implements: blueprint custom-ca-bundle-verify-vcenter-cert
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
Added validation to bond creating for field 'bond_properties' and
bond_properties.type__. They are mandatory and bond can not be created
without type__.
Allowed modes for dpdkovs and ovs types:
- active-backup
- balance-slb'
- balance-tcp
- lacp-balance-tcp
Allowed modes for linux type:
- active-backup
- balance-rr
- balance-xor
- broadcast
- 802.3ad
- balance-tlb
- balance-alb
Change-Id: Ic5a443a347b5abbf235e88bd95154b56a627b76f
Closes-Bug: #1566252
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
Since self.env.create always return db object now,
we can use this returned value instead of
self.env.clusters list.
It's a refactoring, so no bug or blueprint.
Change-Id: If7c84cb7124bcf08ef5ff110542012564190fae1
This patch fixes the code to make latest flake8 happy.
Changes:
1. There is no xrange in python3. Import range from
six.moves or simply use range from builtins, where
number of iterations is fixed and small.
2. Don't use unicode and long. There are six.text_type,
six.string_types and six.integer_types to avoid it.
3. Replace 'file' with 'open'.
4. You can't put function argument into tuple directly
(f = lambda (x, y): x += y; f((1,2))).
Change-Id: I2995ca71c94a2cbb8fe43dfeaf20f88b0b5bfa9c
This change updates the deployment serializer for the test vm data to
pass the glance properties as a hash that can be used by the
glance_image provider rather than using the glance_properties string
that is currently in place. The glance_properties string should be
considered deprecated and anything that uses it should switch to the
properties hash.
DocImpact: glance_properties string provided as part of the
test_vm_image hiera data is deprecated in favor of the properties hash
provided by this change
Change-Id: I79a9b20d89ae00a7ceaa24c4ce655cbd16972c30
Partial-Bug: #1566434
Some of the tests became invalid or no longer needed so they have
been removed. Rest of them, which make sense to our current
pipeline-oriented code have been moved to volume_manager
module.
Change-Id: Ib0b566d3f2d859bb2fa3d765ed53f7cd2dc286af
implements: blueprint data-pipeline
* remove node_extension_call from everywhere Nailgun
core source code
* remove volume_manager Node property (models)
* moved volume and disk releated data manipulations to
volume manager extension pipeline
* removed no longer valid tests
* added new extension callback for pre deployment check
* fix some tests
* moved volume_manger specific tests to volume_manger module
* marked 'skip test' to some tests which are no longer
valid in current places but they valuable and should be moved
to volume_manager module in next patches
implements: blueprint data-pipeline
Change-Id: I8edd25166e5eccf914eb92882b6b4a7b3fff6a89
The following legacy tasks were reworked to use ClusterTransaction:
- OpenstackConfigTaskManager
- SpawnVMsTaskManager
Change-Id: I4a6f5f37161e4290050ec4926cf029cd7af566e4
Closes-Bug: 1565885
Closes-Bug: 1561994
Closes-Bug: 1565760
Replacing map with for loops or list comprehensions in areas
where they where used improper.
Change-Id: I094abb3c6ec3c041f0fff6aed0c456158e1cc8f7
Closes-Bug: 1567849
Add field that allows user to upload CA certificate that emitted
vCenters TLS/SSL certificate. It allow Glance with VMware backend verify
connection to vCenter server (verification is turned on by default).
If user did not uploaded certificate then, glance will be configured
to skip verification step during connection to vCenter.
Partial-bug: #1559067
DocImpact: Document how to use 'CA file' field on VMware tab.
Change-Id: I810bc000e54b941018a1190acb26d33150b74ce0
Now if common nodegroup has not been found for given nodes None as a
result is returned instead of default node group.
This directly affects procedure of VIP allocation as (e.g.) VIPs will
not be allocated when cluster does not have assigned nodes.
Tests updated accordingly
Change-Id: Iaa94453f3f98cc9238f9810aab7311ffabbfa8b7
Closes-Bug: #1549254
We need openstack configs and cluster attributes in deployment
info for YAQL expressions. Becuase LCM serializers works only
with deployment info, this data should be added to it.
Also optimized deployment_serializers and git rid off
extra database reads.
Change-Id: I64db3f0c78bccf40ab0b8548b5335bd87c668c68
Implements: blueprint computable-task-fields-yaql
Admin network was included into networks list twice in case of using
multiple node groups. Because of that the allocation algorithm had
an assumption that Admin network was not allocated to NIC and allocated
it twice, fisrt time - to the right NIC, second - to the first NIC always.
The issue arrived when node was in non-default node group and was booted
not from the first NIC.
It is fixed now.
Closes-Bug: #1557580
Change-Id: I64a9ecdad1e68e4f0819940f0266699c394e9caf
To avoid confusion with objest.DeploymentGraph and
orchestrator.DeploymentGraph second one was renamed
to the GraphSolver because this entity is used to
find subgraphs, loops, and solve graph for the
old orchestrators.
Secondary changes:
DeploymentGraphValidator -> GraphSolverValidator
DeploymentGraphTasksValidator -> GraphSolverTasksValidator
GraphVisualizationValidator -> GraphSolverVisualizationValidator
validators/graph.py -> validators/orchestrator_graph.py
orchestrator/deployment_graph.py -> orchestrator/orchestrator_graph.py
Change-Id: Ic42a17115723b8145b9d94cc034bf2217d1d634b
Implements: blueprint custom-graph-execution
In Fuel 5.1 we had an experimental feature - 'patching openstack env'.
The idea was to update and to rollback OpenStack environments between
minor releases. However, we have encounter a lot of problems with
restoring OpenStack databases andresolving dependency hell in packages,
so we buried it and never release it.
This patch removes legacy code from the source tree. We can do it
without fear, since it wasn't released in public.
Related-Bug: #1511499
Change-Id: I58b3fedd239eb7fe4226e51c2d6386efab14395d
Now SR-IOV related data from nailgun-agent and API is stored in
NodeNICInterface.interface_properties. It's also serialized back for API.
Change-Id: I5bb57cf53a9f508233e9757b6d698dfb930c9d19
Blueprint: support-sriov
* Move vms_conf from NodeAttributes to Node.
* Drop interfaces field, that is not used anymore.
* Fix all references to vms_conf across all sources.
* Remove explicit changed() call, since JSON fields
can detect updates on all levels.
* Replace objects.Node.set_vms_conf() function
with direct attribute assignment
Change-Id: I2112a6dba30b49e3d658ef1503ee48ad1f92e693
Implements: blueprint support-numa-cpu-pinning
For the time being we used custom non-cached SQLAlchemy query. That
means the following drawbacks:
* each time we access to relationship attribute the SQL query is spawn;
* each time we trying to get instance by pk (.get) the SQL query is
spawn;
Besides the way we get non-cached query is by patching internal
SQLAlchemy's Query attribute - '_populate_existing' - which is designed
for another purpose. It cause us a lot of troubles because the
SQLAlchemy behaves in slightley different way that it's pointed in
documentation (for instance, there're much more reasons for implicitly
calling .flush()).
This commit finally drops this unconvenient NoCacheQuery in favor of
standard Query.
Change-Id: Ic1b11684dddf970268eedd297e8577c86e750f1e
Closes-Bug: #1498382
Set release name to 'Liberty' in display name and description of new release.
Set openstack_version setting to 'liberty-9.0' to comply with the existing
versions schema.
Set opesntack_version to 'liberty-9.0' in tests.
Closes-bug: 1503663
Change-Id: Ifef952e18f08b98c430bbff9434984deaa68df81
The patching mostly done for tests for nailgun components adhering to
the release version. E.g. network serializers. Some tests are forced to
create environments of 8.0 version. The change is needed to resolve
possible issues with the tests when network roles metadata is changed
drastically and is not compatible with mentioned components.
Partial-Bug: #1517874
Change-Id: I55607157ae7767ffdfd1d855b872630832706e8e
The network related function shall be in NetworkManager,
this makes easier further refactoring.
Change-Id: I8eb5404509c9fe0a8c367ea119bfb18233941fde
Partial-Bug: #1354803
In PostgreSQL there are special types for storing IPv4, IPv6 address and
subnetworks and also MAC addresses. Storing data in these types is more
efficient than in strings because it requires less space. In addition,
it provides additional operations for columns of these types.
This patch changes types of some columns for models such as:
IPAddr
ip_addr: inet
IPAddrRange
first: inet
last: inet
Node
mac: macaddr
ip: inet
NodeNICInterface
mac: macaddr
ip_addr: inet
netmask: inet
NodeNICInterface
mac: macaddr
NetworkGroup
cidr: cidr
gateway: inet
NeutronConfig
base_mac: macaddr
internal_cidr: cidr
internal_gateway: inet
baremetal_gateway: inet
NovaNetworkConfig
fixed_networks_cidr: cidr
Co-Authored-By: Ilya Kharin <ikharin@mirantis.com>
Change-Id: Id8431eb7d2e3ca1a1cc29fc865d57359b29d0e35
Partial-Bug: #1484973
This is redesign of plugins architecture in order to store
the plugin's attributes in a separate table, not in cluster
attributes, so it will be possible to remove connection between
plugin and cluster when a plugin gets deleted.
Added ability to work with different versions of a plugin.
User can choose the preferred version in UI.
The test "test_plugin_generator" was removed because no longer
relevant.
Closes-Bug: #1440046
Implements: blueprint store-plugins-attributes
Change-Id: I52115f130bf1c7c80c66e18d0bf9f7acb16dd56c
In order to remove internal and floating network names hardcoding from
Nailgun database, let's move them to neutron parameters. It'll simplify
support for developers, and allow user to change them as they want.
Change-Id: Ic0ca82047cb750609a5313c2eab02569b9633239
Partial-Bug: #1349702
When parameters of any Admin network are changed or Admin network is
deleted new UpdateDnsmasq task is called to setup dnsmasq with new
configuration for dhcp.
Co-Authored-By: Aleksei Kasatkin <akasatkin@mirantis.com>
Partial-Bug: #1495593
Change-Id: I532f21508c78bd142fbd0aa1754bcb7b617b121b