Example #1
0
    def NewFromJsonDict(data):
        '''Create a new instance base on a JSON dict
        Args:
          data: A JSON dict, as converted from the JSON in the kubernetes API
        Returns:
          A kubernetes.ServiceList instance
        '''

        items = []
        metadata = data.get('metadata')

        if 'items' in data and data['items']:
            from kubernetes import Service
            items = [Service.NewFromJsonDict(service) for service in data['items']]

        return ServiceList(
                    Kind=data.get('kind', None),
                    APIVersion=data.get('apiVersion', None),
                    Name=metadata.get('name', None),
                    UID=metadata.get('uid', None),
                    CreationTimestamp=metadata.get('creationTimestamp', None),
                    SelfLink=metadata.get('selfLink', None),
                    ResourceVersion=metadata.get('resourceVersion', None),
                    Namespace=metadata.get('namespace', None),
                    Annotations=metadata.get('annotations', None),

                    Items=items)
Example #2
0
    def NewFromJsonDict(data):
        '''Create a new instance base on a JSON dict
        Args:
          data: A JSON dict, as converted from the JSON in the kubernetes API
        Returns:
          A kubernetes.Service instance
        '''
        metadata = data.get('metadata')
        spec = data.get('spec')
        selector = spec.get('selector')

        return Service(
                    Kind=data.get('kind', None),
                    APIVersion=data.get('apiVersion', None),
                    Name=metadata.get('name', None),
                    UID=metadata.get('uid', None),
                    CreationTimestamp=metadata.get('creationTimestamp', None),
                    SelfLink=metadata.get('selfLink', None),
                    ResourceVersion=metadata.get('resourceVersion', None),
                    Namespace=metadata.get('namespace', None),
                    Annotations=metadata.get('annotations', None),

                    Selector=selector,

                    ExternalIPs=spec.get('externalIPs', None),
                    Ports=spec.get('ports', None),
                    Protocol=spec.get('protocol', None),
                    Labels=spec.get('labels', None),
                    CreateExternalLoadBalancer=spec.get('createExternalLoadBalancer', None),
                    ContainerPort=spec.get('containerPort', None),
                    ClusterIP=spec.get('clusterIP', None),
                    ProxyPort=spec.get('proxyPort', None))
Example #3
0
 def list_service(self):
     """Returns list of services"""
     entities = []
     entities_j = self.api.get('service')[1]['items']
     for entity_j in entities_j:
         meta, spec = entity_j['metadata'], entity_j['spec']
         entity = Service(meta['name'], meta['namespace'], spec['portalIP'],
                          spec['sessionAffinity'])
         entities.append(entity)
     return entities
Example #4
0
    def CreateService(self, data, namespace='default'):
        '''Create a new Service'''

        url = ('%(base_url)s/namespaces/%(ns)s/services' % {
            "base_url": self.base_url,
            "ns": namespace
        })
        json = self._RequestUrl(url, 'POST', data)
        if json.status_code is not 201:
            raise KubernetesError(json.json()['message'], json.status_code)
        result = self._ParseAndCheckKubernetes(json.content)
        return Service.NewFromJsonDict(result)
Example #5
0
    def GetService(self, name, namespace='default'):
        '''List the specific service on this cluster'''

        # Make and send requests
        url = ('%(base_url)s/namespaces/%(ns)s/services/%(name)s' % {
            "base_url": self.base_url,
            "ns": namespace,
            "name": name
        })
        json = self._RequestUrl(url, 'GET')
        if json.status_code == 404:
            #not exit, just return None
            return None
        data = self._ParseAndCheckKubernetes(json.content)
        return Service.NewFromJsonDict(data)