Commit Graph

37 Commits

Author SHA1 Message Date
Jeremy Freudberg 359b89de3f Enhance boot from volume
Attached volumes already had support for explicit volume type,
availability zone, and instance locality. Extend this capability to
boot volumes.

(For posterity's sake, a summary of why other options related to
attached volumes were not in fact appropriate for boot volumes:
- volumes_per_node: there can only be one boot volume
- volumes_size: boot volume size given by flavor
- volume_mount_prefix: boot volume handled differently)

Change-Id: I009c0da4179c880fd87a7c1903c93825e8997a38
Story: 2004507
Task: 28229
2019-01-07 20:36:05 -05:00
Nikita Konovalov f1722350a7 Boot from volume
Adding the ability to boot a sahara cluster from volume.

Story: #2001820
Task: #12558

Change-Id: Ie11c5e7a628c369868d3c56e803da4b9e7d15f85
2018-06-15 09:25:09 -03:00
Mohammed Naser e20d0bee72
Optimize model relationships (avoid joins, prefer subquery)
There are a large number of unnecessary joins which are currently
duplicating data and increasing the number of rows for simple
SQL queries.

It is not very easy to add the lazyloading again without a big
change in the architecture due to the dependence of these
components.  For those relationships that require to be there,
they will use `subquery` which will send much less data over
the line.  For the relationships that can be lazyloaded,
it was dropped.

Change-Id: Iddaaf7168611763a6fa76818e3be9d1aa24d8021
2017-08-29 19:25:22 -04:00
Jenkins e5653d4880 Merge "Improves anti-affinity behavior in sahara" 2017-03-07 15:02:18 +00:00
Luong Anh Tuan 158bd893b9 Replaces uuid.uuid4 with uuidutils.generate_uuid()
Change-Id: Ib72d9e74c70437678c72cebc31aee60a9e140e23
Closes-Bug: #1082248
2016-11-07 13:13:57 +07:00
Akanksha Agrawal cd15698526 Improves anti-affinity behavior in sahara
Introduces a new field called anti_affinity_ratio.
Creates more server groups in case the
user defines the anti_affinity_ratio more than 1.
Default value of anti_affinity_ratio is kept 1.
Instances are placed in the server groups in round-robin
fashion.

Partially-Implements: blueprint improving-anti-affinity

Change-Id: I86bda256ea661fa0ba9d6d3819477edff080bcee
2016-10-12 09:04:37 +05:30
Michael Ionkin d9a2f00d2d Designate integration
This patch implements designate integration. Added:
* 'use_designate' and 'nameservers' configs
* 'domain_name' column to Cluster and Cluster Templates and
  'dns_hostname' to Instance in DB
* get_management_ip() method for Instance for properly setup
  hostnames in cluster info and use it in ambari, cdh, mapr, spark,
  storm and vanilla plugins
* method for change /etc/resolv.conf on all cluster instances
  according to 'nameservers' config
* method for generate heat template for designate A and PTR records
* validation check for cluster template creation because now it
  contains new field - 'domain_name'
* fix unit tests appropriatly and new tests added
* updated heat_template_version to '2016-04-08' (because we use
  'str_split' method)

NOTE: in spec we proposed to use two domains: one for internal
resolution and another for external. But we decided to use only one
domain for both sides so an instance will have one hostname in the
domain and two appropriate A records because it's more convenient.

bp: designate-integration
Change-Id: I66525c0305450d8ba08840be1c95bfe79f21fff7
2016-08-02 18:53:25 +03:00
Vitaly Gridnev cadfbdc545 implement db ops for plugin's api
this change is only provides a basic implementation
of db objects related to plugin's api

Change-Id: I320a5b46f9d1e14cc3db81757808f062d6aa60a6
bp: plugin-management-api
2016-06-21 17:50:36 +03:00
Vitaly Gridnev d1f1d58fa9 base cluster verifications implementation
this change implements basic things requried for
cluster verifications:

 * API modifications;
 * DB implementation and conductor ops;
 * basic health checks;
 * periodic job.

Partially implements blueprint: cluster-verification
Change-Id: I1b975c9a5e5241c660de66a04bf559fc8f960873
2016-02-19 13:20:28 +03:00
Andrey Pavlov 53eaa64263 Formatting and mounting methods changed for ironic
Currently only cinder volumes can be formatted and mounted.
This patch provides an ability of formatting and mounting
any attached storage devices. Also storage_paths method was
moved from node group objects to instance and corresponding
fixes in plugins was made.

Closes-bug: #1478899
Closes-bug: #1478904

Change-Id: If92d6fdea25e374d6d5c404be5ac3677cb60c057
2015-09-18 10:44:45 +03:00
Li, Chen 6c0db8e84a Rename oozie_job_id
The "oozie_job_id" column in table "job_executions" represents
oozie_job_id only when the edp engine is oozie. When it is spark
engin, oozie_job_id = pid@instance_id, when it is storm engine,
oozie_job_id = topology_name@instance_id.

Rename oozie_job_id to engine_job_id to aviod confusing.

Change-Id: I2671b91a315b2c7a2b805ce4d494252860a7fe6c
Closes-bug: 1479575
2015-08-26 14:58:48 +08:00
Andrey Pavlov f084139cd7 Adding is_public and is_protected fields support
Adding new fields to support shared resources and
ability to prevent unintentional changes.

Partially-Implements: blueprint shared-protected-resources

Change-Id: I200944ac876e476ea0659d502a55e5f9b2a158ee
2015-08-20 10:31:35 +03:00
Telles Nobrega 38b57229c9 Increase internal_ip and management_ip column size
When using Ipv6 a column size of 15 is no big enough. We need to
increase these two columns to 45.

Closes-bug: 1470999
Change-Id: I5843878bb441748d80e2d7de02a232cf1d937d88
2015-08-03 14:13:05 -03:00
Ethan Gafford ee8d20add2 Mount share API
Adds API and operations for mounting Manila shares to clusters at
both the cluster and node group level.

Implements: blueprint mount-share-api
Change-Id: I98fd1b97f4639161396ab44ebcb1508fca648a06
2015-07-29 10:31:19 -04:00
Vitaly Gridnev 22dbaa7248 Implement recommendations for vanilla 2.6.0
This patch implements base recommendation provider for vanilla 2.6.0. Also
added new fields in database for cluster and node groups which will allow
to switch off autoconfiguration.

Partial-implements blueprint: recommend-configuration
Change-Id: I9abb6b9c04494f4aed9b72479c06e45fe289c1ff
2015-07-21 14:19:31 +03:00
Ethan Gafford b2c01f5d13 [EDP] Unified Map to Define Job Interface
This change adds an "interface" map to the API for job creation, such that
the operator registering a job can define a unified, human-readable way to
pass in all arguments, parameters, and configurations that the execution
of that job may require or accept. This will allow platform-agnostic
wizarding at the job execution phase and allows users to document use of
their own jobs once in a persistent, standardized format.

Change-Id: I59b9b679a650361ddcd30975891496fdfbabb93c
Partially Implements: blueprint unified-job-interface-map
2015-06-29 12:43:43 -04:00
Andrew Lazarev 7bae4261d0 Implemented support of placeholders in datasource URLs
Added ability to use placeholders in datasource URLs. Currently
supported placeholders:
* %RANDSTR(len)% - will be replaced with random string of
  lowercase letters of length `len`.
* %JOB_EXEC_ID% - will be replaced with the job execution ID.

Resulting URLs will be stored in a new field at job_execution
table. Using 'info' field doesn't look as good solution since it
is reserved for oozie status.

Next steps:
* write documentation
* update horizon

Implements blueprint: edp-datasource-placeholders

Change-Id: I1d9282b210047982c062b24bd03cf2331ab7599e
2015-05-06 20:50:03 +00:00
Vitaly Gridnev 7f2f40e646 Move updating provision progress to conductor
Changes:
 * Move updating provision progress to conductor;
 * Remove redundant conductor ops;
 * Improve all updates operations.

This change would improve complexity of all event log operations
and decrease number of updates of provisioning steps.
Also we remove unneeded fields in base, because we can calculate
it very easy from UI.

partially implements: bp event-log

Change-Id: I63c593d5ba27879edc2142a1e2ab310628ee045c
2015-03-16 21:45:36 +04:00
Trevor McKay 44b5573657 Add an is_default field to cluster templates and node group templates
* 'is_default' field (default False) prevents update or deletion of templates
* 'ignore_default' flag (default False) on database operations defeats
  the 'is_default' field on a template

Partial-implements: blueprint default-templates
Change-Id: I973df823981ca1a92d0dd116e32e1eacd79c56a7
2015-03-12 10:50:57 -04:00
Andrey Pavlov 5c43d2ff56 Added volume_local_to_instance field support
API was extended and db schema was changed to support
instance locality

partially implements bp: volume-instance-locality

Change-Id: I245ebe7d7704013e8d11afc5893d46d7d9c74467
2015-03-06 17:05:52 +03:00
Jenkins 376af01a7a Merge "Provide ability to get events directly from cluster" 2015-03-03 21:25:19 +00:00
Vitaly Gridnev 7ce47e13fb Provide ability to get events directly from cluster
Changes:
 * Endpoint clusters/<id>/progress was removed;
 * Added flag to get progress directly from cluster;
 * Event log testing skipped until new release of client

partially implements: bp event-log

Change-Id: I48b575acd0363fda3db91b69a3b952e0426c1f96
2015-02-26 18:25:38 +03:00
Tingting Bao 3d659ed3bf Remove unused field in job_execution table
Field "progress" in class job_execution is never used in the project.

Change-Id: I71bf631d77e7522ee9c50585c07908faacca7a45
Closes-Bug: #1425275
2015-02-25 20:00:51 -08:00
Andrew Lazarev d85cac90da Add indirect VMs access implementation
* Added "is_proxy_gateway" field to nodegroups
* Made floating IP not required for nodes if there is proxy gateway
* implemented access through proxy both for ssh and http connections
* introduced interactive ssh command for remote nc execution

Implements blueprint: indirect-vm-access
Change-Id: I9b5553e9e08e3df0f928effdace5946fdfc5aa68
2015-02-02 09:59:03 +00:00
Vitaly Gridnev 19befd02c6 Add new events objects to Sahara
Implements: blueprint event-log

Change-Id: Ifacf309b75ccf85a5bdec7d8926fb9804b45571e
2014-11-27 14:51:10 +03:00
Sergey Reshetnyak 0a05af0774 Add volume type support to sahara
Change-Id: Ic72556f436fc5202e3958e0495db119d4ad42a0a
Closes-bug: #1369574
2014-10-13 16:36:05 +04:00
Adrien Vergé 50cd1f5f9d Support Cinder availability zones
Add a new 'volumes_availability_zone' option for node groups, that
enables creation of volumes in a specific Cinder AZ.

Change-Id: Ia17d1628c7d5d06f0924edc8f92a0d26fff143e0
Implements: blueprint support-cinder-availability-zones
2014-10-10 10:48:09 +02:00
Adrien Vergé dfdd0bdb23 Support Nova availability zones
Extend API to support Nova availability zone selection for node groups
and node group templates.  This patch modifies the two provisioning
engines (direct and Heat) and includes changes to the DB schema.

DocImpact

Implements: blueprint support-nova-availability-zones
Change-Id: Id03848fd8d5949fa5ecbc494639fe59a70ddced3
2014-10-01 20:56:29 +02:00
Andrew Lazarev 6129484e34 Added information about sahara settings to cluster
+ Added validation check on scaling using other engine

Change-Id: I3f36b949d1388f809c33334be6fcd0bdb30ade7a
Implements: blueprint cluster-persist-sahara-configuration
2014-09-12 14:08:22 -07:00
Andrew Lazarev bf303ba683 Added ability to create security group automatically
Added ability to ask Sahara to create security group for node group. Feature
is only implemented in vanilla plugin 1.2.1 so far.

Partially implements: blueprint cluster-secgroups

Change-Id: I21d0196396bb966fe3d88f5445e98aebe90ad94b
2014-09-02 16:42:26 +04:00
Andrew Lazarev 37778d78bb Improved error handling for provisioning operations
1. Removed all error handling in provisioning engine and moved it
   to ops.
2. Implemented general logic on handling with deleted cluster

Implements blueprint error-handling-in-provisioning

Change-Id: Ia161dea1c726bd95157a279eb0f2917af2516b07
2014-08-14 16:39:22 -07:00
Andrew Lazarev 1bd3c74d70 Added ability to specify security group for node group
Extended API to support list of security groups in node groups and
node group templates. Changed db schema and provisioning engines (both direct
and heat) accordingly.

Partially implements: blueprint cluster-secgroups

Change-Id: I49d3551f6987552ff6398e8c87e22388f914f287
2014-08-04 16:18:21 -07:00
Dmitry Mescheryakov a9d5f92c22 Extend status_description column in Clusters tables
Convert column type to
 * Text for psql - unlimited size
 * LongText for mysql - max size 2^32

Also fixed template for autogenerated migrations: added a blank line to
avoid pep8 violation.

Closes-Bug: #1338933
Change-Id: Ie4c4f57aeb7ff03aa7f6077629f6463a136f8f4b
2014-07-08 16:42:01 +04:00
Alexander Ignatov 851f8a12d9 Fixed H405 pep8 style check
* H405  multi line docstring summary not separated with an empty line

Change-Id: I0e5239e7b2856f2104130accce1555e59dfa487d
2014-06-18 09:02:17 +04:00
Alexander Ignatov f5f6ceacc5 Fixed E265 pep8
* Fixed E265 block comment should start with '# '

Change-Id: I9ec81a163e847c4dfb303bf11129d0b76c8a1506
2014-06-16 08:39:59 +04:00
Sergey Reshetnyak 3e317ed73d Fix big job binary objects in mysql
Fixes bug: #1302579

Change-Id: I3acc13864c41127c341875e350b4611ff7035e29
2014-04-07 13:06:15 +04:00
Trevor McKay d39024a207 Move the savanna subdir to sahara
Rename the subdirectory and replace all instances
of "import savanna" with "import sahara" and all
instances of "from savanna" with "from sahara".

* Replaced mock patches like mock.patch('savanna...
* Updated config generator script
* Renamed entry points in setup.cfg
* Hacking checks also fixed
* Manual renaming in alembic scripts to force work migrations
* Fix doc building
* Renamed itests directories
* Some changes in gitignore
* Removed locale dir after rebase

Co-Authored-By: Alexander Ignatov <aignatov@mirantis.com>

Change-Id: Ia77252c24046c3e7283c0a7b96d11636020b949c
Partially implements: blueprint savanna-renaming-service
2014-03-18 16:38:36 +04:00