def setup_aws_frontend(self): self.cfg = self.config.cfg i = aws_create_keypair.CreateKeyPair( config=self.config, user_path=self.config.user_path, logger=self.logger ) i.create() self.config.save('EC2', 'key_pair', "%s/%s.pem" % (self.config.user_path, self.config.cfg.get('EC2', 'key_name'))) self.key_pair = self.cfg.get('EC2', 'key_pair') config = AWSConfig(self.config, self.logger) showcase_url = None if not config.is_autoscalable: i = aws_create_instance.CreateEC2Instance(config=config, logger=self.logger) instances = i.create_all(config.num_instances) for instance in instances: self.ip_addresses.append(instance.ip_address) config.ip_addresses = self.ip_addresses loadbalancer = None if len(instances) > 1: i = aws_create_loadbalancer.CreateLoadbalancer( config=config, logger=self.logger ) loadbalancer = i.create(instances) deploy_showcase.DeploySoftware(config) showcase_url = loadbalancer.dns_name if loadbalancer else instances[0].ip_address else: i = aws_create_instance.CreateEC2Instance(config=config, logger=self.logger) instance = i.create() self.config.save('infrastructure', 'ip_address', instance.ip_address) self.ip_addresses.append(instance.ip_address) config.ip_addresses = self.ip_addresses deploy_showcase.DeploySoftware(config) aws_create_ami.EC2CreateAMI(config=config, logger=self.logger) autoscalability = aws_create_autoscalability.Autoscalability( config=config, logger=self.logger ) showcase_url = autoscalability.create() time.sleep(60) return showcase_url