本文整理汇总了Python中boto.ec2.elb.ELBConnection.create_load_balancer方法的典型用法代码示例。如果您正苦于以下问题:Python ELBConnection.create_load_balancer方法的具体用法?Python ELBConnection.create_load_balancer怎么用?Python ELBConnection.create_load_balancer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boto.ec2.elb.ELBConnection
的用法示例。
在下文中一共展示了ELBConnection.create_load_balancer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: BotoBalanceInterface
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
class BotoBalanceInterface(BalanceInterface):
conn = None
saveclcdata = False
def __init__(self, clc_host, access_id, secret_key, token):
#boto.set_stream_logger('foo')
path='/services/elb'
port=8773
if clc_host[len(clc_host)-13:] == 'amazonaws.com':
clc_host = clc_host.replace('ec2', 'elasticloadbalancing', 1)
path = '/'
reg = None
port=443
reg = RegionInfo(name='eucalyptus', endpoint=clc_host)
self.conn = ELBConnection(access_id, secret_key, region=reg,
port=port, path=path,
is_secure=True, security_token=token, debug=0)
self.conn.https_validate_certificates = False
self.conn.http_connection_kwargs['timeout'] = 30
def __save_json__(self, obj, name):
f = open(name, 'w')
json.dump(obj, f, cls=BotoJsonBalanceEncoder, indent=2)
f.close()
def create_load_balancer(self, name, zones, listeners, subnets=None,
security_groups=None, scheme='internet-facing'):
return self.conn.create_load_balancer(name, zones, listeners, subnets, security_groups, scheme)
def delete_load_balancer(self, name):
return self.conn.delete_load_balancer(name)
def get_all_load_balancers(self, load_balancer_names=None):
return []
obj = self.conn.get_all_load_balancers(load_balancer_names)
if self.saveclcdata:
self.__save_json__(obj, "mockdata/ELB_Balancers.json")
return obj
def deregister_instances(self, load_balancer_name, instances):
return self.conn.deregister_instances(load_balancer_name, instances)
def register_instances(self, load_balancer_name, instances):
return self.conn.register_instances(load_balancer_name, instances)
def create_load_balancer_listeners(self, name, listeners):
return self.conn.create_load_balancer_listeners(name, listeners)
def delete_load_balancer_listeners(self, name, ports):
return self.conn.delete_load_balancer_listeners(name, ports)
def configure_health_check(self, name, health_check):
return self.conn.configure_health_check(name, health_check)
def describe_instance_health(self, load_balancer_name, instances=None):
obj = self.conn.describe_instance_health(load_balancer_name, instances)
if self.saveclcdata:
self.__save_json__(obj, "mockdata/ELB_Instances.json")
return obj
示例2: test_create_load_balancer
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
def test_create_load_balancer(self):
c = ELBConnection()
name = 'elb-boto-unit-test'
availability_zones = ['us-east-1a']
listeners = [(80, 8000, 'HTTP')]
balancer = c.create_load_balancer(name, availability_zones, listeners)
self.assertEqual(balancer.name, name)
self.assertEqual(balancer.availability_zones, availability_zones)
self.assertEqual(balancer.listeners, listeners)
balancers = c.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [name])
示例3: test_create_load_balancer_listeners
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
def test_create_load_balancer_listeners(self):
c = ELBConnection()
name = 'elb-boto-unit-test'
availability_zones = ['us-east-1a']
listeners = [(80, 8000, 'HTTP')]
balancer = c.create_load_balancer(name, availability_zones, listeners)
more_listeners = [(443, 8001, 'HTTP')]
c.create_load_balancer_listeners(name, more_listeners)
balancers = c.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(listeners + more_listeners)
)
示例4: test_delete_load_balancer_listeners
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
def test_delete_load_balancer_listeners(self):
c = ELBConnection()
name = 'elb-boto-unit-test'
availability_zones = ['us-east-1a']
listeners = [(80, 8000, 'HTTP', 'HTTP', None), (443, 8001, 'HTTP', 'HTTP', None)]
balancer = c.create_load_balancer(name, availability_zones, listeners)
balancers = c.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [name])
self.assertEqual(
[l.get_tuple() for l in balancers[0].listeners], listeners)
c.delete_load_balancer_listeners(name, [443])
balancers = c.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [name])
self.assertEqual(
[l.get_tuple() for l in balancers[0].listeners],
listeners[:1]
)
示例5: test_create_load_balancer_listeners_with_policies
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
def test_create_load_balancer_listeners_with_policies(self):
c = ELBConnection()
name = 'elb-boto-unit-test-policy'
availability_zones = ['us-east-1a']
listeners = [(80, 8000, 'HTTP')]
balancer = c.create_load_balancer(name, availability_zones, listeners)
more_listeners = [(443, 8001, 'HTTP')]
c.create_load_balancer_listeners(name, more_listeners)
lb_policy_name = 'lb-policy'
c.create_lb_cookie_stickiness_policy(1000, name, lb_policy_name)
c.set_lb_policies_of_listener(name, listeners[0][0], lb_policy_name)
app_policy_name = 'app-policy'
c.create_app_cookie_stickiness_policy('appcookie', name, app_policy_name)
c.set_lb_policies_of_listener(name, more_listeners[0][0], app_policy_name)
balancers = c.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(listeners + more_listeners)
)
示例6: BotoBalanceInterface
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
class BotoBalanceInterface(BalanceInterface):
conn = None
saveclcdata = False
def __init__(self, clc_host, access_id, secret_key, token):
self.access_id = access_id
self.secret_key = secret_key
self.token = token
self.set_endpoint(clc_host)
def set_endpoint(self, endpoint):
#boto.set_stream_logger('foo')
reg = RegionInfo(name='eucalyptus', endpoint=endpoint)
path = '/services/LoadBalancing'
port = 8773
if endpoint[len(endpoint)-13:] == 'amazonaws.com':
endpoint = endpoint.replace('ec2', 'elasticloadbalancing', 1)
path = '/'
reg = RegionInfo(endpoint=endpoint)
port = 443
self.conn = ELBConnection(self.access_id, self.secret_key, region=reg,
port=port, path=path,
is_secure=True, security_token=self.token, debug=0)
self.conn.https_validate_certificates = False
self.conn.http_connection_kwargs['timeout'] = 30
def __save_json__(self, obj, name):
f = open(name, 'w')
json.dump(obj, f, cls=BotoJsonBalanceEncoder, indent=2)
f.close()
def create_load_balancer(self, name, zones, listeners, subnets=None,
security_groups=None, scheme='internet-facing'):
return self.conn.create_load_balancer(name, zones, listeners, subnets, security_groups, scheme)
def delete_load_balancer(self, name):
return self.conn.delete_load_balancer(name)
def get_all_load_balancers(self, load_balancer_names=None):
params = {}
if load_balancer_names:
self.build_list_params(params, load_balancer_names,
'LoadBalancerNames.member.%d')
http_request = self.conn.build_base_http_request('GET', '/', None,
params, {}, '',
self.conn.server_name())
http_request.params['Action'] = 'DescribeLoadBalancers'
http_request.params['Version'] = self.conn.APIVersion
response = self.conn._mexe(http_request, override_num_retries=2)
body = response.read()
boto.log.debug(body)
if not body:
boto.log.error('Null body %s' % body)
raise self.conn.ResponseError(response.status, response.reason, body)
elif response.status == 200:
obj = boto.resultset.ResultSet([('member', boto.ec2.elb.loadbalancer.LoadBalancer)])
h = boto.handler.XmlHandler(obj, self.conn)
import xml.sax;
xml.sax.parseString(body, h)
if self.saveclcdata:
self.__save_json__(obj, "mockdata/ELB_Balancers.json")
return obj
else:
boto.log.error('%s %s' % (response.status, response.reason))
boto.log.error('%s' % body)
raise self.conn.ResponseError(response.status, response.reason, body)
def deregister_instances(self, load_balancer_name, instances):
return self.conn.deregister_instances(load_balancer_name, instances)
def register_instances(self, load_balancer_name, instances):
return self.conn.register_instances(load_balancer_name, instances)
def create_load_balancer_listeners(self, name, listeners):
return self.conn.create_load_balancer_listeners(name, listeners)
def delete_load_balancer_listeners(self, name, ports):
return self.conn.delete_load_balancer_listeners(name, ports)
def configure_health_check(self, name, health_check):
return self.conn.configure_health_check(name, health_check)
def describe_instance_health(self, load_balancer_name, instances=None):
obj = self.conn.describe_instance_health(load_balancer_name, instances)
if self.saveclcdata:
self.__save_json__(obj, "mockdata/ELB_Instances.json")
return obj
示例7: ELBConnectionTest
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
class ELBConnectionTest(unittest.TestCase):
ec2 = True
def setUp(self):
"""Creates a named load balancer that can be safely
deleted at the end of each test"""
self.conn = ELBConnection()
self.name = 'elb-boto-unit-test'
self.availability_zones = ['us-east-1a']
self.listeners = [(80, 8000, 'HTTP')]
self.balancer = self.conn.create_load_balancer(self.name, self.availability_zones, self.listeners)
def tearDown(self):
""" Deletes the test load balancer after every test.
It does not delete EVERY load balancer in your account"""
self.balancer.delete()
def test_build_list_params(self):
params = {}
self.conn.build_list_params(
params, ['thing1', 'thing2', 'thing3'], 'ThingName%d')
expected_params = {
'ThingName1': 'thing1',
'ThingName2': 'thing2',
'ThingName3': 'thing3'
}
self.assertEqual(params, expected_params)
# TODO: for these next tests, consider sleeping until our load
# balancer comes up, then testing for connectivity to
# balancer.dns_name, along the lines of the existing EC2 unit tests.
def test_create_load_balancer(self):
self.assertEqual(self.balancer.name, self.name)
self.assertEqual(self.balancer.availability_zones,\
self.availability_zones)
self.assertEqual(self.balancer.listeners, self.listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
def test_create_load_balancer_listeners(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
)
def test_delete_load_balancer_listeners(self):
mod_listeners = [(80, 8000, 'HTTP'), (443, 8001, 'HTTP')]
mod_name = self.name + "-mod"
self.mod_balancer = self.conn.create_load_balancer(mod_name,\
self.availability_zones, mod_listeners)
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual(
sorted([l.get_tuple() for l in mod_balancers[0].listeners]),
sorted(mod_listeners))
self.conn.delete_load_balancer_listeners(self.mod_balancer.name, [443])
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual([l.get_tuple() for l in mod_balancers[0].listeners],
mod_listeners[:1])
self.mod_balancer.delete()
def test_create_load_balancer_listeners_with_policies(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
lb_policy_name = 'lb-policy'
self.conn.create_lb_cookie_stickiness_policy(1000, self.name, lb_policy_name)
self.conn.set_lb_policies_of_listener(self.name, self.listeners[0][0], lb_policy_name)
app_policy_name = 'app-policy'
self.conn.create_app_cookie_stickiness_policy('appcookie', self.name, app_policy_name)
self.conn.set_lb_policies_of_listener(self.name, more_listeners[0][0], app_policy_name)
balancers = self.conn.get_all_load_balancers(load_balancer_names=[self.name])
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
)
# Policy names should be checked here once they are supported
# in the Listener object.
def test_create_load_balancer_backend_with_policies(self):
other_policy_name = 'enable-proxy-protocol'
backend_port = 8081
self.conn.create_lb_policy(self.name, other_policy_name,
'ProxyProtocolPolicyType', {'ProxyProtocol': True})
self.conn.set_lb_policies_of_backend_server(self.name, backend_port, [other_policy_name])
balancers = self.conn.get_all_load_balancers(load_balancer_names=[self.name])
self.assertEqual([lb.name for lb in balancers], [self.name])
#.........这里部分代码省略.........
示例8: __init__
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
#.........这里部分代码省略.........
if sir.id == job_sir_id:
instance_id = sir.instance_id
break
print "Job {} not ready".format(job_sir_id)
time.sleep(60)
self.ec2_conn.create_tags([instance_id], tags)
def remove_instance(self, instance_id):
self.remove_instances([instance_id])
def remove_instances(self, instance_ids):
self.ec2_conn.terminate_instances(instance_ids)
def remove_instance_by_tag_name(self, name):
reservations = self.ec2_conn.get_all_instances()
data_centers_intance_ids = []
for reservation in reservations:
for instance in reservation.instances:
if "Name" in instance.tags and instance.tags["Name"] == name and instance.state == "running":
data_centers_intance_ids.append(instance.id)
if data_centers_intance_ids:
self.remove_instances(data_centers_intance_ids)
def create_elb(self, name, zone, project_tag_value, security_group_id, instance_ids=None):
lbs = [l for l in self.elb_conn.get_all_load_balancers() if l.name == name]
lb = lbs[0] if lbs else None
if not lb:
hc = HealthCheck(
timeout=50, interval=60, healthy_threshold=2, unhealthy_threshold=8, target="HTTP:80/heartbeat"
)
ports = [(80, 80, "http")]
zones = [zone]
lb = self.elb_conn.create_load_balancer(name, zones, ports)
self.elb_conn.apply_security_groups_to_lb(name, [security_group_id])
lb.configure_health_check(hc)
if instance_ids:
lb.register_instances(instance_ids)
params = {
"LoadBalancerNames.member.1": lb.name,
"Tags.member.1.Key": "15619project",
"Tags.member.1.Value": project_tag_value,
}
lb.connection.get_status("AddTags", params, verb="POST")
return lb
def remove_elb(self, name):
self.elb_conn.delete_load_balancer(name)
def create_launch_configuration(self, name, image, key_name, security_groups, instance_type):
lcs = [l for l in self.auto_scale_conn.get_all_launch_configurations() if l.name == name]
lc = lcs[0] if lcs else None
if not lc:
lc = LaunchConfiguration(
name=name,
image_id=image,
key_name=key_name,
security_groups=[security_groups],
instance_type=instance_type,
)
self.auto_scale_conn.create_launch_configuration(lc)
return lc
def remove_launch_configuration(self, name):
示例9: ELBConnectionTest
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
class ELBConnectionTest(unittest.TestCase):
ec2 = True
def setUp(self):
"""Creates a named load balancer that can be safely
deleted at the end of each test"""
self.conn = ELBConnection()
self.name = 'elb-boto-unit-test'
self.availability_zones = ['us-east-1a']
self.listeners = [(80, 8000, 'HTTP')]
self.balancer = self.conn.create_load_balancer(self.name, self.availability_zones, self.listeners)
# S3 bucket for log tests
self.s3 = boto.connect_s3()
self.timestamp = str(int(time.time()))
self.bucket_name = 'boto-elb-%s' % self.timestamp
self.bucket = self.s3.create_bucket(self.bucket_name)
self.bucket.set_canned_acl('public-read-write')
self.addCleanup(self.cleanup_bucket, self.bucket)
def cleanup_bucket(self, bucket):
for key in bucket.get_all_keys():
key.delete()
bucket.delete()
def tearDown(self):
""" Deletes the test load balancer after every test.
It does not delete EVERY load balancer in your account"""
self.balancer.delete()
def test_build_list_params(self):
params = {}
self.conn.build_list_params(
params, ['thing1', 'thing2', 'thing3'], 'ThingName%d')
expected_params = {
'ThingName1': 'thing1',
'ThingName2': 'thing2',
'ThingName3': 'thing3'
}
self.assertEqual(params, expected_params)
# TODO: for these next tests, consider sleeping until our load
# balancer comes up, then testing for connectivity to
# balancer.dns_name, along the lines of the existing EC2 unit tests.
def test_create_load_balancer(self):
self.assertEqual(self.balancer.name, self.name)
self.assertEqual(self.balancer.availability_zones,\
self.availability_zones)
self.assertEqual(self.balancer.listeners, self.listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
def test_create_load_balancer_listeners(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
)
def test_delete_load_balancer_listeners(self):
mod_listeners = [(80, 8000, 'HTTP'), (443, 8001, 'HTTP')]
mod_name = self.name + "-mod"
self.mod_balancer = self.conn.create_load_balancer(mod_name,\
self.availability_zones, mod_listeners)
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual(
sorted([l.get_tuple() for l in mod_balancers[0].listeners]),
sorted(mod_listeners))
self.conn.delete_load_balancer_listeners(self.mod_balancer.name, [443])
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual([l.get_tuple() for l in mod_balancers[0].listeners],
mod_listeners[:1])
self.mod_balancer.delete()
def test_create_load_balancer_listeners_with_policies(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
lb_policy_name = 'lb-policy'
self.conn.create_lb_cookie_stickiness_policy(1000, self.name, lb_policy_name)
self.conn.set_lb_policies_of_listener(self.name, self.listeners[0][0], lb_policy_name)
app_policy_name = 'app-policy'
self.conn.create_app_cookie_stickiness_policy('appcookie', self.name, app_policy_name)
self.conn.set_lb_policies_of_listener(self.name, more_listeners[0][0], app_policy_name)
balancers = self.conn.get_all_load_balancers(load_balancer_names=[self.name])
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
#.........这里部分代码省略.........
示例10: ELBConnection
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
print 'Load Generator running'
lg.add_tag("Project","2.2")
# -------------------------Create Load Balancer---------------------------------
con_elb = ELBConnection()
elb = {
'name': 'ELB',
'zone': ZONE,
'ports': [(80, 80, 'http')],
'target': 'HTTP:80/heartbeat?lg=',
'time_out': 3,
'interval': 20
}
lb = con_elb.create_load_balancer(elb['name'],
elb['zone'],
listeners=elb['ports'],
security_groups=sec_group2.id)
time.sleep(5)
lb_dns = lb.dns_name;
elb['target'] += lg_dns
hc = HealthCheck(interval=elb['interval'],
healthy_threshold=10,
unhealthy_threshold=2,
target=elb['target'],
timeout=elb['time_out'])
lb.configure_health_check(hc)
params = {"LoadBalancerNames.member.1": lb.name,
示例11: ELBConnectionTest
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
class ELBConnectionTest(unittest.TestCase):
ec2 = True
def setup(self):
"""Creates a named load balancer that can be safely
deleted at the end of each test"""
self.conn = ELBConnection()
self.name = 'elb-boto-unit-test'
self.availability_zones = ['us-east-1a']
self.listeners = [(80, 8000, 'HTTP')]
self.balancer = self.conn.create_load_balancer(name, availability_zones, listeners)
def tearDown(self):
""" Deletes the test load balancer after every test.
It does not delete EVERY load balancer in your account"""
self.balancer.delete()
def test_build_list_params(self):
params = {}
self.conn.build_list_params(
params, ['thing1', 'thing2', 'thing3'], 'ThingName%d')
expected_params = {
'ThingName1': 'thing1',
'ThingName2': 'thing2',
'ThingName3': 'thing3'
}
self.assertEqual(params, expected_params)
# TODO: for these next tests, consider sleeping until our load
# balancer comes up, then testing for connectivity to
# balancer.dns_name, along the lines of the existing EC2 unit tests.
def test_create_load_balancer(self):
self.assertEqual(self.balancer.name, self.name)
self.assertEqual(self.balancer.availability_zones,\
self.availability_zones)
self.assertEqual(self.balancer.listeners, self.listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
def test_create_load_balancer_listeners(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
balancers = self.conn.get_all_load_balancers()
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
)
def test_delete_load_balancer_listeners(self):
mod_listeners = [(80, 8000, 'HTTP'), (443, 8001, 'HTTP')]
mod_name = self.name + "_mod"
self.mod_balancer = self.conn.create_load_balancer(mod_name,\
self.availability_zones, mod_listeners)
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual(
sorted([l.get_tuple() for l in mod_balancers[0].listeners]),
sorted(mod_listeners))
self.conn.delete_load_balancer_listeners(self.mod_balancer.name, [443])
mod_balancers = self.conn.get_all_load_balancers(load_balancer_names=[mod_name])
self.assertEqual([lb.name for lb in mod_balancers], [mod_name])
self.assertEqual([l.get_tuple() for l in mod_balancers[0].listeners],
mod_listeners[:1])
self.mod_balancer.delete()
def test_create_load_balancer_listeners_with_policies(self):
more_listeners = [(443, 8001, 'HTTP')]
self.conn.create_load_balancer_listeners(self.name, more_listeners)
lb_policy_name = 'lb-policy'
self.conn.create_lb_cookie_stickiness_policy(1000, self.name, lb_policy_name)
self.conn.set_lb_policies_of_listener(self.name, self.listeners[0][0], lb_policy_name)
app_policy_name = 'app-policy'
self.conn.create_app_cookie_stickiness_policy('appcookie', self.name, app_policy_name)
self.conn.set_lb_policies_of_listener(self.name, more_listeners[0][0], app_policy_name)
balancers = self.conn.get_all_load_balancers(load_balancer_names=[self.name])
self.assertEqual([lb.name for lb in balancers], [self.name])
self.assertEqual(
sorted(l.get_tuple() for l in balancers[0].listeners),
sorted(self.listeners + more_listeners)
)
示例12: __init__
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
#.........这里部分代码省略.........
instance_type=self.SIZE)
def _buildAutoscaleGroup(self):
return AutoScalingGroup(group_name=self.AGNAME,
load_balancers=[self.LBNAME],
availability_zones=self.AVAIL_ZONES,
launch_config=self.lc,
min_size=self.MIN,
max_size=self.MAX)
def getGroups(self):
'''get existing lb groups'''
# conn = AutoScaleConnection(AWSKEY, AWSSECRET)
#conn = AutoScaleConnection()
return self.asconn.get_all_groups()
def getActivities(self,AUTOSCALE_GROUP=None):
return self.asconn.get_all_activities(AUTOSCALE_GROUP)
def createLaunchConfig(self):
'''create Launch Configuration to define initial startup params
'''
#conn = AutoScaleConnection(AWSKEY, AWSSECRET)
#lc = self.buildLaunchConfig()
return self.asconn.create_launch_configuration(self.lc)
def createAutoscaleGroup(self):
'''We now have created a launch configuration called tfound...launch-config.
We are now ready to associate it with our new autoscale group.
returns autoscale object
'''
#conn = AutoScaleConnection(AWSKEY, AWSSECRET)
#lc = self.buildLaunchConfig()
return self.asconn.create_auto_scaling_group(self.ag)
#conn.get_all_activities(ag)
def createTrigger(self,AUTOSCALE_GROUP=None):
'''
you create a trigger on a group, pass in a group object
this creates a trigger that scales up to MAX instances if average cpu utilitzation goes over 60,
scales down to MIN instances if under 40 avg cpu
'''
#conn = AutoScaleConnection(AWSKEY, AWSSECRET)
tr = Trigger(name=self.TRNAME,
autoscale_group=AUTOSCALE_GROUP,
measure_name='CPUUtilization', statistic='Average',
unit='Percent',
dimensions=[('AutoScalingGroupName', AUTOSCALE_GROUP.name),
('Namespace','AWS/EC2')],
period=120, lower_threshold=10,
lower_breach_scale_increment='-1',
upper_threshold=30,
upper_breach_scale_increment='1',
breach_duration=360)
return self.asconn.create_trigger(tr)
def createHealthCheck(self):
return HealthCheck('instance_health',
interval=20,
target='TCP:8080',
timeout='5')
def createLoadbalancer(self):
#elbconn = ELBConnection(aws_access_key_id=AWSKEY,aws_secret_access_key=AWSSECRET)
#conn = ELBConnection(aws_access_key_id=AWSKEY,aws_secret_access_key=AWSSECRET,
# host='us-east-1a.elasticloadbalancing.amazonaws.com')
# hc = HealthCheck('instance_health', interval=20, target='HTTP:80/index.php', timeout='5')
# lb = conn.create_load_balancer('tfound-'+options.ENV+'-'+options.TYPE+'-lb', [options.ZONE],
# [(80, 80, 'http'),(8000,8000, 'tcp')])
## lb.delete()
hc = self.createHealthCheck()
lb = self.elbconn.create_load_balancer(self.LBNAME,
[self.ZONE],
[(8080,8080, 'tcp')])
lb.configure_health_check(hc)
return lb.dns_name
def addToLoadbalancer(self,INSTANCE=None):
#from boto.ec2.elb import ELBConnection
#from boto.ec2.elb import HealthCheck
#conn = ELBConnection(aws_access_key_id=AWSKEY,aws_secret_access_key=AWSSECRET)
# conn = ELBConnection(aws_access_key_id=AWSKEY,aws_secret_access_key=AWSSECRET,
# host='us-east-1a.elasticloadbalancing.amazonaws.com')
if INSTANCE == None:
sys.stderr.write("Please provide instance id to add. not acceptble: %s\n" % options.INSTANCE )
raise SystemExit(1)
lb = self.elbconn.register_instances(self.LBNAME,
INSTANCE)
#lbgroup = 'tfound-'+options.ENV+'-'+options.TYPE+'-lb'
print "Added instance %s to %s\n" % (INSTANCE, self.LBNAME)
def getLoadbalancers(self):
return self.elbconn.get_all_load_balancers()
def startInstances(self,TYPE='',NUM='',SIZE=''):
return
示例13: HealthCheck
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
img_id = 'ami-69e3d500'
key_pair_name = 'jichuanl_project2.3'
test_bash = ['./apache_bench.sh', 'sample.jpg', '100000', '100', '', '']
sec_group = ['sg-98f73bfd']
zones = ['us-east-1d']
subnet = 'subnet-1fd7ee6b'
ports = [(80, 80, 'http'), (8080, 8080, 'http')]
hc = HealthCheck(
interval=30,
healthy_threshold=2,
unhealthy_threshold=10,
target='HTTP:8080/upload')
elb = ELBConnection()
lb = elb.create_load_balancer('my-lb', zones, ports)
lb.configure_health_check(hc)
lb_dns = lb.dns_name
ec2 = boto.connect_ec2()
#key_pair = ec2.create_key_pair(key_pair_name)
#key_pair.save('/home/ubuntu/.ssh')
rpc = 0
count = 0
while rpc < 2000: #test until get 2000req/sec
reservation = ec2.run_instances(image_id=img_id, key_name=key_pair_name, instance_type=types, security_group_ids=sec_group, subnet_id=subnet)
instance = []
for r in ec2.get_all_instances():
if r.id == reservation.id:
示例14: str
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
reservation = conn.run_instances(LG_IMAGE, instance_type = LG_TYPE, key_name = KEY_NAME, placement = ZONE, security_groups = SECURITY_GROUPS_LG)
instance = reservation.instances[0]
time.sleep(10)
while not instance.update() == 'running':
time.sleep(3)
instance.add_tag("Project", "2.2")
LG_DNS = str(instance.dns_name)
print LG_DNS
time.sleep(10)
#Create ELB
print 'Creating ELB'
elb = elb_conn.create_load_balancer('Project22hongf', ZONE, PORT)
healthcheck = HealthCheck(access_point = 'Project22hongf', interval=30, healthy_threshold=2, unhealthy_threshold=10, target='HTTP:80/heartbeat?lg='+LG_DNS)
elb.configure_health_check(healthcheck)
ELB_DNS = str(elb.dns_name)
print ELB_DNS
time.sleep(10)
#tag ELB
client = boto3.client('elb')
response = client.add_tags(
LoadBalancerNames=[
'Project22hongf',
],
Tags=[
示例15: AutoScaleConnection
# 需要导入模块: from boto.ec2.elb import ELBConnection [as 别名]
# 或者: from boto.ec2.elb.ELBConnection import create_load_balancer [as 别名]
conn_as = AutoScaleConnection()
all_elb = conn_elb.get_all_load_balancers()
##=================Create a Load Balancer=============================================
#For a complete list of options see http://boto.cloudhackers.com/ref/ec2.html#module-boto.ec2.elb.healthcheck
hc = HealthCheck('healthCheck',
interval=elastic_load_balancer['interval'],
target=elastic_load_balancer['health_check_target'],
timeout=elastic_load_balancer['timeout'])
#
##For a complete list of options see http://boto.cloudhackers.com/ref/ec2.html#boto.ec2.elb.ELBConnection.create_load_balancer
lb = conn_elb.create_load_balancer(elastic_load_balancer['name'],
sorted(zoneStrings, reverse=True),
elastic_load_balancer['connection_forwarding'])
lb.configure_health_check(hc)
lb.enable_zones(zoneStrings)
#
##DNS name for your new load balancer
print "Map the CNAME of your website to: %s" % (lb.dns_name)
#=================Create a Auto Scaling Group and a Launch Configuration=============================================
#For a complete list of options see http://boto.cloudhackers.com/ref/ec2.html#boto.ec2.autoscale.launchconfig.LaunchConfiguration
lc = LaunchConfiguration(name=lc_name, image_id=as_ami['id'],
key_name=as_ami['access_key'],
security_groups=as_ami['security_groups'],
instance_type=as_ami['instance_type'],
instance_monitoring=as_ami['instance_monitoring'])