Merge "Generate correct names for sahara templates"
This commit is contained in:
commit
d266a6d9e3
|
@ -13,6 +13,8 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
|
||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
|
@ -163,7 +165,7 @@ class SaharaNodeGroupTemplate(resource.Resource):
|
||||||
name = self.properties[self.NAME]
|
name = self.properties[self.NAME]
|
||||||
if name:
|
if name:
|
||||||
return name
|
return name
|
||||||
return self.physical_resource_name()
|
return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_name())
|
||||||
|
|
||||||
def handle_create(self):
|
def handle_create(self):
|
||||||
plugin_name = self.properties[self.PLUGIN_NAME]
|
plugin_name = self.properties[self.PLUGIN_NAME]
|
||||||
|
@ -352,7 +354,7 @@ class SaharaClusterTemplate(resource.Resource):
|
||||||
name = self.properties[self.NAME]
|
name = self.properties[self.NAME]
|
||||||
if name:
|
if name:
|
||||||
return name
|
return name
|
||||||
return self.physical_resource_name()
|
return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_name())
|
||||||
|
|
||||||
def handle_create(self):
|
def handle_create(self):
|
||||||
plugin_name = self.properties[self.PLUGIN_NAME]
|
plugin_name = self.properties[self.PLUGIN_NAME]
|
||||||
|
|
|
@ -57,6 +57,32 @@ resources:
|
||||||
neutron_management_network: some_network
|
neutron_management_network: some_network
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
cluster_template_without_name = """
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
resources:
|
||||||
|
cluster_template!:
|
||||||
|
type: OS::Sahara::ClusterTemplate
|
||||||
|
properties:
|
||||||
|
plugin_name: vanilla
|
||||||
|
hadoop_version: 2.3.0
|
||||||
|
neutron_management_network: some_network
|
||||||
|
"""
|
||||||
|
|
||||||
|
node_group_template_without_name = """
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
resources:
|
||||||
|
node_group!:
|
||||||
|
type: OS::Sahara::NodeGroupTemplate
|
||||||
|
properties:
|
||||||
|
plugin_name: vanilla
|
||||||
|
hadoop_version: 2.3.0
|
||||||
|
flavor: m1.large
|
||||||
|
floating_ip_pool: some_pool_name
|
||||||
|
node_processes:
|
||||||
|
- namenode
|
||||||
|
- jobtracker
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
class FakeNodeGroupTemplate(object):
|
class FakeNodeGroupTemplate(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -193,6 +219,17 @@ class SaharaNodeGroupTemplateTest(common.HeatTestCase):
|
||||||
u"Error validating value u'm1.large'",
|
u"Error validating value u'm1.large'",
|
||||||
six.text_type(ex))
|
six.text_type(ex))
|
||||||
|
|
||||||
|
def test_template_invalid_name(self):
|
||||||
|
tmpl = template_format.parse(node_group_template_without_name)
|
||||||
|
stack = utils.parse_stack(tmpl)
|
||||||
|
ngt = stack['node_group!']
|
||||||
|
self.ngt_mgr.create.return_value = self.fake_ngt
|
||||||
|
scheduler.TaskRunner(ngt.create)()
|
||||||
|
self.assertEqual((ngt.CREATE, ngt.COMPLETE), ngt.state)
|
||||||
|
self.assertEqual(self.fake_ngt.id, ngt.resource_id)
|
||||||
|
name = self.ngt_mgr.create.call_args[0][0]
|
||||||
|
self.assertIn('-nodegroup-', name)
|
||||||
|
|
||||||
|
|
||||||
class SaharaClusterTemplateTest(common.HeatTestCase):
|
class SaharaClusterTemplateTest(common.HeatTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -275,3 +312,14 @@ class SaharaClusterTemplateTest(common.HeatTestCase):
|
||||||
ct.validate)
|
ct.validate)
|
||||||
self.assertEqual("neutron_management_network must be provided",
|
self.assertEqual("neutron_management_network must be provided",
|
||||||
six.text_type(ex))
|
six.text_type(ex))
|
||||||
|
|
||||||
|
def test_template_invalid_name(self):
|
||||||
|
tmpl = template_format.parse(cluster_template_without_name)
|
||||||
|
stack = utils.parse_stack(tmpl)
|
||||||
|
ct = stack['cluster_template!']
|
||||||
|
self.ct_mgr.create.return_value = self.fake_ct
|
||||||
|
scheduler.TaskRunner(ct.create)()
|
||||||
|
self.assertEqual((ct.CREATE, ct.COMPLETE), ct.state)
|
||||||
|
self.assertEqual(self.fake_ct.id, ct.resource_id)
|
||||||
|
name = self.ct_mgr.create.call_args[0][0]
|
||||||
|
self.assertIn('-clustertemplate-', name)
|
||||||
|
|
Loading…
Reference in New Issue