Пример #1
0
class StateManager:
    def __init__(self, auth_token):
        self.auth_token = auth_token
        self.rest_states_api = REST_states(auth_token)
        self.rest_statetypes_api = REST_statetypes(auth_token)

    def setRepeatableStateDone(self, state):
        repeatable_state = state['repeatable_state']
        print(repeatable_state)
        repeatable_state['last_successfull_run'] = datetime.datetime.now(
        ).isoformat()
        self.rest_states_api.putRepeatableState(state['repeatable_state'])

    def isComplexState(self, state):
        return state['complex_state'] is not None

    def isRepeatableState(self, state):
        return state['simple_state'] is not None

    def setSimpleStateInstalled(self, state):
        simple_state = state['simple_state']
        print(simple_state)
        simple_state['installed'] = True
        self.rest_states_api.putSimpleState(state['simple_state'])

    def setComplexStateStatus(self, state, status):
        complex_state = state['complex_state']
        print(complex_state)
        complex_state['status'] = status
        self.rest_states_api.putComplexState(state['complex_state'])
Пример #2
0
localuser = LocalSettings.localuser
remoteuser = RemoteSettings.remoteuser
# retrieve the authentication token
token_result = REST_authentication().postCredentials(ApiUserSettings.username,
                                                     ApiUserSettings.password)
auth_token = token_result['token']
inputmapping = InputMapper().getInputFromCLI(auth_token)

data = json.loads(inputmapping.getKeyvalList())

client = SSHWrapper.with_keys(data['remoteuser'], inputmapping.getIpAddress(),
                              data['sshport'])

if data['os'] == "CentOS":
    # first remove salt, if it was already installed
    client.send_blocking_command('sudo yum install -y wget')
    client.send_blocking_command('sudo yum install -y unzip')
    client.send_blocking_command(
        'wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm'
    )
    client.send_blocking_command(
        'sudo rpm -ivh epel-release-latest-7.noarch.rpm')

    reststates_api = REST_states(auth_token)
    state = reststates_api.getStateByHostAndStateId(
        inputmapping.getGetHostId(), inputmapping.getStateId())
    state = state[0]
    statemanager = StateManager(auth_token)
    statemanager.setSimpleStateInstalled(state)
Пример #3
0
 def __init__(self, auth_token):
     self.auth_token = auth_token
     self.rest_states_api = REST_states(auth_token)
     self.rest_statetypes_api = REST_statetypes(auth_token)