Commit Graph

192 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
Alexander Kislitsky 4fa861fa8a Distributed serialization implementation
Distributed serialization is implemented with python distributed
library. We have scheduler for jobs management and workers for
jobs processing. Scheduler is started on the master node as well
as set of workers on it. Also workers are started on all nodes.
In the cluster settings we can select the type of serialization
and nodes statuses that allows serialization on it. By default
nodes with status 'ready' are excluded from the workers list.

For data serialization we are using only nodes from the cluster
where serialization is performing.

Before the computation fresh nailgun code is sent to the workers
as zip file and it will be imported for job execution. So we always
have fresh nailgun code on the workers.

In one job we are processing chunks of tasks on the workers. This
approach significantly boosts performance. The tasks chunk size
is defined as settings.LCM_DS_TASKS_PER_JOB parameter.

For limiting memory consumption on the master node we use parameter
settings.LCM_DS_NODE_LOAD_COEFF for calculation max number of jobs
in the processing queue.

Synthetic tests of distributed serialization for 500 nodes with
nubmer of ifaces >= 5 performed on 40 cores (4 different machines)
took 6-7 minutes on average.

Change-Id: Id8ff8fada2f1ab036775fc01c78d91befdda9ea2
Implements: blueprint distributed-serialization
2017-03-24 15:15:30 +00:00
Ilya Kutukov f114668642 Message about no tasks to run deploy is fixed
Previous message was not informative.

Change-Id: I02eeed2b92f5eafdc9f618edd8fd365b9b60a99e
Closes-Bug: #1607346
2016-12-21 20:10:52 +00:00
Mikhail Zhnichkov e032d4f6e8 Revert "Add default tags"
This reverts commit 508dccf9b2.

Change-Id: I63a87f8ca4dbcbff3ce1da36078aa3fd9520566e
2016-11-08 12:42:36 +00:00
Mikhail 508dccf9b2 Add default tags
Tags for rabbitmq, database, keystone and neutron.

Change-Id: I5cbaf58f57845c02550e2b422b269f41eec98322
Implements: blueprint role-decomposition
2016-10-26 10:44:40 +00:00
Alexey Shtokolov b0e9d4f1aa Revert "Restrict usage of controller and osd role on single host"
This reverts commit b433ee89f0.

Change-Id: I3cae65e2f54be550656c79c918a72ea60c3b0ac4
Closes-Bug: 1631878
2016-10-10 14:07:41 +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
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 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
Oleksiy Molchanov b433ee89f0 Restrict usage of controller and osd role on single host
Update tests

Change-Id: I64119fa3eb640c23e1f6e3d59e496b6f226be4e4
Closes-Bug: 1603142
2016-07-15 17:55:54 +03: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
Jenkins bb2784034f Merge "Get rid of fake tasks where they are not required" 2016-05-16 10:44:48 +00:00
Artur Svechnikov 3482a5d7a9 Check nodes roles before deployment
Nodes roles should be checked in CheckBeforeDeploymentTask,
because it's possible to deploy node with conflicting roles
or with incompatible role. Roles release metadata will be
used for roles checks, this metadata contains restrictions.

Since `depends` is not used anymore, it's changed to
`restrictions` in assignment validator.

Change-Id: Ibba7951968cbafd59fff0d516e74f9dd9e454edc
Closes-Bug: #1573006
2016-05-12 14:09:08 +03:00
Nikita Zubkov 73032343bb Get rid of fake tasks where they are not required
Replace fake_tasks with rpc mock for some tests. This patch covers not
all files with tests, the fix will be done in series of few patches.

Change-Id: I6d316a45974ea5518c32a78f069e3e88b167d1a4
Partial-Bug: #1440671
2016-05-11 16:35:53 +03:00
Dmitry Guryanov 9eeaa679d1 Don't use self.env.clusters[0] in tests where possible
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
2016-04-26 17:53:36 +03:00
Jenkins 303ed5a33f Merge "Pass glance image parameters as a hash" 2016-04-21 14:38:16 +00:00
Jenkins eff854ffbf Merge "Validate attributes restrictions" 2016-04-19 13:55:19 +00:00
Alex Schultz 85e9a608f4 Pass glance image parameters as a hash
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
2016-04-18 10:25:49 -06:00
Jenkins d74cdcf3de Merge "Don't add public network to all nodes" 2016-04-18 15:48:01 +00:00
Artur Svechnikov 7e3fe2c308 Validate attributes restrictions
Since Nailgun contains attributes restriction
mechanism it's possible to verify attributes
restrictions. This commit applies restrictions
checks into validation for both node attributes
and cluster attributes.

Change-Id: I269da9a7a7df5fea336c07784b37d6ced1641993
Closes-Bug: #1567394
2016-04-18 16:37:43 +03:00
Sylwester Brzeczkowski 5d1d1fe960 Extract volume_manager from nailgun core
* 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
2016-04-18 12:10:34 +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
Jenkins 57fbbeb220 Merge "Move network manager to extension" 2016-04-12 16:16:33 +00:00
Jenkins 4e7f0588e1 Merge "Check if task deploy supported before cluster serialization" 2016-04-11 16:25:20 +00: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
Dmitry Guryanov 1f79eee435 Check if task deploy supported before cluster serialization
If some tasks in deployment graph have version less
than 2.0.0 than we fallback to granular deploy
method. This check should be done before cluster
serialization, which take more time.

So let's check if task can be executed with task based
method before serialization.

This patch significantly improves performance.

Partial-Bug: #1498365
Change-Id: I5d0fe8ee9b73958ac07e2fda3ed1bd2f29f0e5fb
2016-04-07 14:34:46 +03:00
Artur Svechnikov 92a1286a6c Change hugepages and cpu pinning to integer
There are plenty of problems with converting.
Since UI can work with type of number,
node attributes can be changed to number type.

Depends-On: I0866aa01df23ac944bc5f134aec49311791a4b36
Change-Id: Ibc7578f5587fc75c97cb62530a0219059e33c477
Closes-Bug: #1565518
2016-04-05 10:13:51 +03:00
Vitaly Kramskikh 7e1d537e8e Revert "Fix attribute type for hugepages for DPDK"
UI doesn't support such type and became broken after merge of the original patch.

Closes-Bug: #1564847

This reverts commit b04a2541fe.

Change-Id: I06417e0c48c9c1d24223b93c0c4c8b9d437b200c
2016-04-01 11:59:32 +00:00
Jenkins 1435f0d878 Merge "Don't use threads when running integration tests" 2016-03-30 12:27:35 +00:00
Jenkins 02368f815a Merge "Fix attribute type for hugepages for DPDK" 2016-03-30 12:26:56 +00:00
Fedor Zhadaev b04a2541fe Fix attribute type for hugepages for DPDK
Change attribute type to support both 'integer' and 'string' values.

Change-Id: If8539ade57365a40fe493c584e6bf9d0516e5662
Closes-Bug: #1561543
2016-03-29 10:05:17 +03:00
Mike Scherbakov 8f4a99c13f Don't use threads when running integration tests
Nailgun integration tests use fake tasks, which run in threads.
This has been causing random failures. Although those failures could
of been fixed by different sorts of improvements, increasing timeouts,
etc. - this is still not an ideal solution.
Proposed patch removes use of threads in tests. All fake tasks code
which used to be running in threads only is ran synchronously for tests.
Threads are still used for fakeUI as before.
More details about random test failures can be found in mailing list:
http://lists.openstack.org/pipermail/openstack-dev/2016-March/089514.html

Change-Id: Iaa5b245680e7257ff46b5ddc1b7aa9400284e705
2016-03-24 16:10:25 -07:00
Alexander Kislitsky 38eeb939aa Performance of network manager operation improve
We have extra SQLs generated in the NetworkManager when passing
node_id instead already loaded SQLAlchemy node object.

Additional changes:
- Bulk insert used in IPs assiging process.
- zip changed on six.moves.zip in the NetworkManager.
- Removed unused function get_admin_ips_for_interfaces from NetworkManager.

Co-Authored-By: Dmitry Guryanov <dguryanov@mirantis.com>

Partial-Bug: #1498365
Change-Id: I0518a5879c775d568de5652dbdd856a0cede80ce
2016-03-23 18:57:59 +03:00
Bulat Gaifullin cb8568669b Enabled task deploy for integration tests
Closes-Bug: 1552464

Change-Id: I0daa98a4dee8b8e75e658a77226cbbc827fc681f
2016-03-21 13:22:53 +03:00
Nikita Zubkov 91b8f3b6b3 Add node hugepages distribution
Most of distribution implementation located in policy/hugepages_distribution.py
Distribution function gets numa node topology and huge pages
configuration from Node.attributes and use greedy algorithm to
distribute pages with differet sizes. At first we distribute pages of
components that must be on every numa node, then allocate other
components starting with bigger pages to smaller. If component can't be
fully allocated on one node then part of his pages moved to next numa
node.
Also this info passed to deployment serializer.

Change-Id: I8bec5ed4efcd197d02b6de23395d8fb9a3136579
Implements: blueprint support-hugepages
2016-03-16 15:42:30 +03:00
Igor Kalnitsky 73dcf257d1 Use PostgreSQL setup provided by OpenStack Infra
Since commit Id65b7e106d62be92467c18bcb93c9d5da716242f we do not need to
setup PostgreSQL for tests. Now OpenStack Infra provides ready to use
PostgreSQL installation as well as MySQL. This commit stops running
setup code and unblocks gate tests on OpenStack CI.

Also, it fixes random failures of test_force_redeploy_changes. The test
used to consume fake threads, and to check status of created task. That
status might be different and depends on progress of fake threads
(it might be pending, running or even ready). That commit removes usage
of fake threads and improves its quality by checking not only task status,
but actualy deployment data.

Also, it fixes test_assign_given_vips_for_net_groups.

The motivation behind that all-in-one commit is that it's almost
impossible to fix CI due to random test failures. It's the only
choice to get it work.

Closes-Bug: #1554038
Change-Id: I074a2cb4f0e6647c605c8e4449a5beca0c6e9bbc
2016-03-09 11:50:13 +02:00
Vitalii Myhal 7e5607b376 Add --force flag for `fuel deploy-changes` command
The flag allows to apply the changes to the cluster if the cluster
is in the operational state. This allows you to deploy the changes
without the reprovisioning procedure.

Example: `fuel deploy-changes --env <env_id> --force`

Partial-Bug: 1540558
Change-Id: Ibc89fdbfbd0a36a890412cd8e861d35bcf930690
2016-02-29 11:34:51 -06:00
Igor Kalnitsky e91363ba9c Remove legacy patching code
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
2016-02-26 15:06:04 +02:00
Ryan Moe db52d6a490 Move all db queries from network manager to objects
All network-related database queries are moved into the appropriate
object methods. This is being done to make it possible to have an external
network management service.

Blueprint: network-config-refactoring
Change-Id: I4ce965f227c54577659e64f598ff5cdf4c868ed6
2016-02-25 09:59:01 -08:00
Roman Prykhodchenko 450bbce4c1 Allow provisioning without controllers
This patch removes validation of the number of controllers
in a cluster from pre-deployment task.

Closes-bug: #1538233
Change-Id: I5325af73367d6c3edab873a8080cd8a7e24e9692
2016-02-02 20:31:34 +01:00
Jenkins 803ca70ffa Merge "Send the list of all enabled plugins into astute" 2015-12-25 13:28:30 +00:00
Aviram Bar-Haim 5c33fbbf2f Remove Mellanox section from the upstream settings
Mellanox Section in Fuel UI Settings tab has been added in 5.1,
moved to experimental mode in 6.1 due to the implementation as a plugin.
This change deletes the upstream section for enabling Mellanox features.
Implemented as a certified Fuel plugin.

Closes-Bug: #1452800

Change-Id: I6a1f33827d6c4fc9c9bc42cad567f4f96941f094
2015-12-23 18:58:51 +02:00
Andriy Popovych f835e19b73 Send the list of all enabled plugins into astute
Hiera plugin extension needs a way to get a list of all enabled plugins in
cluster from astute.yaml during the deployment.

Change-Id: I819bf8e547ecd8eeabffefda4579c2a3e73d0fcf
Closes-Bug: #1528212
2015-12-22 14:57:38 +02:00
Artem Roma 98f2d58542 Add 'identity' key to mcollective configuration data
'identity' parameter represents id of the node and is placed in
mcollective config by nailgun-agent. But sometimes such behavior
(especially if to take into consideration that restart of mcollective
follows it) may lead to failed deployment (See related bug). Now the parameter
is supplied by nailgun and is used by fuel-agent to create the config
with the data already present in it when node boots after provision is
done.

Change-Id: I753eb76ed9c3b80f249c0c4b86ef48ef49274990
Related-Bug: #1518306
2015-12-14 13:14:08 +00:00
Vitaliy Mygal a25db9a2c6 Store attributes of plugins in a separate table
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
2015-11-15 23:29:13 -06:00
Igor Kalnitsky 8b07f46ab6 Neutron: add internal & floating names to params
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
2015-11-12 03:00:38 +02:00
Alexander Kislitsky fa46c4dca9 Receiving of task processing confirmation from astute handled
We should know is task handled by orchestrator or not.
For instance, we should send stop_deployment task only if
provision or deploy tasks are handled by the orchestrator.
Task status 'pending' added into Task DB model and
handled in stop deployment, provisioning, deployment and
apply cluster changes task managers.

Nailgun Task object update function changed for bubble 'running'
status to parent task.

Locking of all cluster tasks calls removed for deadlocks
exclusion.

Consts used instead hardcoded tasks statuses in part of tests.

Co-Authored-By: Alexandra Morozova <astepanchuk@mirantis.com>
Depends-On: Ib054517696dc4e53487557b09b75ebfcb1255ecb
Depends-On: Idedb061b7b5c4dca4a0ca7adcaa570cecbb691af
Change-Id: I15ebeb85226c832923f9476bb91fa19c0ff87a4f
Closes-Bug: #1498827
2015-10-30 12:43:37 +03:00
Alexander Saprykin c87470bf9c Network configuration handlers return network config
Change-Id: I6dc259813418de5df4b9fb97f65066b130348b21
Closes-Bug: #1496630
2015-10-19 22:36:54 +07:00
Igor Kalnitsky 3533ae59bc
Change default network provider to Neutron
In previous release (Fuel 7.0) nova-network is became deprecated, and
that means it will be dropped in Fuel 8.0. So let's change default to
neutron, because IIUC nova-network is already removed from
fuel-library's master and some swarm tests are broken.

Closes-Bug: #1503657
Closes-Bug: #1505258

Change-Id: I65a0ca2906503cb9c83fd99fddda9a8ee5156b16
2015-10-13 13:34:08 +03:00