forked from RexOps/Rex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0.31.t
150 lines (120 loc) · 5.44 KB
/
0.31.t
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
use strict;
use warnings;
use Test::More tests => 139;
use Rex -feature => '0.31';
delete $ENV{REX_USER};
user("root3");
password("pass3");
private_key("priv.key3");
public_key("pub.key3");
key_auth();
no warnings;
is( Rex::TaskList->create()->is_default_auth(), 0, "default auth off" );
use warnings;
group( "foo", "server1", "server2", "server3" );
group( "bar", "serv[01..10]" );
my @servers = Rex::Group->get_group("foo");
is( $servers[0], "server1", "get_group" );
is( $servers[2], "server3", "get_group" );
@servers = Rex::Group->get_group("bar");
@servers = $servers[0]->get_servers;
is( $servers[0], "serv01", "get_group with evaluation" );
is( $servers[5], "serv06", "get_group with evaluation" );
task( "authtest1", group => "foo", sub { } );
task( "authtest2", group => "bar", sub { } );
task( "authtest3", "srv001", sub { } );
task( "authtest4", group => "latebar", sub { } );
group( "latebar", "server[01..03]" );
my $task = Rex::TaskList->create()->get_task("authtest3");
my @all_server = @{ $task->server };
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "root3", "merge_auth - user" );
is( $auth->{password}, "pass3", "merge_auth - pass" );
is( $auth->{public_key}, "pub.key3", "merge_auth - pub" );
is( $auth->{private_key}, "priv.key3", "merge_auth - priv" );
is( $auth->{auth_type}, "key", "merge_auth - auth" );
}
pass_auth();
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "root3", "merge_auth - user" );
is( $auth->{password}, "pass3", "merge_auth - pass" );
is( $auth->{public_key}, "pub.key3", "merge_auth - pub" );
is( $auth->{private_key}, "priv.key3", "merge_auth - priv" );
is( $auth->{auth_type}, "pass", "merge_auth - auth" );
}
auth( for => "bar", user => "jan", password => "foo" );
auth( for => "latebar", user => "jan", password => "foo" );
$task = Rex::TaskList->create()->get_task("authtest1");
@all_server = @{ $task->server };
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "root3", "merge_auth - user" );
is( $auth->{password}, "pass3", "merge_auth - pass" );
is( $auth->{public_key}, "pub.key3", "merge_auth - pub" );
is( $auth->{private_key}, "priv.key3", "merge_auth - priv" );
}
$task = Rex::TaskList->create()->get_task("authtest2");
@all_server = @{ $task->server };
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "jan", "merge_auth - user" );
is( $auth->{password}, "foo", "merge_auth - pass" );
is( $auth->{public_key}, "pub.key3", "merge_auth - pub" );
is( $auth->{private_key}, "priv.key3", "merge_auth - priv" );
is( $auth->{auth_type}, "try", "merge_auth - auth_type" );
ok( !$auth->{sudo}, "merge_auth - sudo" );
}
$task = Rex::TaskList->create()->get_task("authtest4");
@all_server = @{ $task->server };
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "jan", "merge_auth - user - lategroup" );
is( $auth->{password}, "foo", "merge_auth - pass - lategroup" );
is( $auth->{public_key}, "pub.key3", "merge_auth - pub - lategroup" );
is( $auth->{private_key}, "priv.key3", "merge_auth - priv - lategroup" );
is( $auth->{auth_type}, "try", "merge_auth - auth_type - lategroup" );
ok( !$auth->{sudo}, "merge_auth - sudo - lategroup" );
}
auth(
for => "authtest1",
user => "deploy",
password => "baz",
private_key => FALSE(),
public_key => FALSE(),
sudo => TRUE()
);
$task = Rex::TaskList->create()->get_task("authtest1");
@all_server = @{ $task->server };
for my $server (@all_server) {
my $auth = $task->merge_auth($server);
is( $auth->{user}, "deploy", "merge_auth - user" );
is( $auth->{password}, "baz", "merge_auth - pass" );
is( $auth->{public_key}, FALSE(), "merge_auth - pub" );
is( $auth->{private_key}, FALSE(), "merge_auth - priv" );
is( $auth->{auth_type}, "pass", "merge_auth - auth_type" );
is( $auth->{sudo}, TRUE(), "merge_auth - sudo" );
}
set( "key1", "val1" );
is( get("key1"), "val1", "got value of key1" );
set( "key1", "val2" );
is( get("key1"), "val2", "got new value of key1" );
set( "key2", [qw/one two three/] );
is( get("key2")->[0], "one", "got value of first item in key2" );
is( get("key2")->[1], "two", "got value of 2nd item in key2" );
is( get("key2")->[2], "three", "got value of 3rd item in key2" );
set( "key2", [qw/four five/] );
is( get("key2")->[0], "one", "got value of first item in key2" );
is( get("key2")->[1], "two", "got value of 2nd item in key2" );
is( get("key2")->[2], "three", "got value of 3rd item in key2" );
is( get("key2")->[3], "four", "got value of NEW first item in key2" );
is( get("key2")->[4], "five", "got value of NEW 2nd item in key2" );
set( "key3", { name => 'foo', surname => 'bar' } );
is( get("key3")->{name}, "foo", "got value of name parameter in key3" );
is( get("key3")->{surname}, "bar", "got value of surname parameter in key3" );
set( "key3", { x1 => 'x', x2 => 'xx' } );
is( get("key3")->{name}, "foo", "got value of name parameter in key3" );
is( get("key3")->{surname}, "bar", "got value of surname parameter in key3" );
is( get("key3")->{x1}, "x", "got value of NEW name parameter x1 in key3" );
is( get("key3")->{x2}, "xx", "got value of NEW name parameter x2 in key3" );