Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

# ============LICENSE_START========================================== 

# =================================================================== 

# Copyright (c) 2018-2020 AT&T 

# Copyright (c) 2020 Pantheon.tech. All rights reserved. 

# 

# Licensed under the Apache License, Version 2.0 (the "License"); 

# you may not use this file except in compliance with the License. 

# You may obtain a copy of the License at 

# 

#         http://www.apache.org/licenses/LICENSE-2.0 

# 

# Unless required by applicable law or agreed to in writing, software 

# distributed under the License is distributed on an "AS IS" BASIS, 

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

# See the License for the specific language governing permissions and 

# limitations under the License. 

# ============LICENSE_END============================================ 

 

from cloudify.decorators import workflow 

from cloudify.workflows import ctx 

from cloudify.exceptions import NonRecoverableError 

import json 

import yaml 

import base64 

 

 

@workflow 

def upgrade(node_instance_id, config_set, config, config_url, config_format, 

            chart_version, chart_repo_url, repo_user, repo_user_password, **kwargs): 

    node_instance = ctx.get_node_instance(node_instance_id) 

 

    if not node_instance_id: 

        raise NonRecoverableError( 

            'No such node_instance_id in deployment: {0}.'.format( 

                node_instance_id)) 

 

    kwargs = {} 

    kwargs['config'] = '' 

    kwargs['chart_version'] = str(chart_version) 

    kwargs['chart_repo'] = str(chart_repo_url) 

    kwargs['config_set'] = str(config_set) 

    kwargs['config_json'] = str(config) 

    kwargs['config_url'] = str(config_url) 

    kwargs['config_format'] = str(config_format) 

    kwargs['repo_user'] = str(repo_user) 

    kwargs['repo_user_passwd'] = str(repo_user_password) 

    operation_args = {'operation': 'upgrade', } 

    operation_args['kwargs'] = kwargs 

    node_instance.execute_operation(**operation_args) 

 

 

@workflow 

def rollback(node_instance_id, revision, **kwargs): 

    node_instance = ctx.get_node_instance(node_instance_id) 

 

    if not node_instance_id: 

        raise NonRecoverableError( 

            'No such node_instance_id in deployment: {0}.'.format( 

                node_instance_id)) 

 

    kwargs = {} 

    kwargs['revision'] = str(revision) 

    operation_args = {'operation': 'rollback', } 

    operation_args['kwargs'] = kwargs 

    node_instance.execute_operation(**operation_args) 

 

@workflow 

def status(**kwargs): 

 

    for node in ctx.nodes: 

        for node_instance in node.instances: 

            kwargs = {} 

            operation_args = {'operation': 'status', } 

            operation_args['kwargs'] = kwargs 

            node_instance.execute_operation(**operation_args)