from heat.engine import dependencies
from heat.engine import identifier
from heat.engine import resources
+from heat.engine import timestamp
from heat.db import api as db_api
from heat.openstack.common import log as logging
UPDATE_COMPLETE = 'UPDATE_COMPLETE'
UPDATE_FAILED = 'UPDATE_FAILED'
- created_time = resources.Timestamp(db_api.stack_get, 'created_at')
- updated_time = resources.Timestamp(db_api.stack_get, 'updated_at')
+ created_time = timestamp.Timestamp(db_api.stack_get, 'created_at')
+ updated_time = timestamp.Timestamp(db_api.stack_get, 'updated_at')
def __init__(self, context, stack_name, template, parameters=None,
stack_id=None, state=None, state_description='',
from heat.common import config
from heat.db import api as db_api
from heat.engine import checkeddict
-from heat.engine import auth
+from heat.engine import timestamp
from heat.openstack.common import log as logging
from heat.openstack.common import cfg
return None
-class Timestamp(object):
- '''
- A descriptor for fetching an up-to-date timestamp from the database.
- '''
-
- def __init__(self, db_fetch, attribute):
- '''
- Initialise with a function to fetch the database representation of an
- object (given a context and ID) and the name of the attribute to
- retrieve.
- '''
- self.db_fetch = db_fetch
- self.attribute = attribute
-
- def __get__(self, obj, obj_class):
- '''
- Get the latest data from the database for the given object and class.
- '''
- if obj is None or obj.id is None:
- return None
-
- o = self.db_fetch(obj.context, obj.id)
- o.refresh(attrs=[self.attribute])
- return getattr(o, self.attribute)
-
- def __set__(self, obj, timestamp):
- '''Update the timestamp for the given object.'''
- if obj.id is None:
- raise AttributeError("%s has not yet been created" % str(obj))
- o = self.db_fetch(obj.context, obj.id)
- o.update_and_save({self.attribute: timestamp})
-
-
class Resource(object):
# Status strings
CREATE_IN_PROGRESS = 'IN_PROGRESS'
# If True, this resource must be created before it can be referenced.
strict_dependency = True
- created_time = Timestamp(db_api.resource_get, 'created_at')
- updated_time = Timestamp(db_api.resource_get, 'updated_at')
+ created_time = timestamp.Timestamp(db_api.resource_get, 'created_at')
+ updated_time = timestamp.Timestamp(db_api.resource_get, 'updated_at')
metadata = Metadata()
--- /dev/null
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+class Timestamp(object):
+ '''
+ A descriptor for fetching an up-to-date timestamp from the database.
+ '''
+
+ def __init__(self, db_fetch, attribute):
+ '''
+ Initialise with a function to fetch the database representation of an
+ object (given a context and ID) and the name of the attribute to
+ retrieve.
+ '''
+ self.db_fetch = db_fetch
+ self.attribute = attribute
+
+ def __get__(self, obj, obj_class):
+ '''
+ Get the latest data from the database for the given object and class.
+ '''
+ if obj is None or obj.id is None:
+ return None
+
+ o = self.db_fetch(obj.context, obj.id)
+ o.refresh(attrs=[self.attribute])
+ return getattr(o, self.attribute)
+
+ def __set__(self, obj, timestamp):
+ '''Update the timestamp for the given object.'''
+ if obj.id is None:
+ raise AttributeError("%s has not yet been created" % str(obj))
+ o = self.db_fetch(obj.context, obj.id)
+ o.update_and_save({self.attribute: timestamp})
import datetime
from heat.openstack.common import log as logging
from heat.openstack.common import timeutils
-from heat.engine import resources
+from heat.engine import timestamp
from heat.db import api as db_api
from heat.engine import parser
from heat.common import context as ctxtlib
NORMAL: 'OKActions',
NODATA: 'InsufficientDataActions'}
- created_at = resources.Timestamp(db_api.watch_rule_get, 'created_at')
- updated_at = resources.Timestamp(db_api.watch_rule_get, 'updated_at')
+ created_at = timestamp.Timestamp(db_api.watch_rule_get, 'created_at')
+ updated_at = timestamp.Timestamp(db_api.watch_rule_get, 'updated_at')
def __init__(self, context, watch_name, rule, stack_name, state=NORMAL,
wid=None, watch_data=[], last_evaluated=timeutils.utcnow()):