123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- # pylint: skip-file
- # flake8: noqa
- # noqa: E302,E301
- # pylint: disable=too-many-instance-attributes
- class RouteConfig(object):
- ''' Handle route options '''
- # pylint: disable=too-many-arguments
- def __init__(self,
- sname,
- namespace,
- kubeconfig,
- labels=None,
- destcacert=None,
- cacert=None,
- cert=None,
- key=None,
- host=None,
- tls_termination=None,
- service_name=None,
- wildcard_policy=None,
- weight=None,
- port=None):
- ''' constructor for handling route options '''
- self.kubeconfig = kubeconfig
- self.name = sname
- self.namespace = namespace
- self.labels = labels
- self.host = host
- self.tls_termination = tls_termination
- self.destcacert = destcacert
- self.cacert = cacert
- self.cert = cert
- self.key = key
- self.service_name = service_name
- self.port = port
- self.data = {}
- self.wildcard_policy = wildcard_policy
- if wildcard_policy is None:
- self.wildcard_policy = 'None'
- self.weight = weight
- if weight is None:
- self.weight = 100
- self.create_dict()
- def create_dict(self):
- ''' return a service as a dict '''
- self.data['apiVersion'] = 'v1'
- self.data['kind'] = 'Route'
- self.data['metadata'] = {}
- self.data['metadata']['name'] = self.name
- self.data['metadata']['namespace'] = self.namespace
- if self.labels:
- self.data['metadata']['labels'] = self.labels
- self.data['spec'] = {}
- self.data['spec']['host'] = self.host
- if self.tls_termination:
- self.data['spec']['tls'] = {}
- self.data['spec']['tls']['termination'] = self.tls_termination
- if self.tls_termination != 'passthrough':
- self.data['spec']['tls']['key'] = self.key
- self.data['spec']['tls']['caCertificate'] = self.cacert
- self.data['spec']['tls']['certificate'] = self.cert
- if self.tls_termination == 'reencrypt':
- self.data['spec']['tls']['destinationCACertificate'] = self.destcacert
- self.data['spec']['to'] = {'kind': 'Service',
- 'name': self.service_name,
- 'weight': self.weight}
- self.data['spec']['wildcardPolicy'] = self.wildcard_policy
- if self.port:
- self.data['spec']['port'] = {}
- self.data['spec']['port']['targetPort'] = self.port
- # pylint: disable=too-many-instance-attributes,too-many-public-methods
- class Route(Yedit):
- ''' Class to wrap the oc command line tools '''
- wildcard_policy = "spec.wildcardPolicy"
- host_path = "spec.host"
- port_path = "spec.port.targetPort"
- service_path = "spec.to.name"
- weight_path = "spec.to.weight"
- cert_path = "spec.tls.certificate"
- cacert_path = "spec.tls.caCertificate"
- destcacert_path = "spec.tls.destinationCACertificate"
- termination_path = "spec.tls.termination"
- key_path = "spec.tls.key"
- kind = 'route'
- def __init__(self, content):
- '''Route constructor'''
- super(Route, self).__init__(content=content)
- def get_destcacert(self):
- ''' return cert '''
- return self.get(Route.destcacert_path)
- def get_cert(self):
- ''' return cert '''
- return self.get(Route.cert_path)
- def get_key(self):
- ''' return key '''
- return self.get(Route.key_path)
- def get_cacert(self):
- ''' return cacert '''
- return self.get(Route.cacert_path)
- def get_service(self):
- ''' return service name '''
- return self.get(Route.service_path)
- def get_weight(self):
- ''' return service weight '''
- return self.get(Route.weight_path)
- def get_termination(self):
- ''' return tls termination'''
- return self.get(Route.termination_path)
- def get_host(self):
- ''' return host '''
- return self.get(Route.host_path)
- def get_port(self):
- ''' return port '''
- return self.get(Route.port_path)
- def get_wildcard_policy(self):
- ''' return wildcardPolicy '''
- return self.get(Route.wildcard_policy)
|