示例#1
0
 def test_works(self):
     policy = UpdatePolicy(
         'AutoScalingRollingUpdate',
         PauseTime='PT1M5S',
         MinInstancesInService='2',
         MaxBatchSize='1',
     )
     self.assertEqual(policy.PauseTime, 'PT1M5S')
示例#2
0
 def test_working(self):
     group = AutoScalingGroup('mygroup',
                              LaunchConfigurationName="I'm a test",
                              MaxSize="4",
                              MinSize="2",
                              UpdatePolicy=UpdatePolicy(
                                  'AutoScalingRollingUpdate',
                                  PauseTime='PT1M5S',
                                  MinInstancesInService='2',
                                  MaxBatchSize='1',
                              ))
     self.assertTrue(group.validate())
示例#3
0
 def test_mininstances_maxsize_is_ref(self):
     paramMaxSize = Parameter("ParamMaxSize", Type="String")
     group = AutoScalingGroup('mygroup',
                              LaunchConfigurationName="I'm a test",
                              MaxSize=Ref(paramMaxSize),
                              MinSize="2",
                              UpdatePolicy=UpdatePolicy(
                                  'AutoScalingRollingUpdate',
                                  PauseTime='PT1M5S',
                                  MinInstancesInService='2',
                                  MaxBatchSize="1",
                              ))
     self.assertTrue(group.validate())
示例#4
0
 def test_mininstances(self):
     group = AutoScalingGroup('mygroup',
                              LaunchConfigurationName="I'm a test",
                              MaxSize="1",
                              MinSize="1",
                              UpdatePolicy=UpdatePolicy(
                                  'AutoScalingRollingUpdate',
                                  PauseTime='PT1M5S',
                                  MinInstancesInService='1',
                                  MaxBatchSize='1',
                              ))
     with self.assertRaises(ValueError):
         self.assertTrue(group.validate())
示例#5
0
 def test_updatepolicy_dictname(self):
     t = UpdatePolicy('AutoScalingRollingUpdate', PauseTime='PT1M0S')
     d = json.loads(json.dumps(t, cls=awsencode))
     self.assertIn('AutoScalingRollingUpdate', d)
示例#6
0
 def test_updatepolicy_noproperty(self):
     t = UpdatePolicy('AutoScalingRollingUpdate', PauseTime='PT1M0S')
     d = json.loads(json.dumps(t, cls=awsencode))
     with self.assertRaises(KeyError):
         d['Properties']
示例#7
0
 def test_type(self):
     with self.assertRaises(ValueError):
         UpdatePolicy('MyCoolPolicy')
示例#8
0
 def test_pausetime(self):
     with self.assertRaises(ValueError):
         UpdatePolicy('AutoScalingRollingUpdate', PauseTime='90')
示例#9
0
                         SSLCertificateId=Ref(SSLCertificateId)),
        ],
        CrossZone=True,
        SecurityGroups=[Ref(LoadBalancerSecurityGroup)],
        LoadBalancerName="api-lb",
        Scheme="internet-facing",
    ))

AutoscalingGroup = t.add_resource(
    AutoScalingGroup("AutoscalingGroup",
                     DesiredCapacity=Ref(ScaleCapacity),
                     Tags=[Tag("Environment", Ref(EnvType), True)],
                     LaunchConfigurationName=Ref(LaunchConfiguration),
                     MinSize=Ref(ScaleCapacity),
                     MaxSize=Ref(ScaleCapacity),
                     VPCZoneIdentifier=[Ref(ApiSubnet1),
                                        Ref(ApiSubnet2)],
                     LoadBalancerNames=[Ref(LoadBalancer)],
                     AvailabilityZones=[
                         Ref(VPCAvailabilityZone1),
                         Ref(VPCAvailabilityZone2)
                     ],
                     HealthCheckType="EC2",
                     UpdatePolicy=UpdatePolicy('AutoScalingRollingUpdate',
                                               PauseTime='PT5M',
                                               MinInstancesInService="1",
                                               MaxBatchSize='1',
                                               WaitOnResourceSignals=True)))

print(t.to_json())