]>
review.fuel-infra Code Review - openstack-build/heat-build.git/log
Angus Salkeld [Fri, 26 Jul 2013 06:13:25 +0000 (16:13 +1000)]
Add a Ceilometer alarm resource
Note: this gets the signed url from the resources capable of getting
signals by calling Fn::GetAtt('AlarmUrl')
blueprint watch-ceilometer
Change-Id: If8822f7c9bfc2113b6ee57e1faff2ab4f8ff3b16
Jenkins [Fri, 26 Jul 2013 02:13:33 +0000 (02:13 +0000)]
Merge "Auto-document all resource types."
Jenkins [Fri, 26 Jul 2013 02:00:25 +0000 (02:00 +0000)]
Merge "Sphinx extension to generate resource documentation."
Jenkins [Fri, 26 Jul 2013 01:18:47 +0000 (01:18 +0000)]
Merge "Enable service validate-template for hot template"
Jenkins [Thu, 25 Jul 2013 23:05:13 +0000 (23:05 +0000)]
Merge "Fix cloud_watch delete when the watchrule is not found."
Jenkins [Thu, 25 Jul 2013 23:05:06 +0000 (23:05 +0000)]
Merge "Skip RSA generation during tests"
Steve Baker [Thu, 25 Jul 2013 21:04:12 +0000 (09:04 +1200)]
Auto-document all resource types.
There are separate pages for OpenStack, AWS and Rackspace resources.
Currently the following sources are used for resource type documentation:
- the docstring for the resource class
- properties_schema
- attributes_schema
Change-Id: I901d227e8bc2a7209f216b57653da77a4f500e47
Steve Baker [Thu, 25 Jul 2013 20:52:13 +0000 (08:52 +1200)]
Sphinx extension to generate resource documentation.
Implements a resourcepages directive which generates resource type
documentation for any type that matches the specified type prefix.
For example:
.. resourcepages:: OS::
Implements blueprint generate-resource-docs
Change-Id: I3b2c94a766686e17e2bdbe8be27657decd65bb3e
Jenkins [Thu, 25 Jul 2013 15:49:51 +0000 (15:49 +0000)]
Merge "Always convert AllowedValues to a list"
JUN JIE NAN [Wed, 24 Jul 2013 05:48:02 +0000 (13:48 +0800)]
Enable service validate-template for hot template
Get `Resources' and `Description' for hot or cfn template instead of
the raw one.
Change-Id: I54ac8a9905634529b641fe322eee4c10e587bac3
Fixes: bug #1204061
Jenkins [Thu, 25 Jul 2013 12:36:58 +0000 (12:36 +0000)]
Merge "Teach ScalingPolicy and Restarter to create signed urls"
Thomas Herve [Thu, 25 Jul 2013 11:19:46 +0000 (13:19 +0200)]
Skip RSA generation during tests
Use a static key in Rackspace cloud server tests, to remove the overhead
of the SSH keys generation.
Change-Id: Ief14f034fb86e42ecbb801b9d4f82ff27fb35588
Jenkins [Thu, 25 Jul 2013 11:03:44 +0000 (11:03 +0000)]
Merge "Generate a template from a resource implementation."
Jenkins [Thu, 25 Jul 2013 10:29:02 +0000 (10:29 +0000)]
Merge "Make the current alarms use the signal action"
Jenkins [Thu, 25 Jul 2013 10:28:55 +0000 (10:28 +0000)]
Merge "Add an API for passing a signal through to a resource"
Zane Bitter [Thu, 25 Jul 2013 09:33:41 +0000 (11:33 +0200)]
Always convert AllowedValues to a list
Passing e.g. a string as the AllowedValues list can appear to work, since
str.__contains__() performs a substring match. It's better to fail fast, so
convert AllowedValues to a list regardless of its initial type.
Change-Id: I74783e6a7c1743ead3f086116dd3850afeb7a028
Angus Salkeld [Thu, 25 Jul 2013 04:53:51 +0000 (14:53 +1000)]
Add some docs for intrinsic functions.
And start the template guide.
DocImpact
Change-Id: I4dc32dfc20b464e09b78f192b6f4931ce812fd4b
Angus Salkeld [Thu, 25 Jul 2013 04:30:39 +0000 (14:30 +1000)]
Fix cloud_watch delete when the watchrule is not found.
Also start using mock instead of mox.
Change-Id: Ia3baf510ffeafc73c42da7e2830819055c244c51
Jenkins [Thu, 25 Jul 2013 00:59:13 +0000 (00:59 +0000)]
Merge "Replace urllib2 with requests in urlfetch module"
Angus Salkeld [Tue, 23 Jul 2013 12:55:43 +0000 (22:55 +1000)]
Teach ScalingPolicy and Restarter to create signed urls
This is so they will be able to support ceilometer webhooks
blueprint watch-ceilometer
Change-Id: I18b0dc22f95957a66f2287a7bd70613c8c8db3d6
Angus Salkeld [Fri, 5 Jul 2013 00:35:36 +0000 (10:35 +1000)]
Make the current alarms use the signal action
blueprint watch-ceilometer
Change-Id: I7560650f207411ffaf14242bb74cdaf8acd0cf4b
Angus Salkeld [Thu, 25 Jul 2013 00:36:50 +0000 (10:36 +1000)]
Add an API for passing a signal through to a resource
Reuse the /waitcondition functionality to provide a
/signal pathway.
a signal could be a waitcondition or an alarm.
blueprint watch-ceilometer
Change-Id: Ia9da222b8072ee0dc65bf137e7d3eb7fa4d944f5
Andrew Plunk [Fri, 12 Jul 2013 14:56:07 +0000 (09:56 -0500)]
Generate a template from a resource implementation.
Using the properties and attributes schema in a
specified resource, generate a template where
all properties have been mapped as parameters,
and all attributes have beeen mapped as outputs.
blueprint resource-template
Change-Id: I0f494f039e91daf482385f225f8551826cace485
Jenkins [Wed, 24 Jul 2013 18:15:16 +0000 (18:15 +0000)]
Merge "Fix loguserdata output to file issue"
Jenkins [Wed, 24 Jul 2013 07:58:28 +0000 (07:58 +0000)]
Merge "HOT parameter validation model translation"
Jianing YANG [Fri, 19 Jul 2013 14:08:41 +0000 (22:08 +0800)]
remove remote_error and corresponding try...catches.
Implements blueprint exception-formatting
Change-Id: I94306e2b70c7fa77d1b5a1177fede88262f8bbc9
Davanum Srinivas [Wed, 24 Jul 2013 02:08:20 +0000 (22:08 -0400)]
Replace urllib2 with requests in urlfetch module
simple replacement of urllib2.urlopen with requests.get
Fixes LP#
1201534
Change-Id: Ia0a2ed3b092e22246339a42f432086dd05f788fa
JUN JIE NAN [Tue, 23 Jul 2013 00:47:38 +0000 (08:47 +0800)]
HOT parameter validation model translation
Translate hot parameters into heat parameter model.
Change-Id: I6733be7c13e2e9fdbed27d5c21044fb5f457ed17
Implements: blueprint hot-parameters
Jenkins [Wed, 24 Jul 2013 00:40:28 +0000 (00:40 +0000)]
Merge "Only use a token for openstack client operations."
Jianing YANG [Thu, 11 Jul 2013 15:17:52 +0000 (23:17 +0800)]
make heat-api return a parsable error
add a wsgi middleware (faultwrap) that catches exceptions
and transform those exceptions into a parsable format
according to 'Content-Type' of the request.
Fixes bug
1158598
Implements blueprint exception-formatting
Change-Id: Iacdb8cc119b250ff1e39c99b7a7f66fd4c35e7d9
Jenkins [Tue, 23 Jul 2013 12:35:33 +0000 (12:35 +0000)]
Merge "api : Implement OnFailure option to cfn API CreateStack call"
guohliu [Tue, 23 Jul 2013 10:08:03 +0000 (18:08 +0800)]
Fix loguserdata output to file issue
Fixes bug #
1191685
Change-Id: I2a02b490e45c3cb838243b9dad62cc52b609b336
Jenkins [Tue, 23 Jul 2013 09:43:19 +0000 (09:43 +0000)]
Merge "Use new style classes"
Jenkins [Tue, 23 Jul 2013 05:00:29 +0000 (05:00 +0000)]
Merge "Add resource for Rackspace Cloud Servers."
Angus Salkeld [Tue, 23 Jul 2013 01:26:05 +0000 (11:26 +1000)]
Use new style classes
Change a couple of old style classes into the newer styled ones.
Change-Id: Ide3bbcd2d24f949a2a550fcc2210617f34c8cd0b
Jenkins [Mon, 22 Jul 2013 18:27:40 +0000 (18:27 +0000)]
Merge "Add `default` attribute in hot parameter definition"
Jenkins [Mon, 22 Jul 2013 18:20:58 +0000 (18:20 +0000)]
Merge "Add missing Aapche 2.0 license headers (H102)"
Jason Dunsmore [Mon, 22 Jul 2013 16:00:51 +0000 (11:00 -0500)]
Add resource for Rackspace Cloud Servers.
Blueprint rackspace-cloud-servers-provider
Change-Id: Ie6659e0e8b519180ce5973cc798c914b56a95426
Steven Hardy [Fri, 5 Jul 2013 11:25:50 +0000 (12:25 +0100)]
api : Implement OnFailure option to cfn API CreateStack call
blueprint createstack-onfailure
Change-Id: I8466493fbeba2023916f2d92814c1cc8f2827e51
Jenkins [Mon, 22 Jul 2013 13:39:37 +0000 (13:39 +0000)]
Merge "Migrate all tests to use dummy_context."
Jenkins [Mon, 22 Jul 2013 09:30:12 +0000 (09:30 +0000)]
Merge "Reset the the watch_rule.last_evaluated on start up"
Jenkins [Mon, 22 Jul 2013 09:28:05 +0000 (09:28 +0000)]
Merge "Refactor the code in heat/tests/test_volume.py"
Jenkins [Mon, 22 Jul 2013 09:21:14 +0000 (09:21 +0000)]
Merge "Handle 'detaching' state of Volume"
Jenkins [Mon, 22 Jul 2013 06:54:50 +0000 (06:54 +0000)]
Merge "Update openstack.common.config"
Jenkins [Mon, 22 Jul 2013 06:53:21 +0000 (06:53 +0000)]
Merge "add docs from the heat wiki"
JUN JIE NAN [Mon, 22 Jul 2013 04:22:12 +0000 (12:22 +0800)]
Add `default` attribute in hot parameter definition
So `default' in hot is translated to `Default' in cfn
Change-Id: Ifd50dbb993dd0cb177b0e16652c6ef17d12cd2e5
Fixes: bug #1199311
Zhang Lei (Sneeze) [Mon, 22 Jul 2013 02:25:53 +0000 (10:25 +0800)]
Refactor the code in heat/tests/test_volume.py
The test code in heat/tests/test_volume.py has lots of
duplicated code and logic.
Extract them into common method and reuse the methods.
Change-Id: I5053c53a3eebf5f43cddfb96ee63a1f4f8615e76
Zhang Lei (Sneeze) [Mon, 22 Jul 2013 02:08:06 +0000 (10:08 +0800)]
Handle 'detaching' state of Volume
When detaching volume, the state of volume changed from 'in-use'
to 'detaching', and then from 'detaching' to 'available'.
The code used to ignore 'detaching' state by assuming the volume
has been detached when its state is not 'in-use' any more.
Now we take care 'detaching' state and raise error if detaching
failed.
Fixes bug #
1197747
Change-Id: I555eea19409142ccb306c0cceaf7c55e71385bc6
JUN JIE NAN [Thu, 18 Jul 2013 07:39:10 +0000 (15:39 +0800)]
Reset state before resource recreation
So the destroyed resource can be recreated, and HARestarted main logic
resource destory and create can work.
Change-Id: Id79988560e105c254d304e30d598427a2bbc5b26
Fixes: bug #1202492
Jenkins [Mon, 22 Jul 2013 00:52:44 +0000 (00:52 +0000)]
Merge "Add a py33 tox environment"
Steve Baker [Fri, 5 Jul 2013 04:08:13 +0000 (16:08 +1200)]
Only use a token for openstack client operations.
This uses the same techniques as horizon for getting client
instances with an existing token.
This change also fetches a new auth_token if the context has none,
as will happen when the context is created from saved user_creds
rather than a real request.
While it appears that some code paths will result in an extra call to the
keystone client, the actual calls to keystone will be less. This is
because each client was making its own calls to keystone when
authenticating with a username and password.
Implements blueprint auth-token-only
Change-Id: If6a63a5079464758f42d5d5e83dfffb196f4a7f6
Steve Baker [Tue, 16 Jul 2013 23:18:39 +0000 (11:18 +1200)]
Migrate all tests to use dummy_context.
Change-Id: Idc00ccbd254aca2c64c1bcb376fe7a3aab4d1cb4
Jenkins [Mon, 22 Jul 2013 00:29:36 +0000 (00:29 +0000)]
Merge "Configure standalone pipelines for cfn and cloudwatch."
Jenkins [Mon, 22 Jul 2013 00:28:24 +0000 (00:28 +0000)]
Merge "Set role headers from ec2 authentication."
Jenkins [Mon, 22 Jul 2013 00:28:18 +0000 (00:28 +0000)]
Merge "Set tenant headers from ec2 authentication."
Jenkins [Mon, 22 Jul 2013 00:12:20 +0000 (00:12 +0000)]
Merge "Only create the period watch task if there is a watch in the stack"
Jenkins [Mon, 22 Jul 2013 00:02:28 +0000 (00:02 +0000)]
Merge "Wrap the watch rule start in a method"
Dirk Mueller [Fri, 19 Jul 2013 21:09:14 +0000 (23:09 +0200)]
Add missing Aapche 2.0 license headers (H102)
Satisfy Hacking check of Hacking 0.6 or newer.
Change-Id: I01d9b44c1681142ef91fd91f678e173239ae6c98
Dirk Mueller [Fri, 19 Jul 2013 21:02:11 +0000 (23:02 +0200)]
Add a py33 tox environment
This way one can optionally run tests against Python 3.x
Change-Id: I578cc6f2e933fbdc469dd14d23e9cf5b9f1d246f
Jenkins [Fri, 19 Jul 2013 08:32:34 +0000 (08:32 +0000)]
Merge "Move url_for into heat_keystoneclient."
Jenkins [Fri, 19 Jul 2013 08:24:10 +0000 (08:24 +0000)]
Merge "Test utils dummy_context for tests that need one."
Angus Salkeld [Fri, 19 Jul 2013 06:06:20 +0000 (16:06 +1000)]
Reset the the watch_rule.last_evaluated on start up
This is so we don't fire off alarms when the engine has not been running.
bug
1202552
Change-Id: Ief258fd601b48e2495ac69091a942f23a019e92c
Angus Salkeld [Wed, 17 Jul 2013 02:46:59 +0000 (12:46 +1000)]
Only create the period watch task if there is a watch in the stack
This prevents unneccessary greentheads polling the db.
bug
1202031
Change-Id: I065955d03df543df40af285f87a7fd3dfa779413
Angus Salkeld [Fri, 19 Jul 2013 04:58:37 +0000 (14:58 +1000)]
Wrap the watch rule start in a method
This is the first step in making the watch task dependant on:
1) whether we even have an alarm in the stack
2) whether the alarm is a ceilometer alarm
The test confirms the current behaviour, which is a periodic task
is created whether or not a watch is in the stack.
bug
1202031
Change-Id: Iebb948f788270fca0dbef61a2e122fe3900d84b2
Steve Baker [Fri, 19 Jul 2013 02:38:13 +0000 (14:38 +1200)]
Configure standalone pipelines for cfn and cloudwatch.
This allows waitconditions and cloud watch data to authenticate
using just the ec2token middleware. Stacks have been successfully launched
with a standalone heat onto an external grizzly openstack, including working
waitconditions and watch data.
This means that currently when in standalone mode, heat-cfn cannot
authenticate since it defaults to auth strategy keystone (and it appears
that auth strategy ec2 signing has not been implemented yet). This case
is sufficiently obscure that it most likely won't affect anyone at this
stage.
Implements blueprint heat-standalone
Change-Id: I7d096b11e70c234d0b2322c93bf5f4d4e6b01b4f
Steve Baker [Fri, 19 Jul 2013 02:34:42 +0000 (14:34 +1200)]
Set role headers from ec2 authentication.
Without this roles are not available in the context when
ec2token middleware is used on its own.
Change-Id: I1214e44c588f547ee6f90f0f71a085f786e7ea7f
Steve Baker [Thu, 18 Jul 2013 21:48:40 +0000 (09:48 +1200)]
Set tenant headers from ec2 authentication.
Without this, ec2token middleware on its own doesn't set enough
headers to perform heat requests.
Change-Id: I7a0867196741c0df222d491fb1bfbe203158032c
Émilien Macchi [Wed, 10 Jul 2013 14:01:00 +0000 (16:01 +0200)]
Update openstack.common.config
- Add generator.py from Oslo
- Add notifier from Oslo
- Add generator bash script used by other projects to generate configuration
files
- Update openstack-common.conf file
The patch https://review.openstack.org/#/c/36493/ needs
to be merged before this one. I'll rebase this patch and
generate the heat configuration.
Fix bug #
1183275
Change-Id: Id7f24874b7e3e07d06dcf14bc381b9d630f67fc8
Thomas Herve [Tue, 16 Jul 2013 09:12:04 +0000 (11:12 +0200)]
Handle InstanceType change in Instance.handle_update
Make a resize API call against Nova if the InstanceType of an Instance
resource is change via a resource update.
Implements: blueprint instance-resize-update-stack
Change-Id: Ic4ee82edec842ee756b104a36dfef28bf3f89717
Jenkins [Thu, 18 Jul 2013 09:44:41 +0000 (09:44 +0000)]
Merge "Put pre-created resources in state INIT COMPLETE."
Steve Baker [Wed, 17 Jul 2013 02:30:58 +0000 (14:30 +1200)]
Move url_for into heat_keystoneclient.
This allows faking of this call, and removes one instance of
accessing the encapsulated keystone client.
Change-Id: Iad2a9aaad2e9f1dc3cbeb509c822a61427f12817
Steve Baker [Tue, 16 Jul 2013 23:09:02 +0000 (11:09 +1200)]
Test utils dummy_context for tests that need one.
Change-Id: I3c54ec76a4d2bfd03cf60b70c422bc6269af01c9
Jenkins [Thu, 18 Jul 2013 01:06:15 +0000 (01:06 +0000)]
Merge "Update oslo.notifier and always register options"
Steve Baker [Wed, 10 Jul 2013 03:05:53 +0000 (15:05 +1200)]
Put pre-created resources in state INIT COMPLETE.
Defines an INIT action, and make the resourse state
INIT COMPLETE before they are first created.
Calls to list resources will now include resource that have
not been created yet. This change allows resource topologies
to be displayed throughout the creation of the stack.
Implements blueprint build-heat-graph
Change-Id: I1d98ac21d44ff05183db38d49cbb3599e2812511
Jeff Sloyer [Tue, 16 Jul 2013 18:36:06 +0000 (14:36 -0400)]
add docs from the heat wiki
updated index.rst to mimic the layout of the keystone docs
updated the structure for troubleshooting
ported howto guides from the heat wiki
ported the troubleshooting page from the heat wiki
updated the nav for the man pages and getting started
added docs for a cfn template and hot template
Change-Id: I14c1b0b6aa6ea3529c4de994851f7a798a3061bf
Jenkins [Wed, 17 Jul 2013 14:17:39 +0000 (14:17 +0000)]
Merge "Make sure that Tags on the InstanceGroup get passed to nova"
Jenkins [Wed, 17 Jul 2013 14:05:53 +0000 (14:05 +0000)]
Merge "Fix version and location of heat doc build"
Jenkins [Wed, 17 Jul 2013 10:06:37 +0000 (10:06 +0000)]
Merge "Add a test for customizing AWS::EC2::Instance"
Jenkins [Wed, 17 Jul 2013 06:00:30 +0000 (06:00 +0000)]
Merge "Check missing parameters during stack create"
Jenkins [Wed, 17 Jul 2013 03:52:48 +0000 (03:52 +0000)]
Merge "Add tests for resource-data delete bug."
Jenkins [Wed, 17 Jul 2013 03:52:40 +0000 (03:52 +0000)]
Merge "Fix resource-data delete bug."
Christopher Armstrong [Tue, 16 Jul 2013 19:57:55 +0000 (19:57 +0000)]
Add a test for customizing AWS::EC2::Instance
InstanceGroup explicitly supports "custom" versions of AWS::EC2::Instance
(instead of directly using heat.engine.resources.instance.Instance)
but there was no unit test for that feature. Here we add one.
Change-Id: I490675c18734a61d27625ed3c76fb228e3fd1a9d
Randall Burt [Wed, 17 Jul 2013 00:31:25 +0000 (19:31 -0500)]
Add tests for resource-data delete bug.
Fixes bug
1201974
Change-Id: Id5fdfcde8541e83f68406c67250b815b35fbbf54
Jason Dunsmore [Tue, 16 Jul 2013 21:13:24 +0000 (16:13 -0500)]
Fix resource-data delete bug.
Bug
1201974 .
Change-Id: I6c4692df71dc7188c0a9caf0ca6c26b67b4e168f
Monty Taylor [Tue, 16 Jul 2013 15:01:47 +0000 (11:01 -0400)]
Fix version and location of heat doc build
pbr injects version information as part of the build_sphinx command,
so having it here is overkill.
Change-Id: I1f89e068da3e47b94434cb71db87704f9665dea2
Liang Chen [Tue, 16 Jul 2013 15:24:16 +0000 (23:24 +0800)]
Check missing parameters during stack create
Add missing parameters checking logic to Parameter validation. It
has to be optional, since template validation makes use of the same
Parameter validation code.
Fixes bug #
1198670
Change-Id: I4c85ebf496b19999e47cf3838e6ca160aa194f20
Jenkins [Tue, 16 Jul 2013 02:31:32 +0000 (02:31 +0000)]
Merge "Test that Tags get converted into nova metadata"
Jenkins [Tue, 16 Jul 2013 02:24:34 +0000 (02:24 +0000)]
Merge "Let git ignore pydev project description files"
Jenkins [Tue, 16 Jul 2013 02:15:23 +0000 (02:15 +0000)]
Merge "Don't reload haproxy and use ensureRunning=true"
Angus Salkeld [Mon, 15 Jul 2013 23:08:13 +0000 (09:08 +1000)]
Don't reload haproxy and use ensureRunning=true
the ensureRunning option results in cfn-hup doing a restart and the
hook does a reload. these two options result in the failed state
of haproxy.
This patch rolls the two into "reload-or-restart", which is run from
cron.
bug
1201621
Change-Id: Idb42b3915cb86c613876b67abf1c6999972e19e2
Jenkins [Mon, 15 Jul 2013 13:01:38 +0000 (13:01 +0000)]
Merge "Align OpenStack client versions with project requirements."
Jenkins [Mon, 15 Jul 2013 12:58:53 +0000 (12:58 +0000)]
Merge "Add resource_data table for free-form key/value data."
Angus Salkeld [Mon, 15 Jul 2013 01:10:03 +0000 (11:10 +1000)]
Make sure that Tags on the InstanceGroup get passed to nova
This is needed by the ceilometer alarmer.
Change-Id: Ia6e744b7dfa9fab518050174bcff0dae50c95040
Angus Salkeld [Mon, 15 Jul 2013 05:57:12 +0000 (15:57 +1000)]
Test that Tags get converted into nova metadata
Change-Id: Iac464174d3e9b71ce01d9d7ee05d64e790b2f398
Steve Baker [Mon, 15 Jul 2013 04:15:57 +0000 (16:15 +1200)]
Align OpenStack client versions with project requirements.
This brings heat into line with the consensus on how to specify
version range caps.
Fixes bug: #
1200214
Change-Id: I14affc96c44f865fdd0516c1eb4eb59f1a808b82
Jenkins [Mon, 15 Jul 2013 00:16:46 +0000 (00:16 +0000)]
Merge "Cleanup and make HACKING.rst DRYer"
Jenkins [Sun, 14 Jul 2013 23:22:24 +0000 (23:22 +0000)]
Merge "Suggest the use of tripelO images"
Joe Gordon [Fri, 12 Jul 2013 16:08:32 +0000 (17:08 +0100)]
Cleanup and make HACKING.rst DRYer
Reference the OpenStack hacking guide in HACKING.rst and remove
duplicate entries. Add placeholder section for heat specific
rules. heat specific rules can be created using hacking's local check
support.
Change-Id: Ib6967ae769bd73857abb7ef89368c407c8b22053
Jenkins [Sat, 13 Jul 2013 05:11:57 +0000 (05:11 +0000)]
Merge "Create implicit depends from gateway to public subnet."
Jenkins [Fri, 12 Jul 2013 18:30:33 +0000 (18:30 +0000)]
Merge "Wait until quantum resources are deleted."