Example #1
0
 /**
  * DescribeLoadBalancers action
  *
  * Returns detailed configuration information for the specified LoadBalancers. If no LoadBalancers are
  * specified, the operation returns configuration information for all LoadBalancers created by the caller.
  *
  * @param  array|ListDataType $loadBalancerNamesList optional A list of names associated
  *                                  with the LoadBalancers at creation time.
  * @param  string  $marker optional An optional parameter reserved for future use.
  * @return LoadBalancerDescriptionList Returns the list of LoadBalancerDescriptionData.
  * @throws ClientException
  */
 public function describeLoadBalancers(ListDataType $loadBalancerNamesList = null, $marker = null)
 {
     $result = null;
     if ($loadBalancerNamesList !== null) {
         $options = $loadBalancerNamesList->getQueryArray('LoadBalancerNames');
     } else {
         $options = array();
     }
     if ($marker !== null) {
         $options['Marker'] = $marker;
     }
     $response = $this->client->call('DescribeLoadBalancers', $options);
     if ($response->getError() === false) {
         //Success
         $loader = new DescribeLoadBalancersLoader($this->elb);
         $loader->load($response->getRawContent());
         $result = $loader->getResult();
         if ($result instanceof LoadBalancerDescriptionList) {
             $em = $this->getEntityManager();
             foreach ($result as $loadBalancerDescription) {
                 $em->attach($loadBalancerDescription);
             }
         }
     }
     return $result;
 }
 public function testLoader()
 {
     $loader = new DescribeLoadBalancersLoader($this->getElbMock(null));
     /* @var $LoadBalancerList \Scalr\Service\Aws\DataType\LoadBalancerDescriptionList */
     $LoadBalancerList = $loader->load($this->getFixtureFileContent('DescribeLoadBalancers.xml'));
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\LoadBalancerDescriptionList', $LoadBalancerList);
     $data = $LoadBalancerList->getOriginal();
     /* @var $first LoadBalancerDescriptionData */
     $first = $data[0];
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\LoadBalancerDescriptionData', $first);
     $this->assertEquals('phpunit-test-load-balancer', $first->loadBalancerName, 'Invalid loadBalancerName value');
     $this->assertEquals('2012-09-27T09:01:31+00:00', $first->createdTime->format('c'), 'Invalid createdTime value');
     $this->assertEquals(array('security-group-1', 'security-group-2'), $first->securityGroups, 'Invalid securityGroups value');
     $this->assertEquals('phpunit-test-load-balancer-1651037026.us-east-1.elb.amazonaws.com', $first->canonicalHostedZoneName, 'Invalid canonicalHostedZoneName value');
     $this->assertEquals('Z3DZXE0Q79N41H', $first->canonicalHostedZoneNameId, 'Invalid canonicalHostedZoneNameId value');
     $this->assertEquals('internet-facing', $first->scheme, 'Invalid scheme value');
     $this->assertEquals('phpunit-test-load-balancer-1651037026.us-east-1.elb.amazonaws.com', $first->dnsName, 'Invalid dnsName value');
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\HealthCheckData', $first->healthCheck, 'Invalid healthCheck object');
     $this->assertEquals(30, $first->healthCheck->interval, 'Invalid healthCheck interval value');
     $this->assertEquals('TCP:1024', $first->healthCheck->target, 'Invalid healthCheck target value');
     $this->assertEquals(10, $first->healthCheck->healthyThreshold, 'Invalid healthCheck healthyThreshold value');
     $this->assertEquals(5, $first->healthCheck->timeout, 'Invalid healthCheck timeout value');
     $this->assertEquals(2, $first->healthCheck->unhealthyThreshold, 'Invalid healthCheck unhealthyThreshold value');
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\ListenerDescriptionList', $first->listenerDescriptions);
     $listenerDescriptions = $first->listenerDescriptions->getOriginal();
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\ListenerDescriptionData', $listenerDescriptions[0]);
     $this->assertEquals(array('policy-1', 'policy-2'), $listenerDescriptions[0]->policyNames);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\ListenerData', $listenerDescriptions[0]->listener);
     $this->assertEquals('HTTP', $listenerDescriptions[0]->listener->protocol);
     $this->assertEquals(80, $listenerDescriptions[0]->listener->loadBalancerPort);
     $this->assertEquals('HTTP', $listenerDescriptions[0]->listener->instanceProtocol);
     $this->assertEquals(1024, $listenerDescriptions[0]->listener->instancePort);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\InstanceList', $first->instances);
     $instances = $first->instances->getOriginal();
     $this->assertEquals('instance-id-1', $instances[0]->instanceId);
     $this->assertEquals('instance-id-2', $instances[1]->instanceId);
     $this->assertEquals(array('us-east-1a'), $first->availabilityZones);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\SourceSecurityGroupData', $first->sourceSecurityGroup);
     $this->assertEquals('amazon-elb-sg', $first->sourceSecurityGroup->groupName);
     $this->assertEquals('amazon-elb', $first->sourceSecurityGroup->ownerAlias);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\BackendServerDescriptionList', $first->backendServerDescriptions);
     $backendServerDescriptions = $first->backendServerDescriptions->getOriginal();
     $this->assertEquals(10001, $backendServerDescriptions[0]->instancePort);
     $this->assertEquals(array('bs-policy-1', 'bs-policy-2'), $backendServerDescriptions[0]->policyNames);
     $this->assertEquals(10002, $backendServerDescriptions[1]->instancePort);
     $this->assertEquals(array('bs-policy-3', 'bs-policy-4'), $backendServerDescriptions[1]->policyNames);
     unset($backendServerDescriptions);
     $this->assertEquals(array('subnet-1', 'subnet-2'), $first->subnets);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\PoliciesData', $first->policies);
     $this->assertEquals(array('other-policy-1', 'other-policy-2'), $first->policies->otherPolicies);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\AppCookieStickinessPolicyList', $first->policies->appCookieStickinessPolicies);
     $appCookieSticknessPolicies = $first->policies->appCookieStickinessPolicies->getOriginal();
     $this->assertEquals('app-csp-policyname-1', $appCookieSticknessPolicies[0]->policyName);
     $this->assertEquals('app-csp-cookiename-1', $appCookieSticknessPolicies[0]->cookieName);
     $this->assertEquals('app-csp-policyname-2', $appCookieSticknessPolicies[1]->policyName);
     $this->assertEquals('app-csp-cookiename-2', $appCookieSticknessPolicies[1]->cookieName);
     unset($appCookieSticknessPolicies);
     $this->assertInstanceOf('Scalr\\Service\\Aws\\Elb\\DataType\\LbCookieStickinessPolicyList', $first->policies->lbCookieStickinessPolicies);
     $lbCookieSticknessPolicies = $first->policies->lbCookieStickinessPolicies->getOriginal();
     $this->assertEquals('lb-csp-policyname-1', $lbCookieSticknessPolicies[0]->policyName);
     $this->assertEquals(21, $lbCookieSticknessPolicies[0]->cookieExpirationPeriod);
     $this->assertEquals('lb-csp-policyname-2', $lbCookieSticknessPolicies[1]->policyName);
     $this->assertEquals(22, $lbCookieSticknessPolicies[1]->cookieExpirationPeriod);
     unset($lbCookieSticknessPolicies);
     $arr = $first->toArray();
     $this->assertEquals(array(array('policyNames' => array('policy-1', 'policy-2'), 'listener' => array('instancePort' => 1024, 'instanceProtocol' => 'HTTP', 'loadBalancerPort' => 80, 'protocol' => 'HTTP', 'sslCertificateId' => ''))), $arr['listenerDescriptions']);
 }