Merge "Rename 'tags' to be 'metadata'"
This commit is contained in:
commit
ea1dcc808c
@ -319,7 +319,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> List of key-value pairs that will be associated with
|
||||
<code>metadata</code> List of key-value pairs that will be associated with
|
||||
the cluster. (optional).
|
||||
</para>
|
||||
</listitem>
|
||||
@ -389,7 +389,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> New tags to be associated to the cluster being
|
||||
<code>metadata</code> New metadata to be associated to the cluster being
|
||||
updated, if provided. The value should be a list of key-value pairs.
|
||||
</para>
|
||||
</listitem>
|
||||
@ -662,7 +662,7 @@
|
||||
<code>name</code>, <code>type</code>,
|
||||
<code>created_time</code>, <code>updated_time</code>,
|
||||
<code>deleted_time</code>, <code>permission</code> and
|
||||
<code>tags</code>.
|
||||
<code>metadata</code>.
|
||||
</para>
|
||||
</wadl:doc>
|
||||
</param>
|
||||
@ -681,7 +681,7 @@
|
||||
key can be one of <code>name</code>, <code>type</code>,
|
||||
<code>created_time</code>, <code>updated_time</code>,
|
||||
<code>deleted_time</code>, <code>permission</code> or
|
||||
<code>tags</code>.
|
||||
<code>metadata</code>.
|
||||
</para>
|
||||
</wadl:doc>
|
||||
</param>
|
||||
@ -702,7 +702,7 @@
|
||||
<para>List of profile records where each record contains
|
||||
fields like <code>id</code>, <code>name</code>,
|
||||
<code>type</code>, <code>spec</code>,
|
||||
<code>permission</code>, <code>tags</code> values etc.
|
||||
<code>permission</code>, <code>metadata</code> values etc.
|
||||
</para>
|
||||
</wadl:doc>
|
||||
</param>
|
||||
@ -745,7 +745,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> A list of key-value pairs to be associated with the profile. (optional).
|
||||
<code>metadata</code> A list of key-value pairs to be associated with the profile. (optional).
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -790,7 +790,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> A list of key-value pairs attached to the profile.
|
||||
<code>metadata</code> A list of key-value pairs attached to the profile.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
@ -823,7 +823,7 @@
|
||||
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
|
||||
<para>A profile record that contains fields like <code>id</code>,
|
||||
<code>name</code>, <code>type</code>, <code>spec</code>,
|
||||
<code>permission</code>, <code>tags</code> etc.
|
||||
<code>permission</code>, <code>metadata</code> etc.
|
||||
</para>
|
||||
<xsdxt:code href="samples/profile_get_resp.json"/>
|
||||
</wadl:doc>
|
||||
@ -854,7 +854,7 @@
|
||||
<para>A string to be interpreted as new permission.</para>
|
||||
</wadl:doc>
|
||||
</param>
|
||||
<param name="tags" style="plain" required="false">
|
||||
<param name="metadata" style="plain" required="false">
|
||||
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
|
||||
<para>A list of key-value pairs to be associated with the target
|
||||
profile.</para>
|
||||
@ -867,7 +867,7 @@
|
||||
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
|
||||
<para>A profile record that contains fields like <code>id</code>,
|
||||
<code>name</code>, <code>type</code>, <code>spec</code>,
|
||||
<code>permission</code>, <code>tags</code> etc.
|
||||
<code>permission</code>, <code>metadata</code> etc.
|
||||
</para>
|
||||
<xsdxt:code href="samples/profile_update_resp.json"/>
|
||||
</wadl:doc>
|
||||
@ -1220,7 +1220,7 @@
|
||||
<code>id</code>, <code>cluster_id</code>, <code>name</code>,
|
||||
<code>physical_id</code>, <code>profile_id</code>, <code>created_time</code>,
|
||||
<code>index</code>, <code>status</code>, <code>status_reason</code>,
|
||||
<code>tags</code>, <code>updated_time</code> etc.
|
||||
<code>metadata</code>, <code>updated_time</code> etc.
|
||||
</para>
|
||||
</wadl:doc>
|
||||
</param>
|
||||
@ -1267,7 +1267,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> A list of key-value pairs to be attached to
|
||||
<code>metadata</code> A list of key-value pairs to be attached to
|
||||
the newly created node. [Optional].
|
||||
</para>
|
||||
</listitem>
|
||||
@ -1324,7 +1324,7 @@
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<code>tags</code> A list of key-value pairs to be attached to
|
||||
<code>metadata</code> A list of key-value pairs to be attached to
|
||||
the updated node. [Optional].
|
||||
</para>
|
||||
</listitem>
|
||||
@ -1406,7 +1406,7 @@
|
||||
A node record that contains fields like <code>id</code>, <code>cluster_id</code>,
|
||||
<code>name</code>, <code>physical_id</code>, <code>profile_id</code>,
|
||||
<code>created_time</code>, <code>index</code>, <code>status</code>,
|
||||
<code>status_reason</code>, <code>tags</code>, <code>updated_time</code> etc.
|
||||
<code>status_reason</code>, <code>metadata</code>, <code>updated_time</code> etc.
|
||||
</para>
|
||||
<xsdxt:code href="samples/node_get_resp.json"/>
|
||||
</wadl:doc>
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"cluster": {
|
||||
"metadata": {},
|
||||
"name": "test_cluster",
|
||||
"parent": null,
|
||||
"profile_id": "mystack",
|
||||
"size": "1",
|
||||
"tags": {},
|
||||
"timeout": null
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
"domain": "",
|
||||
"id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
|
||||
"init_time": null,
|
||||
"metadata": {},
|
||||
"name": "test_cluster",
|
||||
"nodes": [],
|
||||
"parent": null,
|
||||
@ -17,7 +18,6 @@
|
||||
"size": 1,
|
||||
"status": "INIT",
|
||||
"status_reason": "Initializing",
|
||||
"tags": {},
|
||||
"timeout": null,
|
||||
"updated_time": null,
|
||||
"user": "admin"
|
||||
|
@ -6,6 +6,7 @@
|
||||
"domain": "",
|
||||
"id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
|
||||
"init_time": "2015-03-03T06:24:27.000000",
|
||||
"metadata": {},
|
||||
"name": "test_cluster",
|
||||
"nodes": [
|
||||
"a0d91878-9154-4c7e-b6af-82bba7772b5e"
|
||||
@ -18,7 +19,6 @@
|
||||
"size": 2,
|
||||
"status": "ACTIVE",
|
||||
"status_reason": "Cluster creation succeeded",
|
||||
"tags": {},
|
||||
"timeout": null,
|
||||
"updated_time": null,
|
||||
"user": "admin"
|
||||
|
@ -7,6 +7,7 @@
|
||||
"domain": "",
|
||||
"id": "7d85f602-a948-4a30-afd4-e84f47471c15",
|
||||
"init_time": "2015-02-10T14:26:11.000000",
|
||||
"metadata": {},
|
||||
"name": "cluster1",
|
||||
"nodes": [
|
||||
"b07c57c8-7ab2-47bf-bdf8-e894c0c601b9",
|
||||
@ -21,7 +22,6 @@
|
||||
"size": 11,
|
||||
"status": "ACTIVE",
|
||||
"status_reason": "Cluster scale-in succeeded",
|
||||
"tags": {},
|
||||
"timeout": null,
|
||||
"updated_time": null,
|
||||
"user": "admin"
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"cluster": {
|
||||
"metadata": {},
|
||||
"name": null,
|
||||
"parent": null,
|
||||
"profile_id": null,
|
||||
"tags": {},
|
||||
"timeout": "30"
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"node": {
|
||||
"cluster_id": null,
|
||||
"metadata": {},
|
||||
"name": "node009",
|
||||
"profile_id": "mystack",
|
||||
"role": "master",
|
||||
"tags": {}
|
||||
"role": "master"
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
"id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
|
||||
"index": -1,
|
||||
"init_time": "2015-03-05T08:53:15.774619",
|
||||
"metadata": {},
|
||||
"name": "node009",
|
||||
"physical_id": "",
|
||||
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
|
||||
@ -16,7 +17,6 @@
|
||||
"role": "master",
|
||||
"status": "INIT",
|
||||
"status_reason": "Initializing",
|
||||
"tags": {},
|
||||
"updated_time": null
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
"id": "d5779bb0-f0a0-49c9-88cc-6f078adb5a0b",
|
||||
"index": -1,
|
||||
"init_time": "2015-02-10T12:03:13.000000",
|
||||
"metadata": {},
|
||||
"name": "node1",
|
||||
"physical_id": "f41537fa-22ab-4bea-94c0-c874e19d0c80",
|
||||
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
|
||||
@ -15,7 +16,6 @@
|
||||
"role": null,
|
||||
"status": "ACTIVE",
|
||||
"status_reason": "Creation succeeded",
|
||||
"tags": {},
|
||||
"updated_time": "2015-03-04T04:58:27.000000"
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
"id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
|
||||
"index": -1,
|
||||
"init_time": "2015-02-27T04:39:18.000000",
|
||||
"metadata": {},
|
||||
"name": "node00a",
|
||||
"physical_id": "cc028275-d078-4729-bf3e-154b7359814b",
|
||||
"profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
|
||||
@ -16,7 +17,6 @@
|
||||
"role": null,
|
||||
"status": "ACTIVE",
|
||||
"status_reason": "Creation succeeded",
|
||||
"tags": {},
|
||||
"updated_time": null
|
||||
},
|
||||
]
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"node": {
|
||||
"metadata": {},
|
||||
"name": "new_node_name",
|
||||
"profile": null,
|
||||
"role": null,
|
||||
"tags": {}
|
||||
"role": null
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"profile": {
|
||||
"metadata": {},
|
||||
"name": "test_prof1",
|
||||
"permission": "xxx",
|
||||
"spec": {
|
||||
@ -44,7 +45,6 @@
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
"tags": {},
|
||||
"type": "os.heat.stack"
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
"created_time": "2015-03-01T14:28:25.000000",
|
||||
"deleted_time": null,
|
||||
"id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
|
||||
"metadata": {},
|
||||
"name": "test_prof1",
|
||||
"permission": "xxx",
|
||||
"spec": {
|
||||
@ -47,7 +48,6 @@
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
"tags": {},
|
||||
"type": "os.heat.stack",
|
||||
"updated_time": null
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
"created_time": "2015-03-01T14:28:25.000000",
|
||||
"deleted_time": null,
|
||||
"id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
|
||||
"metadata": {},
|
||||
"name": "test_prof1",
|
||||
"permission": "xxx",
|
||||
"spec": {
|
||||
@ -47,7 +48,6 @@
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
"tags": {},
|
||||
"type": "os.heat.stack",
|
||||
"updated_time": null
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
"created_time": "2015-02-10T11:46:33.000000",
|
||||
"deleted_time": null,
|
||||
"id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
|
||||
"metadata": {},
|
||||
"name": "mystack",
|
||||
"permission": "",
|
||||
"spec": {
|
||||
@ -48,7 +49,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tags": {},
|
||||
"type": "os.heat.stack",
|
||||
"updated_time": null
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"type": "os.heat.stack",
|
||||
"metadata": {},
|
||||
"permission": "",
|
||||
"spec": {
|
||||
"context": {},
|
||||
"environment": {},
|
||||
@ -7,6 +8,5 @@
|
||||
"parameters": [],
|
||||
"template": {}
|
||||
},
|
||||
"permission": "",
|
||||
"tags": {}
|
||||
"type": "os.heat.stack"
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"profile": {
|
||||
"metadata": {},
|
||||
"name": null,
|
||||
"permission": "111100001111",
|
||||
"spec": null,
|
||||
"tags": {}
|
||||
"spec": null
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
"created_time": "2015-03-01T14:28:25.000000",
|
||||
"deleted_time": null,
|
||||
"id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
|
||||
"metadata": {},
|
||||
"name": "test_prof1",
|
||||
"permission": "010101",
|
||||
"spec": {
|
||||
@ -47,7 +48,6 @@
|
||||
},
|
||||
"timeout": 60
|
||||
},
|
||||
"tags": {},
|
||||
"type": "os.heat.stack",
|
||||
"updated_time": "2015-03-02T06:16:01.050516"
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ class ClusterData(object):
|
||||
self.name = data.get(consts.CLUSTER_NAME, None)
|
||||
self.profile = data.get(consts.CLUSTER_PROFILE, None)
|
||||
self.parent = data.get(consts.CLUSTER_PARENT, None)
|
||||
self.tags = data.get(consts.CLUSTER_TAGS, None)
|
||||
self.metadata = data.get(consts.CLUSTER_METADATA, None)
|
||||
|
||||
self.desired_capacity = data.get(consts.CLUSTER_DESIRED_CAPACITY, None)
|
||||
self.min_size = data.get(consts.CLUSTER_MIN_SIZE, None)
|
||||
@ -188,7 +188,7 @@ class ClusterController(object):
|
||||
|
||||
cluster = self.rpc_client.cluster_create(
|
||||
req.context, data.name, data.desired_capacity, data.profile,
|
||||
data.min_size, data.max_size, data.parent, data.tags,
|
||||
data.min_size, data.max_size, data.parent, data.metadata,
|
||||
data.timeout)
|
||||
|
||||
return {'cluster': cluster}
|
||||
@ -215,7 +215,7 @@ class ClusterController(object):
|
||||
self.rpc_client.cluster_update(
|
||||
req.context, cluster_id, data.name, data.desired_capacity,
|
||||
data.profile, data.min_size, data.max_size, data.parent,
|
||||
data.tags, data.timeout)
|
||||
data.metadata, data.timeout)
|
||||
|
||||
raise exc.HTTPAccepted()
|
||||
|
||||
|
@ -34,7 +34,7 @@ class NodeData(object):
|
||||
|
||||
PARAMS = (consts.NODE_NAME, consts.NODE_CLUSTER_ID,
|
||||
consts.NODE_PROFILE_ID, consts.NODE_ROLE,
|
||||
consts.NODE_TAGS,)
|
||||
consts.NODE_METADATA)
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
@ -61,10 +61,10 @@ class NodeData(object):
|
||||
return None
|
||||
return self.data[consts.NODE_ROLE]
|
||||
|
||||
def tags(self):
|
||||
if consts.NODE_TAGS not in self.data:
|
||||
def metadata(self):
|
||||
if consts.NODE_METADATA not in self.data:
|
||||
return {}
|
||||
return self.data[consts.NODE_TAGS]
|
||||
return self.data[consts.NODE_METADATA]
|
||||
|
||||
|
||||
class NodeController(object):
|
||||
@ -137,7 +137,7 @@ class NodeController(object):
|
||||
result = self.rpc_client.node_create(req.context, data.name(),
|
||||
data.cluster_id(),
|
||||
data.profile_id(),
|
||||
data.role(), data.tags())
|
||||
data.role(), data.metadata())
|
||||
return {'node': result}
|
||||
|
||||
@util.policy_enforce
|
||||
@ -169,10 +169,10 @@ class NodeController(object):
|
||||
name = node_data.get(consts.NODE_NAME)
|
||||
profile_id = node_data.get(consts.NODE_PROFILE_ID)
|
||||
role = node_data.get(consts.NODE_ROLE)
|
||||
tags = node_data.get(consts.NODE_TAGS)
|
||||
metadata = node_data.get(consts.NODE_METADATA)
|
||||
|
||||
self.rpc_client.node_update(req.context, node_id, name, profile_id,
|
||||
role, tags)
|
||||
role, metadata)
|
||||
|
||||
raise exc.HTTPAccepted()
|
||||
|
||||
|
@ -30,7 +30,7 @@ class ProfileData(object):
|
||||
|
||||
PARAMS = (consts.PROFILE_NAME, consts.PROFILE_SPEC,
|
||||
consts.PROFILE_CONTEXT, consts.PROFILE_TYPE,
|
||||
consts.PROFILE_PERMISSION, consts.PROFILE_TAGS)
|
||||
consts.PROFILE_PERMISSION, consts.PROFILE_METADATA)
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
@ -53,8 +53,8 @@ class ProfileData(object):
|
||||
def permission(self):
|
||||
return self.data.get(consts.PROFILE_PERMISSION)
|
||||
|
||||
def tags(self):
|
||||
return self.data.get(consts.PROFILE_TAGS)
|
||||
def metadata(self):
|
||||
return self.data.get(consts.PROFILE_METADATA)
|
||||
|
||||
def context(self):
|
||||
return self.data.get(consts.PROFILE_CONTEXT)
|
||||
@ -82,7 +82,7 @@ class ProfileController(object):
|
||||
'updated_time': 'single',
|
||||
'deleted_time': 'single',
|
||||
'permission': 'mixed',
|
||||
'tags': 'mixed',
|
||||
'metadata': 'mixed',
|
||||
}
|
||||
param_whitelist = {
|
||||
'limit': 'single',
|
||||
@ -124,7 +124,7 @@ class ProfileController(object):
|
||||
data.type(),
|
||||
data.spec(),
|
||||
data.permission(),
|
||||
data.tags())
|
||||
data.metadata())
|
||||
|
||||
return {'profile': result}
|
||||
|
||||
@ -146,11 +146,11 @@ class ProfileController(object):
|
||||
name = profile_data.get(consts.PROFILE_NAME)
|
||||
spec = profile_data.get(consts.PROFILE_SPEC)
|
||||
permission = profile_data.get(consts.PROFILE_PERMISSION)
|
||||
tags = profile_data.get(consts.PROFILE_TAGS)
|
||||
metadata = profile_data.get(consts.PROFILE_METADATA)
|
||||
# We don't check if type is specified or not
|
||||
profile = self.rpc_client.profile_update(req.context, profile_id,
|
||||
name, spec, permission,
|
||||
tags)
|
||||
metadata)
|
||||
|
||||
return {'profile': profile}
|
||||
|
||||
|
@ -59,34 +59,34 @@ CLUSTER_ATTRS = (
|
||||
CLUSTER_DOMAIN, CLUSTER_PROJECT, CLUSTER_USER,
|
||||
CLUSTER_CREATED_TIME, CLUSTER_UPDATED_TIME, CLUSTER_DELETED_TIME,
|
||||
CLUSTER_STATUS, CLUSTER_STATUS_REASON, CLUSTER_TIMEOUT,
|
||||
CLUSTER_TAGS,
|
||||
CLUSTER_METADATA,
|
||||
) = (
|
||||
'name', 'profile_id', 'desired_capacity',
|
||||
'min_size', 'max_size', 'id', 'parent',
|
||||
'domain', 'project', 'user',
|
||||
'created_time', 'updated_time', 'deleted_time',
|
||||
'status', 'status_reason', 'timeout',
|
||||
'tags',
|
||||
'metadata',
|
||||
)
|
||||
|
||||
NODE_ATTRS = (
|
||||
NODE_INDEX, NODE_NAME, NODE_PROFILE_ID, NODE_CLUSTER_ID,
|
||||
NODE_CREATED_TIME, NODE_UPDATED_TIME, NODE_DELETED_TIME,
|
||||
NODE_STATUS, NODE_ROLE, NODE_TAGS,
|
||||
NODE_STATUS, NODE_ROLE, NODE_METADATA,
|
||||
) = (
|
||||
'index', 'name', 'profile_id', 'cluster_id',
|
||||
'created_time', 'updated_time', 'deleted_time',
|
||||
'status', 'role', 'tags',
|
||||
'status', 'role', 'metadata',
|
||||
)
|
||||
|
||||
PROFILE_ATTRS = (
|
||||
PROFILE_ID, PROFILE_NAME, PROFILE_TYPE, PROFILE_PERMISSION,
|
||||
PROFILE_CREATED_TIME, PROFILE_UPDATED_TIME, PROFILE_DELETED_TIME,
|
||||
PROFILE_SPEC, PROFILE_TAGS, PROFILE_CONTEXT,
|
||||
PROFILE_SPEC, PROFILE_METADATA, PROFILE_CONTEXT,
|
||||
) = (
|
||||
'id', 'name', 'type', 'permission',
|
||||
'created_time', 'updated_time', 'deleted_time',
|
||||
'spec', 'tags', 'context',
|
||||
'spec', 'metadata', 'context',
|
||||
)
|
||||
|
||||
POLICY_ATTRS = (
|
||||
|
@ -827,7 +827,6 @@ def profile_get_all(context, limit=None, marker=None, sort_keys=None,
|
||||
consts.PROFILE_CREATED_TIME: models.Profile.created_time.key,
|
||||
consts.PROFILE_UPDATED_TIME: models.Profile.updated_time.key,
|
||||
consts.PROFILE_DELETED_TIME: models.Profile.deleted_time.key,
|
||||
consts.PROFILE_TAGS: models.Profile.tags.key,
|
||||
}
|
||||
keys = _get_sort_keys(sort_keys, sort_key_map)
|
||||
|
||||
|
@ -28,7 +28,7 @@ def upgrade(migrate_engine):
|
||||
sqlalchemy.Column('context', types.Dict),
|
||||
sqlalchemy.Column('spec', types.Dict),
|
||||
sqlalchemy.Column('permission', sqlalchemy.String(32)),
|
||||
sqlalchemy.Column('tags', types.Dict),
|
||||
sqlalchemy.Column('meta_data', types.Dict),
|
||||
sqlalchemy.Column('created_time', sqlalchemy.DateTime),
|
||||
sqlalchemy.Column('updated_time', sqlalchemy.DateTime),
|
||||
sqlalchemy.Column('deleted_time', sqlalchemy.DateTime),
|
||||
@ -60,7 +60,7 @@ def upgrade(migrate_engine):
|
||||
sqlalchemy.Column('timeout', sqlalchemy.Integer),
|
||||
sqlalchemy.Column('status', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('status_reason', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('tags', types.Dict),
|
||||
sqlalchemy.Column('meta_data', types.Dict),
|
||||
sqlalchemy.Column('data', types.Dict),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8'
|
||||
@ -88,7 +88,7 @@ def upgrade(migrate_engine):
|
||||
sqlalchemy.Column('deleted_time', sqlalchemy.DateTime),
|
||||
sqlalchemy.Column('status', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('status_reason', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('tags', types.Dict),
|
||||
sqlalchemy.Column('meta_data', types.Dict),
|
||||
sqlalchemy.Column('data', types.Dict),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8'
|
||||
@ -226,7 +226,7 @@ def upgrade(migrate_engine):
|
||||
sqlalchemy.Column('action', sqlalchemy.String(36)),
|
||||
sqlalchemy.Column('status', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('status_reason', sqlalchemy.String(255)),
|
||||
sqlalchemy.Column('tags', types.Dict),
|
||||
sqlalchemy.Column('meta_data', types.Dict),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8'
|
||||
)
|
||||
|
@ -111,7 +111,7 @@ class Cluster(BASE, SenlinBase, SoftDelete):
|
||||
|
||||
status = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
status_reason = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
tags = sqlalchemy.Column(types.Dict)
|
||||
meta_data = sqlalchemy.Column(types.Dict)
|
||||
data = sqlalchemy.Column(types.Dict)
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ class Node(BASE, SenlinBase, SoftDelete):
|
||||
|
||||
status = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
status_reason = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
tags = sqlalchemy.Column(types.Dict)
|
||||
meta_data = sqlalchemy.Column(types.Dict)
|
||||
data = sqlalchemy.Column(types.Dict)
|
||||
|
||||
|
||||
@ -227,7 +227,7 @@ class Profile(BASE, SenlinBase, SoftDelete):
|
||||
context = sqlalchemy.Column(types.Dict)
|
||||
spec = sqlalchemy.Column(types.Dict)
|
||||
permission = sqlalchemy.Column(sqlalchemy.String(32))
|
||||
tags = sqlalchemy.Column(types.Dict)
|
||||
meta_data = sqlalchemy.Column(types.Dict)
|
||||
created_time = sqlalchemy.Column(sqlalchemy.DateTime)
|
||||
updated_time = sqlalchemy.Column(sqlalchemy.DateTime)
|
||||
deleted_time = sqlalchemy.Column(sqlalchemy.DateTime)
|
||||
@ -320,3 +320,4 @@ class Event(BASE, SenlinBase, SoftDelete):
|
||||
action = sqlalchemy.Column(sqlalchemy.String(36))
|
||||
status = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
status_reason = sqlalchemy.Column(sqlalchemy.String(255))
|
||||
meta_data = sqlalchemy.Column(types.Dict)
|
||||
|
@ -96,7 +96,7 @@ class ClusterAction(base.Action):
|
||||
'project': cluster.project,
|
||||
'domain': cluster.domain,
|
||||
'index': index,
|
||||
'tags': {}
|
||||
'metadata': {}
|
||||
}
|
||||
name = 'node-%s-%003d' % (cluster.id[:8], index)
|
||||
node = node_mod.Node(name, cluster.profile_id, cluster.id,
|
||||
|
@ -76,7 +76,7 @@ class Cluster(periodic_task.PeriodicTasks):
|
||||
self.status = kwargs.get('status', self.INIT)
|
||||
self.status_reason = kwargs.get('status_reason', 'Initializing')
|
||||
self.data = kwargs.get('data', {})
|
||||
self.tags = kwargs.get('tags', {})
|
||||
self.metadata = kwargs.get('metadata', {})
|
||||
|
||||
# heathy checking
|
||||
self.detect_enabled = False
|
||||
@ -121,7 +121,7 @@ class Cluster(periodic_task.PeriodicTasks):
|
||||
'timeout': self.timeout,
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'tags': self.tags,
|
||||
'meta_data': self.metadata,
|
||||
'data': self.data,
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ class Cluster(periodic_task.PeriodicTasks):
|
||||
'status': record.status,
|
||||
'status_reason': record.status_reason,
|
||||
'data': record.data,
|
||||
'tags': record.tags,
|
||||
'metadata': record.meta_data,
|
||||
}
|
||||
|
||||
return cls(record.name, record.desired_capacity, record.profile_id,
|
||||
@ -218,7 +218,7 @@ class Cluster(periodic_task.PeriodicTasks):
|
||||
'timeout': self.timeout,
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'tags': self.tags,
|
||||
'metadata': self.metadata,
|
||||
'data': self.data,
|
||||
'nodes': [node.id for node in self.rt['nodes']],
|
||||
'policies': [policy.id for policy in self.rt['policies']],
|
||||
|
@ -49,6 +49,7 @@ class Event(object):
|
||||
self.obj_type = kwargs.get('obj_type', None)
|
||||
self.obj_name = kwargs.get('obj_name', None)
|
||||
self.cluster_id = kwargs.get('cluster_id', None)
|
||||
self.metadata = kwargs.get('metadata', {})
|
||||
|
||||
# entity not None implies an initial creation of event object,
|
||||
# not a deserialization, so we try make an inference here
|
||||
@ -85,6 +86,7 @@ class Event(object):
|
||||
'status': record.status,
|
||||
'status_reason': record.status_reason,
|
||||
'deleted_time': record.deleted_time,
|
||||
'metadata': record.meta_data,
|
||||
}
|
||||
return cls(record.timestamp, record.level, **kwargs)
|
||||
|
||||
@ -130,6 +132,7 @@ class Event(object):
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'deleted_time': self.deleted_time,
|
||||
'meta_data': self.metadata,
|
||||
}
|
||||
|
||||
event = db_api.event_create(context, values)
|
||||
@ -156,6 +159,7 @@ class Event(object):
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'deleted_time': self.deleted_time,
|
||||
'metadata': self.metadata,
|
||||
}
|
||||
return evt
|
||||
|
||||
|
@ -67,7 +67,7 @@ class Node(object):
|
||||
self.status = kwargs.get('status', self.INIT)
|
||||
self.status_reason = kwargs.get('status_reason', 'Initializing')
|
||||
self.data = kwargs.get('data', {})
|
||||
self.tags = kwargs.get('tags', {})
|
||||
self.metadata = kwargs.get('metadata', {})
|
||||
self.rt = {}
|
||||
|
||||
if context is not None:
|
||||
@ -107,8 +107,8 @@ class Node(object):
|
||||
'deleted_time': self.deleted_time,
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'meta_data': self.metadata,
|
||||
'data': self.data,
|
||||
'tags': self.tags,
|
||||
}
|
||||
|
||||
if self.id:
|
||||
@ -147,7 +147,7 @@ class Node(object):
|
||||
'status': record.status,
|
||||
'status_reason': record.status_reason,
|
||||
'data': record.data,
|
||||
'tags': record.tags,
|
||||
'metadata': record.meta_data,
|
||||
}
|
||||
|
||||
return cls(record.name, record.profile_id, record.cluster_id,
|
||||
@ -200,7 +200,7 @@ class Node(object):
|
||||
'status': self.status,
|
||||
'status_reason': self.status_reason,
|
||||
'data': self.data,
|
||||
'tags': self.tags,
|
||||
'metadata': self.metadata,
|
||||
'profile_name': self.rt['profile'].name,
|
||||
}
|
||||
return node_dict
|
||||
|
@ -198,7 +198,8 @@ class EngineService(service.Service):
|
||||
return [p.to_dict() for p in profiles]
|
||||
|
||||
@request_context
|
||||
def profile_create(self, context, name, type, spec, perm=None, tags=None):
|
||||
def profile_create(self, context, name, type, spec, perm=None,
|
||||
metadata=None):
|
||||
LOG.info(_LI('Creating profile %(type)s: %(name)s'),
|
||||
{'type': type, 'name': name})
|
||||
plugin = environment.global_env().get_profile(type)
|
||||
@ -206,7 +207,7 @@ class EngineService(service.Service):
|
||||
kwargs = {
|
||||
'spec': spec,
|
||||
'permission': perm,
|
||||
'tags': tags,
|
||||
'metadata': metadata,
|
||||
}
|
||||
profile = plugin(context, type, name, **kwargs)
|
||||
profile.validate()
|
||||
@ -221,7 +222,7 @@ class EngineService(service.Service):
|
||||
|
||||
@request_context
|
||||
def profile_update(self, context, profile_id, name=None, spec=None,
|
||||
permission=None, tags=None):
|
||||
permission=None, metadata=None):
|
||||
db_profile = self.profile_find(context, profile_id)
|
||||
if spec is None:
|
||||
profile = profile_base.Profile.load(context, profile=db_profile)
|
||||
@ -232,8 +233,8 @@ class EngineService(service.Service):
|
||||
if permission is not None and permission != profile.permission:
|
||||
profile.permission = permission
|
||||
changed = True
|
||||
if tags is not None and tags != profile.tags:
|
||||
profile.tags = tags
|
||||
if metadata is not None and metadata != profile.metadata:
|
||||
profile.metadata = metadata
|
||||
changed = True
|
||||
if changed:
|
||||
profile.store(context)
|
||||
@ -246,7 +247,7 @@ class EngineService(service.Service):
|
||||
kwargs = {
|
||||
'spec': new_spec,
|
||||
'permission': permission or db_profile.permission,
|
||||
'tags': tags or db_profile.tags,
|
||||
'metadata': metadata or db_profile.meta_data,
|
||||
}
|
||||
|
||||
new_name = name or db_profile.name
|
||||
@ -451,8 +452,8 @@ class EngineService(service.Service):
|
||||
|
||||
@request_context
|
||||
def cluster_create(self, context, name, desired_capacity, profile_id,
|
||||
min_size=None, max_size=None, parent=None, tags=None,
|
||||
timeout=None):
|
||||
min_size=None, max_size=None, parent=None,
|
||||
metadata=None, timeout=None):
|
||||
db_profile = self.profile_find(context, profile_id)
|
||||
|
||||
(init_size, min_size, max_size) = self._validate_cluster_size_params(
|
||||
@ -470,7 +471,7 @@ class EngineService(service.Service):
|
||||
'min_size': min_size,
|
||||
'max_size': max_size,
|
||||
'timeout': timeout,
|
||||
'tags': tags
|
||||
'metadata': metadata,
|
||||
}
|
||||
|
||||
cluster = cluster_mod.Cluster(name, init_size, db_profile.id, **kwargs)
|
||||
@ -495,7 +496,7 @@ class EngineService(service.Service):
|
||||
def cluster_update(self, context, identity, name=None,
|
||||
desired_capacity=None, profile_id=None,
|
||||
min_size=None, max_size=None,
|
||||
parent=None, tags=None, timeout=None):
|
||||
parent=None, metadata=None, timeout=None):
|
||||
|
||||
def update_cluster_properties(cluster):
|
||||
# Check if fields other than profile_id need update
|
||||
@ -510,8 +511,8 @@ class EngineService(service.Service):
|
||||
cluster.parent = db_parent.id
|
||||
changed = True
|
||||
|
||||
if tags is not None and tags != cluster.tags:
|
||||
cluster.tags = tags
|
||||
if metadata is not None and metadata != cluster.metadata:
|
||||
cluster.metadata = metadata
|
||||
changed = True
|
||||
|
||||
if timeout is not None:
|
||||
@ -791,7 +792,7 @@ class EngineService(service.Service):
|
||||
|
||||
@request_context
|
||||
def node_create(self, context, name, profile_id, cluster_id=None,
|
||||
role=None, tags=None):
|
||||
role=None, metadata=None):
|
||||
node_profile = self.profile_find(context, profile_id)
|
||||
if cluster_id is not None:
|
||||
db_cluster = self.cluster_find(context, cluster_id)
|
||||
@ -813,7 +814,7 @@ class EngineService(service.Service):
|
||||
'project': context.project,
|
||||
'domain': context.domain,
|
||||
'role': role,
|
||||
'tags': tags or {}
|
||||
'metadata': metadata or {}
|
||||
}
|
||||
|
||||
node = node_mod.Node(name, node_profile.id, cluster_id, context,
|
||||
@ -848,7 +849,7 @@ class EngineService(service.Service):
|
||||
|
||||
@request_context
|
||||
def node_update(self, context, identity, name=None, profile_id=None,
|
||||
role=None, tags=None):
|
||||
role=None, metadata=None):
|
||||
db_node = self.node_find(context, identity)
|
||||
node = node_mod.Node.load(context, node=db_node)
|
||||
|
||||
@ -861,8 +862,8 @@ class EngineService(service.Service):
|
||||
node.role = role
|
||||
changed = True
|
||||
|
||||
if tags is not None and tags != node.tags:
|
||||
node.tags = tags
|
||||
if metadata is not None and metadata != node.metadata:
|
||||
node.metadata = metadata
|
||||
changed = True
|
||||
|
||||
if changed is True:
|
||||
|
@ -50,7 +50,7 @@ class Profile(object):
|
||||
self.spec_data = schema.Spec(self.spec_schema, self.spec, self.context)
|
||||
|
||||
self.permission = kwargs.get('permission', '')
|
||||
self.tags = kwargs.get('tags', {})
|
||||
self.metadata = kwargs.get('metadata', {})
|
||||
self.created_time = kwargs.get('created_time', None)
|
||||
self.updated_time = kwargs.get('updated_time', None)
|
||||
self.deleted_time = kwargs.get('deleted_time', None)
|
||||
@ -66,7 +66,7 @@ class Profile(object):
|
||||
'id': record.id,
|
||||
'spec': record.spec,
|
||||
'permission': record.permission,
|
||||
'tags': record.tags,
|
||||
'metadata': record.meta_data,
|
||||
'created_time': record.created_time,
|
||||
'updated_time': record.updated_time,
|
||||
'deleted_time': record.deleted_time,
|
||||
@ -113,7 +113,7 @@ class Profile(object):
|
||||
'context': self.context.to_dict(),
|
||||
'spec': self.spec,
|
||||
'permission': self.permission,
|
||||
'tags': self.tags,
|
||||
'meta_data': self.metadata,
|
||||
}
|
||||
|
||||
if self.id:
|
||||
@ -226,7 +226,7 @@ class Profile(object):
|
||||
'type': self.type,
|
||||
'permission': self.permission,
|
||||
'spec': self.spec,
|
||||
'tags': self.tags,
|
||||
'metadata': self.metadata,
|
||||
'created_time': _fmt_time(self.created_time),
|
||||
'updated_time': _fmt_time(self.updated_time),
|
||||
'deleted_time': _fmt_time(self.deleted_time),
|
||||
|
@ -87,22 +87,24 @@ class EngineClient(object):
|
||||
sort_dir=sort_dir, filters=filters,
|
||||
show_deleted=show_deleted))
|
||||
|
||||
def profile_create(self, ctxt, name, type, spec, perm, tags):
|
||||
def profile_create(self, ctxt, name, type, spec, perm, metadata):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('profile_create', name=name,
|
||||
type=type, spec=spec, perm=perm,
|
||||
tags=tags))
|
||||
metadata=metadata))
|
||||
|
||||
def profile_get(self, ctxt, identity):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('profile_get', identity=identity))
|
||||
|
||||
def profile_update(self, ctxt, profile_id, name, spec, permission, tags):
|
||||
def profile_update(self, ctxt, profile_id, name, spec, permission,
|
||||
metadata):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('profile_update',
|
||||
profile_id=profile_id,
|
||||
name=name, spec=spec,
|
||||
permission=permission, tags=tags))
|
||||
permission=permission,
|
||||
metadata=metadata))
|
||||
|
||||
def profile_delete(self, ctxt, identity, cast=True):
|
||||
rpc_method = self.cast if cast else self.call
|
||||
@ -165,8 +167,8 @@ class EngineClient(object):
|
||||
self.make_msg('cluster_get', identity=identity))
|
||||
|
||||
def cluster_create(self, ctxt, name, desired_capacity, profile_id,
|
||||
min_size=None, max_size=None, parent=None, tags=None,
|
||||
timeout=None):
|
||||
min_size=None, max_size=None, parent=None,
|
||||
metadata=None, timeout=None):
|
||||
return self.call(ctxt, self.make_msg('cluster_create',
|
||||
name=name,
|
||||
desired_capacity=desired_capacity,
|
||||
@ -174,7 +176,7 @@ class EngineClient(object):
|
||||
min_size=min_size,
|
||||
max_size=max_size,
|
||||
parent=parent,
|
||||
tags=tags,
|
||||
metadata=metadata,
|
||||
timeout=timeout))
|
||||
|
||||
def cluster_add_nodes(self, ctxt, identity, nodes):
|
||||
@ -199,7 +201,7 @@ class EngineClient(object):
|
||||
|
||||
def cluster_update(self, ctxt, identity, name=None, desired_capacity=None,
|
||||
profile_id=None, min_size=None, max_size=None,
|
||||
parent=None, tags=None, timeout=None):
|
||||
parent=None, metadata=None, timeout=None):
|
||||
return self.call(ctxt, self.make_msg('cluster_update',
|
||||
identity=identity,
|
||||
name=name,
|
||||
@ -207,7 +209,7 @@ class EngineClient(object):
|
||||
profile_id=profile_id,
|
||||
min_size=min_size,
|
||||
max_size=max_size,
|
||||
parent=parent, tags=tags,
|
||||
parent=parent, metadata=metadata,
|
||||
timeout=timeout))
|
||||
|
||||
def cluster_delete(self, ctxt, identity, cast=True):
|
||||
@ -228,23 +230,23 @@ class EngineClient(object):
|
||||
filters=filters,
|
||||
project_safe=project_safe))
|
||||
|
||||
def node_create(self, ctxt, name, cluster_id, profile_id, role, tags):
|
||||
def node_create(self, ctxt, name, cluster_id, profile_id, role, metadata):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('node_create', name=name,
|
||||
profile_id=profile_id,
|
||||
cluster_id=cluster_id,
|
||||
role=role, tags=tags))
|
||||
role=role, metadata=metadata))
|
||||
|
||||
def node_get(self, ctxt, identity, show_details=False):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('node_get', identity=identity,
|
||||
show_details=show_details))
|
||||
|
||||
def node_update(self, ctxt, identity, name, profile_id, role, tags):
|
||||
def node_update(self, ctxt, identity, name, profile_id, role, metadata):
|
||||
return self.call(ctxt,
|
||||
self.make_msg('node_update', identity=identity,
|
||||
name=name, profile_id=profile_id,
|
||||
role=role, tags=tags))
|
||||
role=role, metadata=metadata))
|
||||
|
||||
def node_join(self, ctxt, identity, cluster_id):
|
||||
return self.call(ctxt,
|
||||
|
@ -34,7 +34,7 @@ class ClusterDataTest(base.SenlinTestCase):
|
||||
'name': 'test_cluster',
|
||||
'profile_id': 'some_profile',
|
||||
'parent': 'another_cluster',
|
||||
'tags': {'tag_key': 'tag_value'},
|
||||
'metadata': {'tag_key': 'tag_value'},
|
||||
'desired_capacity': 5,
|
||||
'max_size': 10,
|
||||
'min_size': 0,
|
||||
@ -45,7 +45,7 @@ class ClusterDataTest(base.SenlinTestCase):
|
||||
self.assertEqual('test_cluster', data.name)
|
||||
self.assertEqual('some_profile', data.profile)
|
||||
self.assertEqual('another_cluster', data.parent)
|
||||
self.assertEqual({'tag_key': 'tag_value'}, data.tags)
|
||||
self.assertEqual({'tag_key': 'tag_value'}, data.metadata)
|
||||
self.assertEqual(5, data.desired_capacity)
|
||||
self.assertEqual(10, data.max_size)
|
||||
self.assertEqual(0, data.min_size)
|
||||
@ -250,7 +250,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'timeout': 60,
|
||||
u'status': u'ACTIVE',
|
||||
u'status_reason': u'Cluster successfully created.',
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
u'data': {},
|
||||
u'nodes': [],
|
||||
u'policies': [],
|
||||
@ -427,7 +427,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'min_size': 0,
|
||||
'max_size': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None,
|
||||
}
|
||||
}
|
||||
@ -441,7 +441,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'min_size': 0,
|
||||
'max_size': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': 60,
|
||||
}
|
||||
|
||||
@ -459,7 +459,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'min_size': 0,
|
||||
'max_size': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None
|
||||
})
|
||||
)
|
||||
@ -476,7 +476,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'max_size': 0,
|
||||
'desired_capacity': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None,
|
||||
}
|
||||
|
||||
@ -502,7 +502,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'max_size': 0,
|
||||
'desired_capacity': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None,
|
||||
}
|
||||
}
|
||||
@ -526,7 +526,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'max_size': 0,
|
||||
'desired_capacity': -1,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None,
|
||||
}
|
||||
}
|
||||
@ -555,7 +555,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'max_size': 0,
|
||||
'desired_capacity': 0,
|
||||
'parent': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'timeout': None,
|
||||
}
|
||||
}
|
||||
@ -595,7 +595,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'timeout': 60,
|
||||
u'status': u'ACTIVE',
|
||||
u'status_reason': u'Cluster successfully created.',
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
u'data': {},
|
||||
u'nodes': [],
|
||||
u'policies': [],
|
||||
@ -728,7 +728,7 @@ class ClusterControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
args = {
|
||||
'name': None,
|
||||
'parent': None,
|
||||
'tags': None,
|
||||
'metadata': None,
|
||||
'desired_capacity': 0,
|
||||
'profile_id': 'xxxx-yyyy-zzzz',
|
||||
'min_size': 0,
|
||||
|
@ -40,7 +40,7 @@ class NodeDataTest(base.SenlinTestCase):
|
||||
self.assertRaises(exc.HTTPBadRequest, data.profile_id)
|
||||
self.assertIsNone(data.cluster_id())
|
||||
self.assertIsNone(data.role())
|
||||
self.assertEqual({}, data.tags())
|
||||
self.assertEqual({}, data.metadata())
|
||||
|
||||
def test_with_cluster_id(self):
|
||||
body = {'cluster_id': 'cluster-1', 'name': 'test_node'}
|
||||
@ -88,7 +88,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'status': u'ACTIVE',
|
||||
u'status_reason': u'Node successfully created',
|
||||
u'data': {},
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
}
|
||||
]
|
||||
|
||||
@ -289,7 +289,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'cluster_id': None,
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'cluster_id': None,
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'action': 'this-is-the-node-create-action',
|
||||
}
|
||||
|
||||
@ -315,7 +315,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'cluster_id': None,
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
})
|
||||
)
|
||||
|
||||
@ -330,7 +330,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'bad-profile',
|
||||
'cluster_id': None,
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
req = self._post('/nodes', json.dumps(body))
|
||||
@ -357,7 +357,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'xxxx-yyyy-zzzz',
|
||||
'cluster_id': 'non-existent-cluster',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
req = self._post('/nodes', json.dumps(body))
|
||||
@ -397,7 +397,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'status': u'ACTIVE',
|
||||
u'status_reason': u'Node successfully created',
|
||||
u'data': {},
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
u'details': {}
|
||||
}
|
||||
|
||||
@ -469,7 +469,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
|
||||
@ -478,7 +478,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'cluster_id': None,
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
'action': 'this-is-the-node-update-action',
|
||||
}
|
||||
|
||||
@ -501,7 +501,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
})
|
||||
)
|
||||
|
||||
@ -530,7 +530,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
|
||||
@ -554,7 +554,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
})
|
||||
)
|
||||
|
||||
@ -569,7 +569,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'profile-not-exist',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
|
||||
@ -592,7 +592,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'profile-not-exist',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
})
|
||||
)
|
||||
self.assertEqual(404, resp.json['code'])
|
||||
@ -624,7 +624,7 @@ class NodeControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'name': 'test_node',
|
||||
'profile_id': 'xxxx-yyyy',
|
||||
'role': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
req = self._patch('/nodes/%(node_id)s' % {'node_id': node_id},
|
||||
|
@ -35,14 +35,14 @@ class ProfileDataTest(base.SenlinTestCase):
|
||||
},
|
||||
'type': 'test_profile_type',
|
||||
'permission': None,
|
||||
'tags': {}
|
||||
'metadata': {}
|
||||
}
|
||||
data = profiles.ProfileData(body)
|
||||
self.assertEqual('test_profile', data.name())
|
||||
self.assertEqual({'param1': 'value1', 'param2': 'value2'}, data.spec())
|
||||
self.assertEqual('test_profile_type', data.type())
|
||||
self.assertIsNone(data.permission())
|
||||
self.assertEqual({}, data.tags())
|
||||
self.assertEqual({}, data.metadata())
|
||||
|
||||
def test_required_fields_missing(self):
|
||||
body = {'not a profile name': 'wibble'}
|
||||
@ -51,7 +51,7 @@ class ProfileDataTest(base.SenlinTestCase):
|
||||
self.assertRaises(exc.HTTPBadRequest, data.spec)
|
||||
self.assertRaises(exc.HTTPBadRequest, data.type)
|
||||
self.assertIsNone(data.permission())
|
||||
self.assertIsNone(data.tags())
|
||||
self.assertIsNone(data.metadata())
|
||||
|
||||
|
||||
@mock.patch.object(policy, 'enforce')
|
||||
@ -82,7 +82,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'created_time': u'2015-02-24T19:17:22Z',
|
||||
u'updated_time': None,
|
||||
u'deleted_time': None,
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
}
|
||||
]
|
||||
|
||||
@ -225,7 +225,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'param_2': 2,
|
||||
},
|
||||
'permission': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'param_2': 2,
|
||||
},
|
||||
'permission': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
|
||||
req = self._post('/profiles', json.dumps(body))
|
||||
@ -254,7 +254,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'type': 'test_profile_type',
|
||||
'spec': {'param_1': 'value1', 'param_2': 2},
|
||||
'perm': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
})
|
||||
)
|
||||
|
||||
@ -286,7 +286,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'type': type_name,
|
||||
'spec': {'param': 'value'},
|
||||
'permission': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
req = self._post('/profiles', json.dumps(body))
|
||||
@ -313,7 +313,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'type': 'test_profile_type',
|
||||
'spec': {'param': 'value'},
|
||||
'permission': None,
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
}
|
||||
req = self._post('/profiles', json.dumps(body))
|
||||
@ -367,7 +367,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'created_time': u'2015-02-24T19:17:22Z',
|
||||
u'updated_time': None,
|
||||
u'deleted_time': None,
|
||||
u'tags': {},
|
||||
u'metadata': {},
|
||||
}
|
||||
|
||||
mock_call = self.patchobject(rpc_client.EngineClient, 'call',
|
||||
@ -421,7 +421,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
'spec': {
|
||||
'param_2': 'value3',
|
||||
},
|
||||
'tags': {
|
||||
'metadata': {
|
||||
'author': 'thomas j',
|
||||
}
|
||||
}
|
||||
@ -442,7 +442,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'created_time': u'2015-02-25T16:20:13Z',
|
||||
u'updated_time': None,
|
||||
u'deleted_time': None,
|
||||
u'tags': {u'author': u'thomas j'},
|
||||
u'metadata': {u'author': u'thomas j'},
|
||||
}
|
||||
|
||||
mock_call = self.patchobject(rpc_client.EngineClient, 'call',
|
||||
@ -464,7 +464,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
pid = 'aaaa-bbbb-cccc'
|
||||
body = {
|
||||
'profile': {'spec': {'param_2': 'value3'},
|
||||
'tags': {'author': 'thomas j'}}
|
||||
'metadata': {'author': 'thomas j'}}
|
||||
}
|
||||
|
||||
req = self._put('/profiles/%(profile_id)s' % {'profile_id': pid},
|
||||
@ -481,7 +481,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
body = {
|
||||
'profile': {
|
||||
'name': 'new_profile',
|
||||
'tags': {'author': 'john d'},
|
||||
'metadata': {'author': 'john d'},
|
||||
'permission': 'xxx',
|
||||
}
|
||||
}
|
||||
@ -500,7 +500,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
u'created_time': u'2015-02-25T16:20:13Z',
|
||||
u'updated_time': u'2015-02-25T16:50:22Z',
|
||||
u'deleted_time': None,
|
||||
u'tags': {u'author': u'john d'},
|
||||
u'metadata': {u'author': u'john d'},
|
||||
}
|
||||
|
||||
mock_call = self.patchobject(rpc_client.EngineClient, 'call',
|
||||
@ -522,7 +522,7 @@ class ProfileControllerTest(shared.ControllerTest, base.SenlinTestCase):
|
||||
body = {
|
||||
'profile': {
|
||||
'name': 'new_profile',
|
||||
'tags': {'author': 'john d'},
|
||||
'metadata': {'author': 'john d'},
|
||||
'permission': 'xxx',
|
||||
}
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ def create_cluster(ctx, profile, **kwargs):
|
||||
'init_time': datetime.datetime.utcnow(),
|
||||
'status': 'INIT',
|
||||
'status_reason': 'Just Initialized',
|
||||
'tags': {},
|
||||
'metadata': {},
|
||||
}
|
||||
values.update(kwargs)
|
||||
if 'project' in kwargs:
|
||||
@ -93,7 +93,7 @@ def create_node(ctx, cluster, profile, **kwargs):
|
||||
'deleted_time': None,
|
||||
'status': 'ACTIVE',
|
||||
'status_reason': 'create complete',
|
||||
'tags': json.loads('{"foo": "123"}'),
|
||||
'metadata': json.loads('{"foo": "123"}'),
|
||||
'data': json.loads('{"key1": "value1"}'),
|
||||
}
|
||||
values.update(kwargs)
|
||||
|
@ -48,7 +48,7 @@ class DBAPIClusterTest(base.SenlinTestCase):
|
||||
self.assertIsNone(cluster.updated_time)
|
||||
self.assertIsNone(cluster.deleted_time)
|
||||
self.assertIsNotNone(cluster.init_time)
|
||||
self.assertEqual({}, cluster.tags)
|
||||
self.assertEqual({}, cluster.metadata)
|
||||
self.assertIsNone(cluster.data)
|
||||
|
||||
def test_cluster_get_returns_a_cluster(self):
|
||||
|
@ -47,7 +47,7 @@ class DBAPINodeTest(base.SenlinTestCase):
|
||||
self.assertIsNone(node.deleted_time)
|
||||
self.assertEqual('ACTIVE', node.status)
|
||||
self.assertEqual('create complete', node.status_reason)
|
||||
self.assertEqual('{"foo": "123"}', json.dumps(node.tags))
|
||||
self.assertEqual('{"foo": "123"}', json.dumps(node.metadata))
|
||||
self.assertEqual('{"key1": "value1"}', json.dumps(node.data))
|
||||
self.assertEqual(self.cluster.id, node.cluster_id)
|
||||
self.assertEqual(self.profile.id, node.profile_id)
|
||||
|
@ -205,14 +205,14 @@ class DBAPIProfileTest(base.SenlinTestCase):
|
||||
shared.create_profile(self.ctx, id=pid)
|
||||
|
||||
mock_paginate = self.patchobject(db_api.utils, 'paginate_query')
|
||||
sort_keys = ['type', 'name', 'permission', 'tags',
|
||||
sort_keys = ['type', 'name', 'permission', 'metadata',
|
||||
'created_time', 'updated_time', 'deleted_time']
|
||||
|
||||
db_api.profile_get_all(self.ctx, sort_keys=sort_keys)
|
||||
|
||||
args = mock_paginate.call_args[0]
|
||||
used_sort_keys = set(args[3])
|
||||
expected_keys = set(['id', 'type', 'name', 'permission', 'tags',
|
||||
expected_keys = set(['id', 'type', 'name', 'permission',
|
||||
'created_time', 'updated_time', 'deleted_time'])
|
||||
self.assertEqual(expected_keys, used_sort_keys)
|
||||
|
||||
|
@ -70,7 +70,7 @@ class ClusterTest(base.SenlinTestCase):
|
||||
self.assertEqual('cluster_test_project', result['project'])
|
||||
self.assertIsNone(result['parent'])
|
||||
self.assertIsNone(result['timeout'])
|
||||
self.assertIsNone(result['tags'])
|
||||
self.assertIsNone(result['metadata'])
|
||||
|
||||
action_id = result['action']
|
||||
action = db_api.action_get(self.ctx, result['action'])
|
||||
@ -128,14 +128,14 @@ class ClusterTest(base.SenlinTestCase):
|
||||
self.assertEqual('fake id', result['parent'])
|
||||
|
||||
@mock.patch.object(dispatcher, 'notify')
|
||||
def test_cluster_create_with_tags(self, notify):
|
||||
def test_cluster_create_with_metadata(self, notify):
|
||||
result = self.eng.cluster_create(self.ctx, 'c-1', 2,
|
||||
self.profile['id'],
|
||||
tags={'k': 'v'})
|
||||
metadata={'k': 'v'})
|
||||
|
||||
self.assertIsNotNone(result)
|
||||
self.assertEqual('c-1', result['name'])
|
||||
self.assertEqual({'k': 'v'}, result['tags'])
|
||||
self.assertEqual({'k': 'v'}, result['metadata'])
|
||||
|
||||
def test_cluster_create_profile_not_found(self):
|
||||
ex = self.assertRaises(rpc.ExpectedException,
|
||||
@ -402,11 +402,11 @@ class ClusterTest(base.SenlinTestCase):
|
||||
self.assertEqual(cid, c['id'])
|
||||
self.assertEqual(p['id'], c['parent'])
|
||||
|
||||
# 3. update tags
|
||||
self.eng.cluster_update(self.ctx, cid, tags={'k': 'v'})
|
||||
# 3. update metadata
|
||||
self.eng.cluster_update(self.ctx, cid, metadata={'k': 'v'})
|
||||
c = self.eng.cluster_get(self.ctx, cid)
|
||||
self.assertEqual(cid, c['id'])
|
||||
self.assertEqual({'k': 'v'}, c['tags'])
|
||||
self.assertEqual({'k': 'v'}, c['metadata'])
|
||||
|
||||
# 4. update timeout
|
||||
self.eng.cluster_update(self.ctx, cid, timeout=119)
|
||||
@ -573,7 +573,7 @@ class ClusterTest(base.SenlinTestCase):
|
||||
'deleted_time': None,
|
||||
'status': 'ACTIVE',
|
||||
'status_reason': 'create complete',
|
||||
'tags': {'foo': '123'},
|
||||
'metadata': {'foo': '123'},
|
||||
'data': {'key1': 'value1'},
|
||||
}
|
||||
values.update(kwargs)
|
||||
|
@ -60,7 +60,7 @@ class NodeTest(base.SenlinTestCase):
|
||||
self.assertEqual(self.profile['id'], node['profile_id'])
|
||||
self.assertIsNone(node['cluster_id'])
|
||||
self.assertIsNone(node['role'])
|
||||
self.assertEqual({}, node['tags'])
|
||||
self.assertEqual({}, node['metadata'])
|
||||
|
||||
action_id = node['action']
|
||||
action = db_api.action_get(self.ctx, action_id)
|
||||
@ -80,14 +80,14 @@ class NodeTest(base.SenlinTestCase):
|
||||
self.assertEqual(exception.ProfileNotFound, ex.exc_info[0])
|
||||
|
||||
@mock.patch.object(dispatcher, 'notify')
|
||||
def test_node_create_with_role_and_tags(self, notify):
|
||||
def test_node_create_with_role_and_metadata(self, notify):
|
||||
node = self.eng.node_create(self.ctx, 'n-1', self.profile['id'],
|
||||
role='master', tags={'k': 'v'})
|
||||
role='master', metadata={'k': 'v'})
|
||||
|
||||
self.assertIsNotNone(node)
|
||||
self.assertEqual('n-1', node['name'])
|
||||
self.assertEqual('master', node['role'])
|
||||
self.assertEqual({'k': 'v'}, node['tags'])
|
||||
self.assertEqual({'k': 'v'}, node['metadata'])
|
||||
|
||||
@mock.patch.object(dispatcher, 'notify')
|
||||
def test_node_create_with_profile_name_or_short_id(self, notify):
|
||||
@ -380,7 +380,7 @@ class NodeTest(base.SenlinTestCase):
|
||||
@mock.patch.object(dispatcher, 'notify')
|
||||
def test_node_update_simple(self, notify):
|
||||
node = self.eng.node_create(self.ctx, 'node-1', self.profile['id'],
|
||||
role='Master', tags={'foo': 'bar'})
|
||||
role='Master', metadata={'foo': 'bar'})
|
||||
nodeid = node['id']
|
||||
|
||||
# 1. update name
|
||||
@ -395,11 +395,11 @@ class NodeTest(base.SenlinTestCase):
|
||||
self.assertEqual(nodeid, res['id'])
|
||||
self.assertEqual('worker', res['role'])
|
||||
|
||||
# 3. update tags
|
||||
self.eng.node_update(self.ctx, nodeid, tags={'FOO': 'BAR'})
|
||||
# 3. update metadata
|
||||
self.eng.node_update(self.ctx, nodeid, metadata={'FOO': 'BAR'})
|
||||
res = self.eng.node_get(self.ctx, nodeid)
|
||||
self.assertEqual(nodeid, res['id'])
|
||||
self.assertEqual({'FOO': 'BAR'}, res['tags'])
|
||||
self.assertEqual({'FOO': 'BAR'}, res['metadata'])
|
||||
|
||||
def test_node_update_node_not_found(self):
|
||||
ex = self.assertRaises(rpc.ExpectedException,
|
||||
|
@ -53,15 +53,15 @@ class ProfileTest(base.SenlinTestCase):
|
||||
result = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', spec)
|
||||
self.assertEqual(spec, result['spec'])
|
||||
|
||||
def test_profile_create_with_perm_and_tags(self):
|
||||
def test_profile_create_with_perm_and_metadata(self):
|
||||
spec = {'INT': 1}
|
||||
perm = 'fake perm'
|
||||
tags = {'group': 'mars'}
|
||||
metadata = {'group': 'mars'}
|
||||
result = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', spec,
|
||||
perm=perm, tags=tags)
|
||||
perm=perm, metadata=metadata)
|
||||
self.assertEqual(spec, result['spec'])
|
||||
self.assertEqual(perm, result['permission'])
|
||||
self.assertEqual(tags, result['tags'])
|
||||
self.assertEqual(metadata, result['metadata'])
|
||||
|
||||
def test_profile_create_type_not_found(self):
|
||||
ex = self.assertRaises(rpc.ExpectedException,
|
||||
@ -279,7 +279,7 @@ class ProfileTest(base.SenlinTestCase):
|
||||
|
||||
def test_profile_update_fields(self):
|
||||
p1 = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', {},
|
||||
perm='1111', tags={'foo': 'bar'})
|
||||
perm='1111', metadata={'foo': 'bar'})
|
||||
pid = p1['id']
|
||||
self.assertEqual({}, p1['spec'])
|
||||
|
||||
@ -301,19 +301,19 @@ class ProfileTest(base.SenlinTestCase):
|
||||
p = self.eng.profile_get(self.ctx, pid)
|
||||
self.assertEqual('1100', p['permission'])
|
||||
|
||||
# 3. update tags
|
||||
p2 = self.eng.profile_update(self.ctx, pid, tags={'bar': 'foo'})
|
||||
# 3. update metadata
|
||||
p2 = self.eng.profile_update(self.ctx, pid, metadata={'bar': 'foo'})
|
||||
self.assertEqual(pid, p2['id'])
|
||||
self.assertEqual({'bar': 'foo'}, p2['tags'])
|
||||
self.assertEqual({'bar': 'foo'}, p2['metadata'])
|
||||
|
||||
# check persisted into db
|
||||
p = self.eng.profile_get(self.ctx, pid)
|
||||
self.assertEqual({'bar': 'foo'}, p['tags'])
|
||||
self.assertEqual({'bar': 'foo'}, p['metadata'])
|
||||
|
||||
def test_profile_update_new_spec(self):
|
||||
spec = {'INT': 1}
|
||||
p1 = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', spec,
|
||||
perm='1111', tags={'foo': 'bar'})
|
||||
perm='1111', metadata={'foo': 'bar'})
|
||||
pid = p1['id']
|
||||
|
||||
# update spec only
|
||||
@ -323,13 +323,13 @@ class ProfileTest(base.SenlinTestCase):
|
||||
self.assertEqual({'INT': 2}, p2['spec'])
|
||||
self.assertEqual('p-1', p2['name'])
|
||||
self.assertEqual('1111', p2['permission'])
|
||||
self.assertEqual({'foo': 'bar'}, p2['tags'])
|
||||
self.assertEqual({'foo': 'bar'}, p2['metadata'])
|
||||
|
||||
p = self.eng.profile_get(self.ctx, p2['id'])
|
||||
self.assertEqual({'INT': 2}, p['spec'])
|
||||
self.assertEqual('p-1', p['name'])
|
||||
self.assertEqual('1111', p['permission'])
|
||||
self.assertEqual({'foo': 'bar'}, p['tags'])
|
||||
self.assertEqual({'foo': 'bar'}, p['metadata'])
|
||||
|
||||
# update spec with other fields
|
||||
p2 = self.eng.profile_update(self.ctx, pid, name='p-2',
|
||||
@ -340,7 +340,7 @@ class ProfileTest(base.SenlinTestCase):
|
||||
self.assertEqual({'INT': 2}, p2['spec'])
|
||||
self.assertEqual('p-2', p2['name'])
|
||||
self.assertEqual('1100', p2['permission'])
|
||||
self.assertEqual({'foo': 'bar'}, p2['tags'])
|
||||
self.assertEqual({'foo': 'bar'}, p2['metadata'])
|
||||
|
||||
def test_profile_update_not_found(self):
|
||||
ex = self.assertRaises(rpc.ExpectedException,
|
||||
@ -351,7 +351,7 @@ class ProfileTest(base.SenlinTestCase):
|
||||
|
||||
def test_profile_update_using_find(self):
|
||||
p1 = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', {},
|
||||
perm='1111', tags={'foo': 'bar'})
|
||||
perm='1111', metadata={'foo': 'bar'})
|
||||
pid = p1['id']
|
||||
|
||||
p2 = self.eng.profile_update(self.ctx, pid, name='p-2')
|
||||
@ -369,7 +369,7 @@ class ProfileTest(base.SenlinTestCase):
|
||||
|
||||
def test_profile_update_err_validate(self):
|
||||
p1 = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', {},
|
||||
perm='1111', tags={'foo': 'bar'})
|
||||
perm='1111', metadata={'foo': 'bar'})
|
||||
pid = p1['id']
|
||||
|
||||
ex = self.assertRaises(rpc.ExpectedException,
|
||||
@ -380,7 +380,7 @@ class ProfileTest(base.SenlinTestCase):
|
||||
|
||||
def test_profile_delete(self):
|
||||
p1 = self.eng.profile_create(self.ctx, 'p-1', 'TestProfile', {},
|
||||
perm='1111', tags={'foo': 'bar'})
|
||||
perm='1111', metadata={'foo': 'bar'})
|
||||
pid = p1['id']
|
||||
result = self.eng.profile_delete(self.ctx, pid)
|
||||
self.assertIsNone(result)
|
||||
|
@ -121,7 +121,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'type': mock.ANY,
|
||||
'spec': mock.ANY,
|
||||
'perm': mock.ANY,
|
||||
'tags': mock.ANY,
|
||||
'metadata': mock.ANY,
|
||||
}
|
||||
self._test_engine_api('profile_create', 'call', **default_args)
|
||||
|
||||
@ -134,7 +134,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'name': mock.ANY,
|
||||
'spec': mock.ANY,
|
||||
'permission': mock.ANY,
|
||||
'tags': mock.ANY,
|
||||
'metadata': mock.ANY,
|
||||
}
|
||||
self._test_engine_api('profile_update', 'call', **default_args)
|
||||
|
||||
@ -211,7 +211,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'min_size': 0,
|
||||
'max_size': 0,
|
||||
'parent': None,
|
||||
'tags': None,
|
||||
'metadata': None,
|
||||
'timeout': None
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'min_size': 0,
|
||||
'max_size': 0,
|
||||
'parent': 'another-cluster',
|
||||
'tags': {'key': 'value'},
|
||||
'metadata': {'key': 'value'},
|
||||
'timeout': 120
|
||||
}
|
||||
self._test_engine_api('cluster_update', 'call', **kwargs)
|
||||
@ -279,7 +279,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'profile_id': 'aaaa-bbbb-cccc',
|
||||
'cluster_id': 'xxxx-yyyy-zzzz',
|
||||
'role': None,
|
||||
'tags': None
|
||||
'metadata': None
|
||||
}
|
||||
|
||||
self._test_engine_api('node_create', 'call', **kwargs)
|
||||
@ -302,7 +302,7 @@ class EngineRpcAPITestCase(base.SenlinTestCase):
|
||||
'name': 'new-name',
|
||||
'profile_id': 'new_profile',
|
||||
'role': 'master',
|
||||
'tags': {'key': 'value'}
|
||||
'metadata': {'key': 'value'}
|
||||
}
|
||||
self._test_engine_api('node_update', 'call', **kwargs)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user