File Coverage

blib/lib/WWW/Docker/Network.pm
Criterion Covered Total %
statement 6 14 42.8
branch n/a
condition n/a
subroutine 2 6 33.3
pod 0 4 0.0
total 8 24 33.3


line stmt bran cond sub pod time code
1             package WWW::Docker::Network;
2             # ABSTRACT: Docker network entity
3              
4 10     10   121 use Moo;
  10         24  
  10         61  
5 10     10   3926 use namespace::clean;
  10         48  
  10         70  
6              
7             our $VERSION = '0.101';
8              
9             =head1 SYNOPSIS
10              
11             my $docker = WWW::Docker->new;
12             my $networks = $docker->networks->list;
13             my $network = $networks->[0];
14              
15             say $network->Name;
16             say $network->Driver;
17              
18             $network->connect(Container => $container_id);
19             $network->disconnect(Container => $container_id);
20             $network->remove;
21              
22             =head1 DESCRIPTION
23              
24             This class represents a Docker network. Instances are returned by
25             L methods.
26              
27             =cut
28              
29             has client => (
30             is => 'ro',
31             required => 1,
32             );
33              
34             =attr client
35              
36             Reference to L client.
37              
38             =cut
39              
40             has Id => (is => 'ro');
41              
42             =attr Id
43              
44             Network ID.
45              
46             =cut
47              
48             has Name => (is => 'ro');
49              
50             =attr Name
51              
52             Network name.
53              
54             =cut
55              
56             has Created => (is => 'ro');
57             has Scope => (is => 'ro');
58             has Driver => (is => 'ro');
59              
60             =attr Driver
61              
62             Network driver (e.g., C, C).
63              
64             =cut
65              
66             has EnableIPv6 => (is => 'ro');
67             has IPAM => (is => 'ro');
68             has Internal => (is => 'ro');
69             has Attachable => (is => 'ro');
70             has Ingress => (is => 'ro');
71             has Options => (is => 'ro');
72             has Labels => (is => 'ro');
73             has Containers => (is => 'ro');
74             has ConfigFrom => (is => 'ro');
75             has ConfigOnly => (is => 'ro');
76              
77             sub inspect {
78 0     0 0   my ($self) = @_;
79 0           return $self->client->networks->inspect($self->Id);
80             }
81              
82             =method inspect
83              
84             my $updated = $network->inspect;
85              
86             Get fresh network information.
87              
88             =cut
89              
90             sub remove {
91 0     0 0   my ($self) = @_;
92 0           return $self->client->networks->remove($self->Id);
93             }
94              
95             =method remove
96              
97             $network->remove;
98              
99             Remove the network.
100              
101             =cut
102              
103             sub connect {
104 0     0 0   my ($self, %opts) = @_;
105 0           return $self->client->networks->connect($self->Id, %opts);
106             }
107              
108             =method connect
109              
110             $network->connect(Container => $container_id);
111              
112             Connect a container to this network.
113              
114             =cut
115              
116             sub disconnect {
117 0     0 0   my ($self, %opts) = @_;
118 0           return $self->client->networks->disconnect($self->Id, %opts);
119             }
120              
121             =method disconnect
122              
123             $network->disconnect(Container => $container_id, Force => 1);
124              
125             Disconnect a container from this network.
126              
127             =cut
128              
129             =seealso
130              
131             =over
132              
133             =item * L - Network API operations
134              
135             =item * L - Main Docker client
136              
137             =back
138              
139             =cut
140              
141             1;