Commit Graph

57 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
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
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
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
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
Fedor Zhadaev 87f2304684 Fix Network Templates Verification for environments with DPDK nodes
Don't check private VLAN's when there is the only node
without DPDK.

Change-Id: I94ee39df1d571e9f25b7083a23cef4be58303562
Related-Bug: #1566963
2016-05-17 10:33:38 +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
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
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
Jenkins 5d91bfbdfb Merge "Add new DPDK validation to CheckBeforeDeploymentTask" 2016-04-11 10:08:51 +00:00
Nikita Zubkov 63eeba6da0 Add new DPDK validation to CheckBeforeDeploymentTask
That checks that if DPDK enabled:
 * only network with neutron/private role assigned to DPDK enabled interface
 * hugepages are configured
 * hypervisor is kvm

Partial-Bug: #1559224
Related to blueprint support-dpdk
Change-Id: I68797a30431f4c618b59471033b1c0b5bbacba95
2016-04-08 13:49:18 +03:00
Vladimir Kuklin 051baaa8a5 Remove legacy graph checker
Earlier, we had only one deployment engine called
granular_deployment or role-based deployment.
It constructed a deployment graph in Nailgun and
did its sanity checking twice - before
deployment task starts and when the graph is contsructed.
Now, when we have task-based deployment by default with which
Astute does graph sanity checking, this check cannot be done
before task starts as engine choice is made now within the deployment
serializer. So, now we have 2 ways of doing this - call an engine, RBD
will call corresponding tasks serializer which will do graph acyclic check.

Change-Id: If081ce7a462bc5ced9459ba619d26aecf22f4916
Closes-bug: #1560555
2016-04-07 10:47:39 +00:00
Vladimir Kuklin b9e911c2bc Allow errored cluster to have settings unlocked
Is_locked method erroneously blocks errored cluster.
This is a simple one-line change fix.

Closes-bug: #1566330

Change-Id: Ia831b30528be2e904507cc5d2f8a5541d2a6cc01
2016-04-05 23:23:55 +03:00
slava 8b3cec96be Add SRIOV validation to CheckBeforeDeploymentTask
Hypervisor type should be checked on pre-deployment stage
as only KVM hypervisor is compatible with SRIOV feature.

Change-Id: Ideec889ade22ab7736a84644f8376f6f2a2e68f0
Partial-bug: #1563254
2016-04-05 09:20:29 +00:00
Bulat Gaifullin 72499871b7 Fixed cluster state transitions
Added new status for cluster:
* partially_deployed - the nodes of cluster has different statuses.

Change-Id: I5be8c4ed5f58e2c6545a7f06b8eab1ae37c8575f
Closes-Bug: 1542201
2016-02-29 14:05:35 +03:00
Oleksandr Minakov 73ab06a5a9 Delete data about images after env removal
Adds removing yaml with data about target images
after environment removal

Change-Id: Id676658a0cb08237e099b7c22ba5b416c57c13a9
Closes-Bug: #1492243
2016-02-19 12:26:36 +00: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
Artem Roma 64c0711e15 Add distinguisher field for default node group
What was done:
* new field to node group orm model class added - boolean flag 'default';
* alembic migration for 8.0 version updated respectively;
* code that operates on default node group changed in regard of new
  attribute;
* checking logic of CheckBeforeDeploymentTask._validate_network_template
  refactored;
* related tests updated.

Change-Id: If751ea8d11fe7d7d01616e695998f3c276a12b5c
Closes-Bug: #1508973
2015-12-24 09:42:22 +02:00
Jenkins 62f8c8be2e Merge "Send ID of task to Astute" 2015-12-21 16:27:48 +00:00
Bulat Gaifullin 45e7f677e1 Send ID of task to Astute
The ID was sent only when it is possible, without any guarantees.
Because some of tasks do not have ID by its nature. for example
plugins pre/post deployment tasks.

Change-Id: Ib0e0e334e99140eccedb63114bb1377c5f07a9fb
Closes-Bug: #1527596
2015-12-18 16:22:33 +03:00
Bulat Gaifullin 7a4d5de086 Updated JSON schema for task
- Moved all Task Role related constants to Enum TASK_ROLES
- Renamed consts.MASTER_ROLE to consts.MASTER_NODE_UID

Change-Id: I292f0f5471e295564a318530f5397e4c438cb40a
Closed-Bug: #1526688
2015-12-17 14:34:59 +03:00
ekosareva 3450d676de Add possibilities to add & delete VMware clusters on operational env
* Allow update VMWareAttributes for locked cluster if has pending
  addition/deletion 'compute-vmware' nodes
* Add validation of 'nova_computes' section in vmware attributes

Change-Id: I16c1826de81251f5e6ce626b730988127160202f
Implements: blueprint add-vmware-clusters
2015-12-08 14:38:24 +03:00
Andrey Shestakov 121d795eaa [Ironic] Add network roles for ironic
This change introduces:
* NovaNetworkManager80
* ironic/api network role
* ironic/baremetal network role with VIP and iptables rules

Added separate fixture for network template.
Tests updated.

Partially Implements: blueprint fuel-integrate-ironic

Change-Id: Ib867f843951f7b86be31a9ffe4cf54c56127157b
2015-12-02 10:26:04 +00:00
Andrey Shestakov 0dd45c2612 Patch network_roles_metadata for 7.0 release where needed
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
2015-12-01 13:18:38 +00:00
Ryan Moe f2acf7328f Check for existence of network group when uploading template
Network groups can be created at any time so there is no guarantee
that it will exist when a template is uploaded. Before updating the
network group's VLAN the existence of the network group is checked.

Networks are reassigned for all nodes when a new network group is
created. A new pre-deployment check was added to validate that all
network groups required by a network template exist.

Change-Id: I28d3df4db0fe69f5b4fc9af491f0aae1f695901f
Closes-bug: #1509543
2015-11-18 09:23:34 -08: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
Ryan Moe 09a256d9c8 Assign networks based on template
When a node is added to a cluster with a network template
networks will be mapped to NICs based on transformations
in the template. Any bonds will be created in the database.
Any time the cluster's network template is changed the NIC
mapping will be recreated.

Change-Id: I2b52444f3019241362e5a957bf191645b94ebaa7
Closes-bug: #1493391
2015-10-19 05:40:32 -07:00
Sebastian Kalinowski 9757292c3b ErrorsFactory returns only defined errors
ErrorsFactory had __getattr__ method that was used to always
return any error (if it doesn't existed, it created a new one).
This was causing "hasattr" to return 'True' for every check.
Due to this any code, that wanted to check for some unique attributes
in ErrorsFactory was working incorrectly. This was the case for
a py.test library when scannig code when looking for tests.
Now this behavior has been removed. This uncovered new bugs
which was fixed.

Change-Id: I3c9be96dbcc535ea9c730d29b065479cc318fd9f
Closes-Bug: #1497664
2015-09-21 09:35:40 +02:00
Igor Kalnitsky 2123640a11 Make Nailgun tests independed from PYTHONHASHSEED
test_vlan_range
  The test has been failing because JSON schema validates restriction in
  order that depends on PYTHOHASHSEED. So the fix is to use proper
  values with only one incorrect value.

test_non_default_bridge_mapping
  The test has been failing because we have a suffix generation for
  bridges implemented via counter. We generate a bridge name with a
  suffix iterating over networks, and PYTHONHASHSEED affects order of
  iteration. So the fix is to do not test bridge names strictly, but
  just most important limits.

test_update_networks_meta
  The test has been failing because dictionarie's .update() method do
  not perform recursive update, and removes some needed keys
  (such as 'name') so next network lookup may fail.

TestDeleteIBPImagesTask
  The test has been failing because CMD line has files to remove, and
  their order depend on PYTHONHASHSEED (since they are extracted as
  .keys() from some dictionary structure). So the fix is to perform
  smart check for the command line, not strict one.

Closes-Bug: #1496448

Change-Id: I882bbf53f48c842070cb336b1185c40a3dfacc6b
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-09-17 09:28:02 +00:00
Sylwester Brzeczkowski 8de1595b7a RPC handler for DeleteIBPImagesTask
Add remove_images_resp handler to deal with DeleteIBPImagesTask
separetely from ClusterDeletionTask. Until now, because of the fix
of #1454781 we used only one Task instance to those two tasks
which was causing that (on astute response) the second one was already
cleaned up from db.

Change-Id: Ic686dd1da48b3b4cd679220d9c1ca05df05d105d
Closes-Bug: #1488467
2015-09-02 09:58:32 +02:00
Alexander Gordeev 09f7286320 Fix regression in test/unit/test_task.py
Change-Id: Ib7db340d181e5c1d31847f413654b9ec006b694c
Closes-Bug: #1487062
2015-08-20 17:27:16 +03:00
Jenkins 9af57a0f31 Merge "Remove target images after env removal" 2015-08-20 13:58:58 +00:00
Andriy Popovych 647c6734ec Give more informative message for deployment graph
Sometimes we have situation when requires or required_for
uses task id which not described in system. In such case
nailgun should show places where it happens

Change-Id: I8004e18a396328f3051f4878da138c7a286450f0
Closes-Bug: #1477258
2015-08-20 11:33:59 +03:00
Alexander Gordeev 0457984b5e Remove target images after env removal
Target images should be removed if env removal occurs.

Implemented by conditional execution of DeleteIBPImagesTask
after DeletionTask.
DeleteIBPImagesTask will be skipped if cluster doesn't use IBP
or opetating system is not Ubuntu.

Change-Id: I79ec69696311a33924a6271bca6dcb3295373a62
Closes-Bug: #1454781
2015-08-19 19:27:24 +03:00
Ivan Kliuk 154436e977 Swap deprecated oslo namespaces
Since 'oslo.config' and 'oslo.serialization' namespaces are deprecated, they
are swapped with 'oslo_config' and 'oslo_serialization' correspondingly.
Lower bounds of supported versions are updated as well.

Change-Id: I133c7676da504933d03e147af3a239d6559d5aac
Closes-Bug: #1478900
2015-07-23 23:33:58 +03:00
Ryan Moe 4c1f562f12 Add serializer for network role template
Serializer switching between general and template is added also.
When template is loaded, template serializer is being used.
General serializer is in use otherwise.

Change-Id: I1820d3cd80a33b292f9e2b75d8f0dea3bad7c8ac
Implements: blueprint templates-for-networking
2015-07-21 23:47:39 -07:00
Kamil Sambor 3cd6bd8c1c Rename kvm-virt role
Change-Id: I14630de2bf78e03db1b96e300d4dac190f536e93
Implements: blueprint reduced-footprint
2015-07-15 11:45:01 +02:00
Kamil Sambor 930badc49b Add new api for vms deployment
* added create_vms tasks serializers
* added new handler to make partial deployment
  and spawn vms
* added tests
* added logic to manage vms for node

Change-Id: I831f88d8d3938839629c98966f185b9ea8c26732
Implements: blueprint reduced-footprint
2015-07-08 18:43:55 +02:00
Sylwester Brzeczkowski 4275cdaedc Snapshot download with authentication
Add new handler SnapshotDownload which returns empty response
with X-Accel-Redirect header. Nginx reads this header and
serves actuall snapshot file.

Also changed 'reverse' function location, let it be more
available for other modules.

Change-Id: Id46b533e8d2a8021d1fbb2e5d4284508e1181704
Implements: blueprint snapshot-download-with-auth
2015-07-03 09:59:35 +00:00
Evgeniy L 9ecd2645d8 Move volume manager into extensions directory
It's a first step of extracting volume manager
from the core and its refactoring.

Implements blueprint: volume-manager-refactoring

Change-Id: I5ddd5e9027b9f06f4d493e1b70cabf27518406b1
2015-06-24 17:01:53 +03:00
Aleksey Kasatkin 8bf3aaa533 Fix IP count check to ensure 2 IPs are available for VIPs
Closes-Bug: #1437354
Change-Id: I9ef4d40d052805353069a752a42bf175b10a5b38
2015-03-31 17:55:52 +03:00
Maciej Kwiek 1523c0701a Replace jsonutils with oslo.serialization version
jsonutils is now in separate library, and the oslo.serialization will be
used from now on.

Change-Id: I28b6b70e437f154cf1b9ce0b15b0c3e716d170ee
Depends-On: https://review.openstack.org/#/c/158674/
Closes-Bug: #1400661
2015-03-02 10:35:31 +01:00
Igor Kalnitsky b73cde1c05
Return error HTTP code for incorrect neutron conf
Recently, we used to return error message for incorrect neutron config
without error HTTP status code. In other words, the "202 Accepted" was
always returned regardless it was successful or not.

Since now, tbe "400 Bad Request" will be returned in case of error and
"200 OK" in case of success (there's no reason to return "202 Accepted"
for synchronous task).

Change-Id: I9ad16fceb930332b427773dec32bd84d30fb1fd3
Closes-Bug: #1404821
2014-12-24 15:41:30 +02:00
Kamil Sambor a08434e5fb Speed up ClusterChangesHandler
* added performance test
* improved assign_vip
* improved geting controllers in CheckBeforeDeployment
* improved checking untagged networks
* changed name of property default_group on to default_group_id
* correct tests and add new

Change-Id: Iba10fdae455c3f19a71cbcdc88f8cd370ffd1993
Closes-Bug: #1384623
2014-12-02 15:04:00 +01:00
Aleksey Kasatkin df80eb24b1 Fix checking of public IPs count
Fixed CheckBeforeDeploymentTask._check_network() method to properly
compare quantity of public IPs and nodes that require them.
Tests added.

Closes-Bug: 1376426

Change-Id: I9b3278286a9d67aff784e5c241db1dc299a2f94e
2014-11-12 11:35:59 +02:00
Igor Kalnitsky ac23dc36ee Forbid remove all controllers at once
We need to forbid remove all controllers even you add new one at the
same time, since it affects cluster's availability.

Change-Id: I9d1ac51981d0516937aa21e04e66e2cca03022ef
Closes-Bug: #1367001
2014-09-11 16:08:27 +03:00
Vladimir Sharshov 3d38d0a11d Stop deployment if one of the critical node fail (fail fast)
Details:
- add new node attribute: fail_if_error (boolean);
- add list of critical nodes for multinodes and HA mode.
- do not mark non-reported nodes as error nodes in deployment case.

Change-Id: I657ea6a02b20505e47527618e14c64fc9b48a6b4
Related-Bug: #1251634
2014-08-01 12:55:29 +04:00
Artem Roma 0015cd71bc Task helpers partial refactoring added
What is done:
- most methods from TaskHelper class moved to objects.Task;
- code that was dependent on TaskHelper's methods updated
- unit and integration tests updated

What is missed:
- TaskHelper class is still in use as far as it holds several common use
  helper function (in future will be moved to utils module);

Change-Id: Iff2f2a4d277590db25c6f801f20ae75433937411
Implements: blueprint nailgun-task-helpers-refactoring
2014-06-26 12:38:09 +03:00
Christian Berendt f78b4a0854 change assert(Not)Equals to assert(Not)Equal
According to http://docs.python.org/2/library/unittest.html
assert(Not)Equals is a deprecated alias of assert(Not)Equal.

Change-Id: If90709756ccb6022641b915e47a5c7af4fe1fc1c
Closes-Bug: #1329757
2014-06-23 16:23:27 +03:00