'Upserts L7 LB with full hostRules, pathMatchers, etc.
Calls the upsertLoadBalancer operation with a payload, then verifies that
the expected resources are visible on GCP.'

def upsert_full_load_balancer(self):

    hc = copy.deepcopy(self.__proto_hc)
    hc['requestPath'] = '/'
    hc['port'] = 80
    upsert = copy.deepcopy(self.__proto_upsert)
    self._set_all_hcs(upsert, hc)
    payload = self.agent.make_json_payload_from_kwargs(job=[upsert], description=('Upsert    L7    Load    Balancer:    ' + self.__lb_name), application=self.TEST_APP)
    contract_builder = gcp.GcpContractBuilder(self.gcp_observer)
    self._add_contract_clauses(contract_builder, upsert)
    return st.OperationContract(self.new_post_operation(title='upsert    full    http    lb', data=payload, path='tasks'), contract=contract_builder.build())
