The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CHEF::REST::Client

VERSION

1.0

SYNOPSIS

   use CHEF::REST::Client;

   my $obj = new CHEF::REST::Client
          ( 'chef_client_name' => $chef_client_name )
   $obj->name( $chef_client_name );
   $obj->roles('vagrant')->details;
   $obj->roles('vagrant','environments')->details
   $obj->roles->list;
   
   $obj->search( 'secrets' , {  q => 'id:centrify', rows => 1 } )->details
   
   $obj->environments(<env_name>,'cookbooks' , <cookbook_name>)->details;

   $obj->environments(<env_name>,'cookbooks_versions'
                                ,{ 'method' => 'post'
                                , 'data' => { 'runlist' => [ 'ms-scribe'] }
                                  }
                     );
   $obj->roles(<role_name>)->details->override_attributes;
                   

DESCRIPTION

This is the interface to the Chef server api methods listed on opscode documentation opscode Chef Api currently it provides implementation for only GET methods

METHODS

role( $role )

returns new CHEF::REST::Client::role object used by other classes

roles ( @roles )

makes a GET request to the chef server for all the @roles and returns and CHEF::REST::Client::roles object. you can directly get details for all the roles as $obj->role( 'role1', 'role2' )->details;

this inturn will return CHEF::REST::Client::role

/roles
 $obj->roles->list 
/roles/<role_name>
 $obj->roles(<role_name>)->details

 $obj->roles(<role_name>)->details->run_list;

 $obj->roles(<role_name>)->details->override_attributes;

runlist ( @$recipes )

returns new CHEF::REST::Client::runlist object. it takes a list of recipies as parameter. used by other classes

sandboxes

returns new CHEF::REST::Client::sandboxes object. $obj->sandboxes->list;

/sandboxes
 $obj->sandboxes->list 
/sandboxes/<id>
 $obj->sandboxes(<id>)->details

returns new CHEF::REST::Client::search

/search
 $obj->search->listen
/search/<index>
 $obj->search(<index>)->details
/search/ query id:centrify and get rows 1
 $obj->search( 'secrets' , {  q => 'id:centrify', rows => 1 } )->details

recipe

returns new CHEF::REST::Client::recipe object. used by other classes

principals

returns new CHEF::REST::Client::principals object. $obj->principals->details;

/principals
 $obj->principals->list 
/principals/<name>
 $obj->principals(<name>)->details

node

returns new CHEF::REST::Client::node object. $obj->node->details; used by other classes

nodes

returns new CHEF::REST::Client::nodes object. $obj->nodes->list;

/nodes
 $obj->nodes->listen
/nodes/<node_name>
 $obj->nodes(<node_name>)->details 

envrunlist

returns new CHEF::REST::Client::envrunnlist object. used by other classes

environment

returns new CHEF::REST::Client::environment object. used by other classes

environments

returns new CHEF::REST::Client::environments object.

/environment/<env_name>
 $obj->environments(<env_name>)->details;
/environment/<env_name>/cookbooks/<cookbook_name>
 $obj->environments(<env_name>,'cookbooks' , <cookbook_name>)->details;
/environment/<env_name>/cookbooks
 $obj->environments(<env_name>,'cookbooks')
POST /environments/<env_name>/cookbooks_versions
 $obj->environments(<env_name>,'cookbooks_versions'
                              ,{ 'method' => 'post'
                               , 'data' => { 'runlist' => [ 'ms-scribe'] }
                               }
                    );

databag

returns new CHEF::REST::Client::databag object.

data

returns new CHEF::REST::Client::data object.

/data
 $obj->data->list
/data/<var_name>
 $obj->data( <var_name> )->details

cookbook

returns new CHEF::REST::Client::cookbook object.

cookbooks

returns new CHEF::REST::Client::cookbooks object.

/cookbooks
 $obj->cookbooks->list 
/cookbooks/<cookbook_name>
 $obj->cookbooks(<cookbook_name>)->details 

 $obj->cookbooks(<cookbook_name> , '_latest' )->details->recipes;

 $obj->cookbooks(<cookbook_name> , '_latest' )->details->attributes;

cookbook_version

returns new CHEF::REST::Client::cookbook_version object. used by other classes

cookbook_versions

returns new CHEF::REST::Client::cookbook_versions object. collection of CHEF::REST::Client::cookbook_version

clients

returns new CHEF::REST::Client::clients object.

/clients
 $obj->clients->list 
/clients/<client_name>/
 $obj->clients(<client_name>)->details

attribute

returns new CHEF::REST::Client::attribute object. used by other classes to structure data

attributes

returns new CHEF::REST::Client::attributes object. collection of CHEF::REST::Client::attribute

KNOWN BUGS

SUPPORT

open a github ticket or email comments to Bhavin Patel <bpatel10@nyit.edu>

COPYRIGHT AND LICENSE

This Software is free to use , licensed under : The Artisic License 2.0 (GPL Compatible)