示例#1
0
 def sdict(self):
     result = self.run_local(
         self._kubectl +
         ["get", "-o", "json", self.KIND, self.resource_name])
     if result.return_code == 0:
         full_json_response = json.loads(result.stdout.decode('utf-8'))
         if full_json_response.get("status",
                                   {}).get("phase") == "Terminating":
             # this resource is currently being deleted, consider it gone
             return None
         return {
             'manifest':
             json.dumps(reduce_dict(
                 full_json_response,
                 self.nuke_k8s_status(json.loads(self.manifest)),
             ),
                        indent=4,
                        sort_keys=True)
         }
     elif result.return_code == 1 and "NotFound" in result.stderr.decode(
             'utf-8'):
         return None
     else:
         io.debug(result.stdout.decode('utf-8'))
         io.debug(result.stderr.decode('utf-8'))
         raise RuntimeError(
             _("error getting state of {}, check `bw --debug`".format(
                 self.id)))
示例#2
0
 def sdict(self):
     result = run_local([
         "kubectl",
         "--context={}".format(self.node.kubectl_context),
         "--namespace={}".format(self.namespace),
         "get",
         "-o",
         "json",
         self.KUBECTL_RESOURCE_TYPE,
         self.resource_name,
     ])
     if result.return_code == 0:
         full_json_response = json.loads(result.stdout)
         if full_json_response.get("status", {}).get("phase") == "Terminating":
             # this resource is currently being deleted, consider it gone
             return None
         return {'manifest': json.dumps(reduce_dict(
             full_json_response,
             json.loads(self.manifest),
         ), indent=4, sort_keys=True)}
     elif result.return_code == 1 and "NotFound" in result.stderr.decode('utf-8'):
         return None
     else:
         io.debug(result.stdout.decode('utf-8'))
         io.debug(result.stderr.decode('utf-8'))
         raise RuntimeError(_("error getting state of {}, check `bw --debug`".format(self.id)))
示例#3
0
def test_reduce_dict_simple():
    assert reduce_dict(
        {
            'a': 1,
            'b': 2
        },
        {'a': 3},
    ) == {
        'a': 1
    }
示例#4
0
def test_reduce_dict_nested():
    full_dict = {
        'a': [{
            'b': 1,
            'c': 2,
        }],
        'd': 3,
    }
    template_dict = {
        'a': [{
            'b': None,
        }],
        'd': None,
        'e': None,
    }
    assert reduce_dict(full_dict, template_dict) == {
        'a': [{
            'b': 1,
        }],
        'd': 3,
    }
示例#5
0
def test_reduce_dict_nested():
    full_dict = {
        'a': [{
            'b': 1,
            'c': 2,
        }],
        'd': 3,
    }
    template_dict = {
        'a': [{
            'b': None,
        }],
        'd': None,
        'e': None,
    }
    assert reduce_dict(full_dict, template_dict) == {
        'a': [{
            'b': 1,
        }],
        'd': 3,
    }
示例#6
0
def test_reduce_dict_list_and_dict():
    assert reduce_dict(
        [1, 2, 3],
        {'a': 4},
    ) == [1, 2, 3]
示例#7
0
def test_reduce_dict_two_lists():
    assert reduce_dict(
        [1, 2, 3],
        [1, 2],
    ) == [1, 2, 3]
示例#8
0
def test_reduce_dict_simple():
    assert reduce_dict(
        {'a': 1, 'b': 2},
        {'a': 3},
    ) == {'a': 1}
示例#9
0
def test_reduce_dict_list_and_dict():
    assert reduce_dict(
        [1, 2, 3],
        {'a': 4},
    ) == [1, 2, 3]
示例#10
0
def test_reduce_dict_two_lists():
    assert reduce_dict(
        [1, 2, 3],
        [1, 2],
    ) == [1, 2, 3]