'Constructor.
Args:
bindings: [dict] The data bindings to use to configure the scenario.
agent: [GateAgent] The agent for invoking the test operations on Gate.'

def __init__(self, bindings, agent=None):

    super(GoogleHttpLoadBalancerTestScenario, self).__init__(bindings, agent)
    bindings = self.bindings
    self.__lb_detail = 'httplb'
    self.TEST_APP = bindings['TEST_APP']
    self.__lb_name = '{app}-{stack}-{detail}'.format(app=bindings['TEST_APP'], stack=bindings['TEST_STACK'], detail=self.__lb_detail)
    self.__first_cert = ('first-cert-%s' % bindings['TEST_APP'])
    self.__proto_hc = {'name': ('basic-' + self.TEST_APP), 'requestPath': '/', 'port': 80, 'checkIntervalSec': 2, 'timeoutSec': 1, 'healthyThreshold': 3, 'unhealthyThreshold': 4}
    self.__proto_delete = {'type': 'deleteLoadBalancer', 'cloudProvider': 'gce', 'loadBalancerType': 'HTTP', 'loadBalancerName': self.__lb_name, 'region': bindings['TEST_GCE_REGION'], 'regions': [bindings['TEST_GCE_REGION']], 'credentials': bindings['SPINNAKER_GOOGLE_ACCOUNT'], 'user': '[anonymous]'}
    self.__proto_upsert = {'cloudProvider': 'gce', 'provider': 'gce', 'stack': bindings['TEST_STACK'], 'credentials': bindings['SPINNAKER_GOOGLE_ACCOUNT'], 'region': bindings['TEST_GCE_REGION'], 'loadBalancerType': 'HTTP', 'loadBalancerName': self.__lb_name, 'urlMapName': self.__lb_name, 'listenersToDelete': [], 'portRange': '80', 'defaultService': {'name': ('default-' + self.TEST_APP), 'backends': [], 'healthCheck': self.__proto_hc}, 'certificate': self.__first_cert, 'hostRules': [{'hostPatterns': ['host1.com', 'host2.com'], 'pathMatcher': {'pathRules': [{'paths': ['/path', '/path2/more'], 'backendService': {'name': ('bs-' + self.TEST_APP), 'backends': [], 'healthCheck': self.__proto_hc}}], 'defaultService': {'name': ('pm-' + self.TEST_APP), 'backends': [], 'healthCheck': self.__proto_hc}}}], 'type': 'upsertLoadBalancer', 'availabilityZones': {bindings['TEST_GCE_REGION']: []}, 'user': '[anonymous]'}
