from eventlet.green import subprocess
from heat.openstack.common import exception
-from heat.openstack.common import timeutils
-
-PERFECT_TIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"
def chunkreadable(iter, chunk_size=65536):
return uuid.uuid4()
-def strtime(at=None, fmt=PERFECT_TIME_FORMAT):
- """Returns formatted utcnow."""
- if not at:
- at = timeutils.utcnow()
- return at.strftime(fmt)
-
-
-def parse_strtime(timestr, fmt=PERFECT_TIME_FORMAT):
- """Turn a formatted time back into a datetime."""
- return datetime.datetime.strptime(timestr, fmt)
-
-
class LoopingCallDone(Exception):
"""Exception to break out and stop a LoopingCall.
# under the License.
import re
-from heat.common import utils as heat_utils
+from heat.openstack.common import timeutils
from heat.engine import parser
from heat.engine import watchrule
info = {
STACK_NAME: stack.name,
STACK_ID: dict(stack.identifier()),
- STACK_CREATION_TIME: heat_utils.strtime(stack.created_time),
- STACK_UPDATED_TIME: heat_utils.strtime(stack.updated_time),
+ STACK_CREATION_TIME: timeutils.isotime(stack.created_time),
+ STACK_UPDATED_TIME: timeutils.isotime(stack.updated_time),
STACK_NOTIFICATION_TOPICS: [], # TODO Not implemented yet
STACK_PARAMETERS: stack.t[parser.PARAMETERS],
STACK_DESCRIPTION: stack.t[parser.DESCRIPTION],
last_updated_time = resource.updated_time or resource.created_time
res = {
RES_DESCRIPTION: resource.parsed_template().get('Description', ''),
- RES_UPDATED_TIME: heat_utils.strtime(last_updated_time),
+ RES_UPDATED_TIME: timeutils.isotime(last_updated_time),
RES_NAME: resource.name,
RES_PHYSICAL_ID: resource.instance_id or '',
RES_METADATA: resource.metadata,
EVENT_ID: event.id,
EVENT_STACK_ID: dict(stack.identifier()),
EVENT_STACK_NAME: stack.name,
- EVENT_TIMESTAMP: heat_utils.strtime(event.created_at),
+ EVENT_TIMESTAMP: timeutils.isotime(event.created_at),
EVENT_RES_NAME: event.logical_resource_id,
EVENT_RES_PHYSICAL_ID: event.physical_resource_id,
EVENT_RES_STATUS: event.name,
WATCH_ACTIONS_ENABLED: watch.rule.get(RULE_ACTIONS_ENABLED),
WATCH_ALARM_ACTIONS: watch.rule.get(RULE_ALARM_ACTIONS),
WATCH_TOPIC: watch.rule.get(RULE_TOPIC),
- WATCH_UPDATED_TIME: heat_utils.strtime(watch.updated_at),
+ WATCH_UPDATED_TIME: timeutils.isotime(watch.updated_at),
WATCH_DESCRIPTION: watch.rule.get(RULE_DESCRIPTION),
WATCH_NAME: watch.name,
WATCH_COMPARISON: watch.rule.get(RULE_COMPARISON),
WATCH_PERIOD: watch.rule.get(RULE_PERIOD),
WATCH_STATE_REASON: watch.rule.get(RULE_STATE_REASON),
WATCH_STATE_REASON_DATA: watch.rule.get(RULE_STATE_REASON_DATA),
- WATCH_STATE_UPDATED_TIME: heat_utils.strtime(
+ WATCH_STATE_UPDATED_TIME: timeutils.isotime(
watch.rule.get(RULE_STATE_UPDATED_TIME)),
WATCH_STATE_VALUE: watch.state,
WATCH_STATISTIC: watch.rule.get(RULE_STATISTIC),
result = {
WATCH_DATA_ALARM: wd.watch_rule.name,
WATCH_DATA_METRIC: metric_name,
- WATCH_DATA_TIME: heat_utils.strtime(wd.created_at),
+ WATCH_DATA_TIME: timeutils.isotime(wd.created_at),
WATCH_DATA_NAMESPACE: namespace,
WATCH_DATA: metric_data
}