Revision b4109758

b/docs/admin-guide.rst
1095 1095

  
1096 1096
.. code-block:: console
1097 1097

  
1098
   snf-register-components [<component_name>]
1098
   snf-component-register [<component_name>]
1099 1099

  
1100 1100
automates the registration of the standard Synnefo components (astakos,
1101 1101
cyclades, and pithos) in astakos database. It internally uses the script:
b/docs/quick-install-admin-guide.rst
724 724

  
725 725
.. code-block:: console
726 726

  
727
    # snf-register-components
727
    # snf-component-register
728 728

  
729 729
.. note::
730 730

  
b/docs/upgrade/upgrade-0.14.rst
76 76
installation URL for each component. You will also need to specify the URL
77 77
where the astakos UI resides::
78 78

  
79
    astakos-host$ snf-register-components
79
    astakos-host$ snf-component-register
80 80

  
81 81
.. note::
82 82

  
b/snf-astakos-app/astakos/scripts/snf-component-register
1
#!/bin/bash
2

  
3
declare -A types
4
types[astakos]=identity
5
types[cyclades]=compute
6
types[pithos]=storage
7

  
8
declare -A desc
9
desc[astakos]='account management component'
10
desc[cyclades]='compute component'
11
desc[pithos]='file storage component'
12

  
13
declare -A ex_url
14
ex_url[astakos]='https://accounts.example.synnefo.org/'
15
ex_url[cyclades]='https://compute.example.synnefo.org/compute/'
16
ex_url[pithos]='https://object-store.example.synnefo.org/pithos/'
17

  
18

  
19
register_services () {
20
    echo "Registering ${component}'s services and resources..."
21
    snf-service-export $1 $2 | snf-manage service-import --json -
22
}
23

  
24
ex_ui_url () {
25
    echo "$(echo $1 | sed -e 's/\/*$//g')/ui/"
26
}
27

  
28
changed=0
29

  
30
decide () {
31
    while true; do
32
        echo -n "$1"
33
        read response
34
        case $response in
35
            [Yy]* ) return 0;;
36
            [Nn]* ) return 1;;
37
            * ) echo "Please answer yes or no.";;
38
        esac
39
    done
40

  
41
}
42

  
43
register_component () {
44
    component=$1
45
    component_desc=${desc[$component]}
46
    component_ex_url=${ex_url[$component]}
47
    echo "Registering the $component_desc ($component):"
48
    echo "Give the URL of $component base installation" \
49
        "(e.g. $component_ex_url)"
50
    echo -n 'Base URL: '
51
    read base_url
52
    echo "Give the URL of the $component UI" \
53
        "(e.g. $(ex_ui_url $base_url))"
54
    echo -n 'UI URL: '
55
    read ui_url
56
    decide "Register $component with the given URLs (y/n)? "
57
    if [ $? -eq 0 ]; then
58
        snf-manage component-add $component $ui_url
59
        if [ $? -eq 0 ]; then
60
            read -p "Please write down the token and press Enter to continue. "
61
            register_services $component $base_url
62
            changed=1
63
            echo
64
        fi
65
    fi
66
}
67

  
68
register_comp_serv () {
69
    component=$1
70
    component_desc=${desc[$component]}
71
    component_ex_url=${ex_url[$component]}
72
    echo "Registering services for $component:"
73
    echo "Give the URL of $component base installation" \
74
        "(e.g. $component_ex_url)"
75
    echo -n 'Base URL: '
76
    read base_url
77
    decide "Register ${component}'s services with the given URL (y/n)? "
78
    if [ $? -eq 0 ]; then
79
        register_services $component $base_url
80
        echo
81
    fi
82
}
83

  
84
components=(astakos cyclades pithos)
85
registered=$(snf-manage component-list --output-format=csv --no-headers |
86
    cut -d ',' -f 2)
87

  
88
register_one () {
89
    component=$1
90
    echo $registered | grep -q -w $component
91
    if [ $? -ne 0 ]; then
92
        decide "Register the ${desc[$component]} ($component) (y/n)? "
93
        if [ $? -eq 0 ]; then
94
            register_component $component
95
        fi
96
    else
97
        echo "The ${desc[$component]} ($component) is registered."
98
        decide "Update its registered services (y/n)? "
99
        if [ $? -eq 0 ]; then
100
            register_comp_serv $component
101
        fi
102
    fi
103
}
104

  
105
# Attempt to register only the specified service
106
if [[ $1 ]]; then
107
    echo ${components[@]} | grep -q -w $1
108
    if [ $? -ne 0 ]; then
109
        echo $1 is not a recognized Synnefo component.
110
        exit
111
    fi
112
    register_one $1
113
else
114
    for component in ${components[@]}; do
115
        register_one $component
116
    done
117
fi
118

  
119
if [ $changed -eq 1 ]; then
120
    echo 'Done with registering services and their resources.'
121
    echo 'Now run '
122
    echo "  snf-manage resource-modify --limit-interactive"
123
    echo 'to specify the default base quota for each resource provided by' \
124
        'the services.'
125
fi
/dev/null
1
#!/bin/bash
2

  
3
declare -A types
4
types[astakos]=identity
5
types[cyclades]=compute
6
types[pithos]=storage
7

  
8
declare -A desc
9
desc[astakos]='account management component'
10
desc[cyclades]='compute component'
11
desc[pithos]='file storage component'
12

  
13
declare -A ex_url
14
ex_url[astakos]='https://accounts.example.synnefo.org/'
15
ex_url[cyclades]='https://compute.example.synnefo.org/compute/'
16
ex_url[pithos]='https://object-store.example.synnefo.org/pithos/'
17

  
18

  
19
register_services () {
20
    echo "Registering ${component}'s services and resources..."
21
    snf-service-export $1 $2 | snf-manage service-import --json -
22
}
23

  
24
ex_ui_url () {
25
    echo "$(echo $1 | sed -e 's/\/*$//g')/ui/"
26
}
27

  
28
changed=0
29

  
30
decide () {
31
    while true; do
32
        echo -n "$1"
33
        read response
34
        case $response in
35
            [Yy]* ) return 0;;
36
            [Nn]* ) return 1;;
37
            * ) echo "Please answer yes or no.";;
38
        esac
39
    done
40

  
41
}
42

  
43
register_component () {
44
    component=$1
45
    component_desc=${desc[$component]}
46
    component_ex_url=${ex_url[$component]}
47
    echo "Registering the $component_desc ($component):"
48
    echo "Give the URL of $component base installation" \
49
        "(e.g. $component_ex_url)"
50
    echo -n 'Base URL: '
51
    read base_url
52
    echo "Give the URL of the $component UI" \
53
        "(e.g. $(ex_ui_url $base_url))"
54
    echo -n 'UI URL: '
55
    read ui_url
56
    decide "Register $component with the given URLs (y/n)? "
57
    if [ $? -eq 0 ]; then
58
        snf-manage component-add $component $ui_url
59
        if [ $? -eq 0 ]; then
60
            read -p "Please write down the token and press Enter to continue. "
61
            register_services $component $base_url
62
            changed=1
63
            echo
64
        fi
65
    fi
66
}
67

  
68
register_comp_serv () {
69
    component=$1
70
    component_desc=${desc[$component]}
71
    component_ex_url=${ex_url[$component]}
72
    echo "Registering services for $component:"
73
    echo "Give the URL of $component base installation" \
74
        "(e.g. $component_ex_url)"
75
    echo -n 'Base URL: '
76
    read base_url
77
    decide "Register ${component}'s services with the given URL (y/n)? "
78
    if [ $? -eq 0 ]; then
79
        register_services $component $base_url
80
        echo
81
    fi
82
}
83

  
84
components=(astakos cyclades pithos)
85
registered=$(snf-manage component-list --output-format=csv --no-headers |
86
    cut -d ',' -f 2)
87

  
88
register_one () {
89
    component=$1
90
    echo $registered | grep -q -w $component
91
    if [ $? -ne 0 ]; then
92
        decide "Register the ${desc[$component]} ($component) (y/n)? "
93
        if [ $? -eq 0 ]; then
94
            register_component $component
95
        fi
96
    else
97
        echo "The ${desc[$component]} ($component) is registered."
98
        decide "Update its registered services (y/n)? "
99
        if [ $? -eq 0 ]; then
100
            register_comp_serv $component
101
        fi
102
    fi
103
}
104

  
105
# Attempt to register only the specified service
106
if [[ $1 ]]; then
107
    echo ${components[@]} | grep -q -w $1
108
    if [ $? -ne 0 ]; then
109
        echo $1 is not a recognized Synnefo component.
110
        exit
111
    fi
112
    register_one $1
113
else
114
    for component in ${components[@]}; do
115
        register_one $component
116
    done
117
fi
118

  
119
if [ $changed -eq 1 ]; then
120
    echo 'Done with registering services and their resources.'
121
    echo 'Now run '
122
    echo "  snf-manage resource-modify --limit-interactive"
123
    echo 'to specify the default base quota for each resource provided by' \
124
        'the services.'
125
fi
b/snf-astakos-app/setup.py
200 200

  
201 201
    dependency_links=['http://www.synnefo.org/packages/pypi'],
202 202

  
203
    scripts=['astakos/scripts/snf-register-components'],
203
    scripts=['astakos/scripts/snf-component-register'],
204 204
    entry_points={
205 205
        'synnefo': [
206 206
            'default_settings = astakos.synnefo_settings',

Also available in: Unified diff