Skip to content
This repository was archived by the owner on Feb 15, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion poppy/distributed_task/taskflow/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def __init__(self, conf):
# This topic could become more complicated
"board": self.distributed_task_conf.jobboard_backend_type,
"hosts": job_backends_hosts,
"path": self.distributed_task_conf.poppy_service_worker_path,
"path": self.distributed_task_conf.poppy_service_worker_path,
}

persistence_backends_hosts = ','.join(['%s:%s' % (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def create_ssl_certificate():
linear_flow.Flow("Provision poppy ssl certificate",
retry=retry.Times(5)).add(
create_ssl_certificate_tasks.CreateProviderSSLCertificateTask()
),
),
create_ssl_certificate_tasks.SendNotificationTask(),
create_ssl_certificate_tasks.UpdateCertInfoTask()
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def delete_ssl_certificate():
linear_flow.Flow("Deleting poppy ssl certificate",
retry=retry.Times(5)).add(
delete_ssl_certificate_tasks.DeleteProviderSSLCertificateTask()
),
),
delete_ssl_certificate_tasks.SendNotificationTask(),
delete_ssl_certificate_tasks.DeleteStorageSSLCertificateTask()
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def recreate_ssl_certificate():
linear_flow.Flow("Provision poppy ssl certificate",
retry=retry.Times(5)).add(
create_ssl_certificate_tasks.CreateProviderSSLCertificateTask()
),
),
create_ssl_certificate_tasks.SendNotificationTask(),
create_ssl_certificate_tasks.UpdateCertInfoTask()
)
Expand Down
3 changes: 1 addition & 2 deletions poppy/distributed_task/taskflow/task/create_service_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,10 @@ def execute(self, providers_list_json, project_id, service_id):
project_id=project_id,
flavor_id=service_obj.flavor_id,
cert_type=domain.certificate
))
))
except ValueError:
domain.cert_info = None


responders = []
# try to create all service from each provider
for provider in providers_list:
Expand Down
4 changes: 2 additions & 2 deletions poppy/distributed_task/taskflow/task/delete_service_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def execute(self, provider_details, retry_sleep_time,
for provider in provider_details:
provider_details[provider] = (
req_provider_details.load_from_json(provider_details[provider])
)
)

# delete associated cname records from DNS
dns_responder = dns.delete(
Expand Down Expand Up @@ -171,7 +171,7 @@ def execute(self, responders, dns_responder, provider_details):
for provider in provider_details:
provider_details[provider] = (
req_provider_details.load_from_json(provider_details[provider])
)
)

for responder in responders:
provider_name = list(responder.items())[0][0]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
conf = cfg.CONF
conf(project='poppy', prog='poppy', args=[])


class DeleteProviderSSLCertificateTask(task.Task):
default_provides = "responders"

Expand All @@ -38,7 +39,7 @@ def execute(self, providers_list, domain_name, cert_type,
cert_obj = self.storage_controller.get_certs_by_domain(domain_name)
except ValueError:
cert_obj = ssl_certificate.SSLCertificate(flavor_id, domain_name,
cert_type, project_id)
cert_type, project_id)

responders = []
# try to delete all certificates from each provider
Expand All @@ -54,15 +55,16 @@ def execute(self, providers_list, domain_name, cert_type,
if responder:
if 'error' in responder[provider]:
msg = "Failed to delete ssl certificate: {0} : due to {1}:" \
"The delete operation will be retried".format(
cert_obj.to_dict(), responder[provider]['error'])
"The delete operation will be retried" \
.format(cert_obj.to_dict(), responder[provider]['error'])
LOG.info(msg)
raise Exception(msg)

responders.append(responder)

return responders


class SendNotificationTask(task.Task):

def execute(self, project_id, responders, domain_name, cert_type):
Expand Down
6 changes: 2 additions & 4 deletions poppy/distributed_task/taskflow/task/update_service_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -362,8 +362,7 @@ def execute(self, service_old, service_obj, project_id):
service_old = service.load_from_json(service_old_json)
old_domains = set([
domain.domain for domain in service_old.domains
if domain.protocol == 'https'
and
if domain.protocol == 'https' and
domain.certificate in ['san', 'sni']
])

Expand All @@ -372,8 +371,7 @@ def execute(self, service_old, service_obj, project_id):
service_new = service.load_from_json(service_new_json)
new_domains = set([
domain.domain for domain in service_new.domains
if domain.protocol == 'https'
and
if domain.protocol == 'https' and
domain.certificate in ['san', 'sni']
])

Expand Down
2 changes: 1 addition & 1 deletion poppy/dns/rackspace/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def _search_cname_record(self, access_url, shared_ssl_flag):
else:
suffix = self._driver.rackdns_conf.url
# Note: use rindex to find last occurrence of the suffix
shard_name = access_url[:access_url.rindex(suffix)-1].split('.')[-1]
shard_name = access_url[:access_url.rindex(suffix) - 1].split('.')[-1]
subdomain_name = '.'.join([shard_name, suffix])

# for sharding is disabled, the suffix is the subdomain_name
Expand Down
20 changes: 10 additions & 10 deletions poppy/manager/default/background_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,11 @@ def post_job(self, job_type, kwargs):

try:
self.cert_storage.get_certs_by_domain(
cert_obj.domain_name,
project_id=cert_obj.project_id,
flavor_id=cert_obj.flavor_id,
cert_type=cert_obj.cert_type
)
cert_obj.domain_name,
project_id=cert_obj.project_id,
flavor_id=cert_obj.flavor_id,
cert_type=cert_obj.cert_type
)
except ValueError:
ignore_list.append(cert_dict)
LOG.info(
Expand Down Expand Up @@ -336,11 +336,11 @@ def post_job(self, job_type, kwargs):

try:
self.cert_storage.get_certs_by_domain(
cert_obj.domain_name,
project_id=cert_obj.project_id,
flavor_id=cert_obj.flavor_id,
cert_type=cert_obj.cert_type
)
cert_obj.domain_name,
project_id=cert_obj.project_id,
flavor_id=cert_obj.flavor_id,
cert_type=cert_obj.cert_type
)
except ValueError:
ignore_list.append(cert_dict)
LOG.info(
Expand Down
12 changes: 5 additions & 7 deletions poppy/manager/default/ssl_certificate.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ def get_certs_info_by_domain(self, domain_name, project_id):
domain_name=domain_name,
project_id=project_id)


def get_san_retry_list(self):
if 'akamai' in self._driver.providers:
akamai_driver = self._driver.providers['akamai'].obj
Expand All @@ -127,9 +126,9 @@ def get_san_retry_list(self):
res = [json.loads(r) for r in res]
return [
{"domain_name": r['domain_name'],
"project_id": r['project_id'],
"flavor_id": r['flavor_id'],
"cert_type": r['cert_type'],
"project_id": r['project_id'],
"flavor_id": r['flavor_id'],
"cert_type": r['cert_type'],
"validate_service": r.get('validate_service', True)}
for r in res
]
Expand All @@ -151,16 +150,15 @@ def update_san_retry_list(self, queue_data_list):
r['domain_name'])
except ValueError:
LOG.info("No matching certificates found for "
"the domain {}".format(r['domain_name']))
"the domain {}".format(r['domain_name']))

if cert_for_domain:
if cert_for_domain.get_cert_status() == "deployed":
raise ValueError(u'Cert on {0} already exists'.
format(r['domain_name']))


new_queue_data = [
json.dumps({'flavor_id': r['flavor_id'], # flavor_id
json.dumps({'flavor_id': r['flavor_id'], # flavor_id
'domain_name': r['domain_name'], # domain_name
'project_id': r['project_id'],
'validate_service': r.get('validate_service', True)})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ def execute(self, domain_name, cert_type, flavor_id, project_id):
return ""



class CheckCertStatusTask(task.Task):
default_provides = "status_change_to"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def execute(self, property_spec):
raise RuntimeError('PAPI API request failed.'
'Exception: %s' % resp.text)
LOG.info("New version for : %s is %s" % (self.property_id,
str(max_version+1)))
str(max_version + 1)))
return max_version + 1


Expand Down
21 changes: 8 additions & 13 deletions poppy/provider/akamai/certificates.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,8 @@ def create_certificate(self, cert_obj, enqueue=True, https_upgrade=False):
# default san_cert_hostname_limit to the value provided in
# the config file.
san_cert_hostname_limit = (
san_cert_hostname_limit or
self.driver.san_cert_hostname_limit
san_cert_hostname_limit or
self.driver.san_cert_hostname_limit
)

# Check san_cert to enforce number of hosts hasn't
Expand Down Expand Up @@ -402,8 +402,8 @@ def create_sni_certificate(self, cert_obj, enqueue, https_upgrade):
cert_name))
continue
cert_hostname_limit = (
cert_hostname_limit or
self.driver.san_cert_hostname_limit
cert_hostname_limit or
self.driver.san_cert_hostname_limit
)

host_names_count = utils.get_ssl_number_of_hosts_alternate(
Expand Down Expand Up @@ -601,9 +601,7 @@ def delete_certificate(self, cert_obj):
if len(resp_json['pendingChanges']) > 0:
status = "{0} has pending changes, skipping .." \
"{1} delete will be deferred until the" \
"{0} becomes available again".format(
found_cert, cert_obj.domain_name
)
"{0} becomes available again".format(found_cert, cert_obj.domain_name)
LOG.info(status)
return self.responder.failed(status)

Expand Down Expand Up @@ -633,9 +631,8 @@ def delete_certificate(self, cert_obj):
enrollment_id, resp.text))
if resp.status_code != 202:
status = "Certificate delete for {0} failed. " \
"Status code {1}. Response {2}.".format(
cert_obj.domain_name, resp.status_code, resp.text
)
"Status code {1}. Response {2}."\
.format(cert_obj.domain_name, resp.status_code, resp.text)
LOG.error(status)
return self.responder.failed(status)
else:
Expand Down Expand Up @@ -730,8 +727,7 @@ def _cancel_pending_change(self, cert_obj):
headers = {
'Accept': 'application/vnd.akamai.cps.change-id.v1+json'
}
cps_cancel_url = self.driver.akamai_conf.policy_api_base_url + \
change_url[1:]
cps_cancel_url = self.driver.akamai_conf.policy_api_base_url + change_url[1:]
cancel_cps = self.cps_api_client.delete(cps_cancel_url,
headers=headers)
if cancel_cps.ok:
Expand All @@ -750,4 +746,3 @@ def _cancel_pending_change(self, cert_obj):
"again through retry logic".format(change_url)
LOG.info(status)
return self.responder.failed(status)

14 changes: 7 additions & 7 deletions poppy/provider/akamai/geo_zone_code_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
LOG = log.getLogger(__name__)

REGIONS = [
'North America',
'South America',
'EMEA',
'Japan',
'India',
'Australia',
'APAC']
'North America',
'South America',
'EMEA',
'Japan',
'India',
'Australia',
'APAC']

REGION_COUNTRY_MAPPING = {
'North America': [
Expand Down
3 changes: 1 addition & 2 deletions poppy/provider/akamai/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -980,8 +980,7 @@ def _get_behavior_value(self, entity, rule_entries):
'%s' %
geo_zone_code_mapping.COUNTRY_CODE_MAPPING.get(zone, '')
for zone in zones_list
if geo_zone_code_mapping.COUNTRY_CODE_MAPPING.get(zone, '')
!= '']
if geo_zone_code_mapping.COUNTRY_CODE_MAPPING.get(zone, '') != '']
if len(country_code_list) > len(set(country_code_list)):
raise ValueError("Duplicated country code in %s" %
str(country_code_list))
Expand Down
2 changes: 1 addition & 1 deletion poppy/storage/cassandra/certificates.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ def get_certs_by_domain(self, domain_name, project_id=None,
"the domain {}".format(domain_name))

return ssl_cert
except:
except Exception:
raise ValueError("No matching certificates found for "
"the domain {}".format(domain_name))

Expand Down
3 changes: 1 addition & 2 deletions poppy/storage/cassandra/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -1028,8 +1028,7 @@ def format_result(result):
domains = [json.loads(d) for d in result.get('domains', []) or []]
restrictions = [json.loads(r)
for r in result.get('restrictions', []) or []]
caching_rules = [json.loads(c) for c in result.get('caching_rules', [])
or []]
caching_rules = [json.loads(c) for c in result.get('caching_rules', []) or []]
log_delivery = json.loads(result.get('log_delivery', '{}') or '{}')
operator_status = result.get('operator_status', 'enabled')

Expand Down
6 changes: 3 additions & 3 deletions poppy/transport/pecan/controllers/root.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ def _route(self, args, request=None):
# Remove it from the URL if it's present
# ['v1.0', 'services'] or ['v1', '123', 'services']
if (
len(args) >= 2
and args[0] in self.paths
and re.match('^[0-9]+$', args[1])
len(args) >= 2 and
args[0] in self.paths and
re.match('^[0-9]+$', args[1])
):
args.pop(1)

Expand Down
4 changes: 2 additions & 2 deletions poppy/transport/pecan/controllers/v1/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ def put(self):
self.manager.background_job_controller.
put_san_mapping_list(san_mapping_list))
# queue is the new queue, and deleted is deleted items
return {"queue": res, "deleted": deleted}
return {"queue": res, "deleted": deleted}
except Exception as e:
pecan.abort(400, str(e))

Expand Down Expand Up @@ -272,7 +272,7 @@ def put(self):
self._driver.manager.ssl_certificate_controller.
update_san_retry_list(queue_data))
# queue is the new queue, and deleted is deleted items
return {"queue": res, "deleted": deleted}
return {"queue": res, "deleted": deleted}
except Exception as e:
pecan.abort(400, str(e))

Expand Down
3 changes: 1 addition & 2 deletions poppy/transport/validators/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -572,8 +572,7 @@ def is_valid_flavor_id(flavor_id):
@decorators.validation_function
def is_valid_analytics_request(request):
default_end_time = datetime.datetime.utcnow()
default_start_time = (datetime.datetime.utcnow()
- datetime.timedelta(days=1))
default_start_time = (datetime.datetime.utcnow() - datetime.timedelta(days=1))
domain = request.GET.get('domain', "")
startTime = request.GET.get('startTime',
default_start_time.strftime(
Expand Down
7 changes: 7 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,10 @@ universal = 1
; method in nose/inspector.py requires a traceback-like object.
;
; detailed-errors = 1

[flake8]
exclude = .git,*migrations*
max-line-length = 119
; Ignore H202 [assertRaises Exception too broad] warning
; Ignore E731 [do not assign a lambda expression, use a def]
ignore = H202,E731
7 changes: 3 additions & 4 deletions tests/api/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,11 +248,10 @@ def assert_patch_service_details(self, actual_response, expected_response):
in expected_response['domains']
if (
b_item['domain'] ==
item['domain'])
or (b_item.get('certificate') ==
item['domain']) or
(b_item.get('certificate') ==
'shared' and
item['domain'].split('.')[0]
== b_item['domain']))
item['domain'].split('.')[0] == b_item['domain']))
if item['certificate'] == 'shared':
matched_domain_in_body['domain'] = item['domain']
matched_domain_in_body["certificate_status"] = (
Expand Down
Loading