"ComparisonOperator": "GreaterThanThreshold"
}
},
+ "CfnLBUser" : {
+ "Type" : "AWS::IAM::User"
+ },
+ "CfnLBAccessKey" : {
+ "Type" : "AWS::IAM::AccessKey",
+ "Properties" : {
+ "UserName" : {"Ref": "CfnLBUser"}
+ }
+ },
"LB_instance": {
"Type": "AWS::EC2::Instance",
"Metadata": {
}
},
"files": {
+ "/etc/cfn/cfn-credentials" : {
+ "content" : { "Fn::Join" : ["", [
+ "AWSAccessKeyId=", { "Ref" : "CfnLBAccessKey" }, "\\n",
+ "AWSSecretKey=", {"Fn::GetAtt": ["CfnLBAccessKey",
+ "SecretAccessKey"]}, "\\n"
+ ]]},
+ "mode" : "000400",
+ "owner" : "root",
+ "group" : "root"
+ },
"/etc/cfn/cfn-hup.conf" : {
"content" : { "Fn::Join" : ["", [
"[main]\\n",
{ "Ref": "AWS::StackName" },
" -r LB_instance ",
" --region ", { "Ref": "AWS::Region" }, "\\n",
- "touch /etc/cfn/cfn-credentials\\n",
"# install cfn-hup crontab\\n",
"crontab /tmp/cfn-hup-crontab.txt\\n"
]]}}
from heat.common import template_format
from heat.engine import parser
from heat.engine.resources import instance
+from heat.engine.resources import user
from heat.engine.resources import loadbalancer as lb
from heat.engine.resource import Metadata
from heat.engine.resources import stack
from heat.tests.v1_1 import fakes
+from heat.tests import fakes as test_fakes
def create_context(mocks, user='lb_test_user',
self.m.StubOutWithMock(instance.Instance, 'nova')
self.m.StubOutWithMock(self.fc.servers, 'create')
self.m.StubOutWithMock(Metadata, '__set__')
+ self.fkc = test_fakes.FakeKeystoneClient(
+ username='test_stack.CfnLBUser')
def tearDown(self):
self.m.UnsetStubs()
return resource
def test_loadbalancer(self):
+ self.m.StubOutWithMock(user.User, 'keystone')
+ user.User.keystone().MultipleTimes().AndReturn(self.fkc)
+ self.m.StubOutWithMock(user.AccessKey, 'keystone')
+ user.AccessKey.keystone().MultipleTimes().AndReturn(self.fkc)
+
lb.LoadBalancer.nova().AndReturn(self.fc)
instance.Instance.nova().MultipleTimes().AndReturn(self.fc)
self.fc.servers.create(