#!/bin/bash
function get_swift_token() {
KEYSTONE_OUT=$(curl -s 'http://dockswift:5000/v2.0/tokens' -H 'Content-Type: application/json' -d '{"auth":{"passwordCredentials":{"username":"swift","password":"swift"},"tenantName":"service"}}')
if (echo "$KEYSTONE_OUT" | grep -q 'object-store')
then
SWIFT_ENDPOINT=$(echo "$KEYSTONE_OUT" | php -r "echo array_values(array_filter(json_decode(file_get_contents('php://stdin'),true)['access']['serviceCatalog'], function(\$endpoint){return \$endpoint['type']==='object-store';}))[0]['endpoints'][0]['publicURL'];")
SWIFT_TOKEN=$(echo "$KEYSTONE_OUT" | php -r "echo json_decode(file_get_contents('php://stdin'),true)['access']['token']['id'];")
return 0
else
return -1
fi
}
if [ "$OBJECT_STORE" == "s3" ]; then
echo "Waiting for minio to be ready"
timeout 60 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' http://minio:9000)" != "403" ]]; do sleep 5; done' || (
echo "Failed to wait for minio to be ready" && exit 1
)
fi
if [ "$OBJECT_STORE" == "swift" ]; then
echo "waiting for keystone"
until get_swift_token
do
sleep 2
done
echo "waiting for object store at $SWIFT_ENDPOINT"
until curl -s -H "X-Auth-Token: $SWIFT_TOKEN" "$SWIFT_ENDPOINT"
do
sleep 2
done
echo "creating container"
sleep 2
while [ 1 ]
do
sleep 2
respCode=$(curl -s -o /dev/null -w "%{http_code}" -X PUT -H "X-Auth-Token: $SWIFT_TOKEN" "$SWIFT_ENDPOINT/nextcloud")
if [ "$respCode" == "201" ]
then
break
fi
done
echo "creating test file"
i=0
while [ 1 ]
do
sleep 2
respCode=$(curl -s -o /dev/null -w "%{http_code}" -X PUT -H "X-Auth-Token: $SWIFT_TOKEN" -H "Content-Type: text/html; charset=UTF-8" -d "Hello world" "$SWIFT_ENDPOINT/nextcloud/helloworld.txt")
if [ "$respCode" == "201" ]
then
break
fi
i=$((i + 1))
if [ "$i" == "20" ]
then
exit -1
fi
done
echo "deleting test file"
curl -s -o /dev/null -w "%{http_code}\n" -X DELETE -H "X-Auth-Token: $SWIFT_TOKEN" "$SWIFT_ENDPOINT/nextcloud/helloworld.txt"
fi
ore-readme-8-14-4'>chore-readme-8-14-4
blob: a16b063ba81a3a1048eb4c58626846294fc84eab (
plain)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
@import "absolutelayout/absolutelayout.scss";
@import "accordion/accordion.scss";
@import "button/button.scss";
@import "button/nativebutton.scss";
@import "button/checkbox.scss";
@import "layout/layout.scss";
@import "caption/caption.scss";
@import "common/common.scss";
@import "csslayout/csslayout.scss";
@import "customcomponent/customcomponent.scss";
@import "customlayout/customlayout.scss";
@import "datefield/datefield.scss";
@import "inlinedatefield/inlinedatefield.scss";
@import "dragwrapper/dragwrapper.scss";
@import "embedded/embedded.scss";
@import "formlayout/formlayout.scss";
@import "gridlayout/gridlayout.scss";
@import "label/label.scss";
@import "link/link.scss";
@import "loginform/loginform.scss";
@import "menubar/menubar.scss";
@import "notification/notification.scss";
@import "orderedlayout/orderedlayout.scss";
@import "panel/panel.scss";
@import "popupview/popupview.scss";
@import "progressindicator/progressindicator.scss";
@import "select/select.scss";
@import "shadow/shadow.scss";
@import "slider/slider.scss";
@import "splitpanel/splitpanel.scss";
@import "table/table.scss";
@import "tabsheet/tabsheet.scss";
@import "textfield/textfield.scss";
@import "tree/tree.scss";
@import "treetable/treetable.scss";
@import "upload/upload.scss";
@import "widget/widget.scss";
@import "window/window.scss";
@import "debug/debug.scss";
/* References the BODY tag generated by Vaadin application servlet */
.v-generated-body {
width: 100%;
height: 100%;
border: 0;
margin: 0;
overflow: hidden;
}
@mixin base {
// @include base-app;
// everything included from base theme
// other themes should enclose corresponding definitions in theme selectors
@include base-widget;
@include base-absolutelayout;
@include base-accordion;
@include base-button;
@include base-nativebutton;
@include base-checkbox;
@include base-caption;
// here for now to preserve old semantics
@include base-common;
@include base-layout;
@include base-csslayout;
@include base-customcomponent;
@include base-customlayout;
@include base-datefield;
@include base-inline-datefield;
@include base-dragwrapper;
@include base-embedded;
@include base-formlayout;
@include base-gridlayout;
@include base-label;
@include base-link;
@include base-loginform;
@include base-menubar;
@include base-notification;
@include base-orderedlayout;
@include base-panel;
@include base-popupview;
@include base-progressindicator;
@include base-select;
@include base-shadow;
@include base-slider;
@include base-splitpanel;
@include base-table;
@include base-tabsheet;
@include base-textfield;
@include base-richtextarea;
@include base-tree;
@include base-treetable;
@include base-upload;
@include base-window;
}
// always include, don't wrap in .themename{}
@include debug-globals;
|